Sumário
CondoMinions consiste em um sistema que, integrado à aplicação PagueAluguel, pode ser utilizado por uma equipe administrativa e moradores para gerenciamento de imóveis e outras atividades dentro de um condomínio.
🏆Usuários administrativos podem ser cadastrados no sistema e usuários proprietários e moradores podem ser convidados por e-mail a se registrar;
🏆Apenas usuários administrativos categorizados como super no momento da criação podem cadastrar outros usuários administrativos, cadastrar um condomínio com endereço e associar um usuário ou mais usuários administrativos àquele condomínio;
🏆Usuários administrativos regulares podem cadastrar torres, tipos de unidade, unidade de um condomínio, andares, áreas comuns e moradores;
🏆A fração ideal de cada unidade é gerada automaticamente com base no tamanho de cada uma e a quantidade de unidades em um condomínio;
🏆Tanto administradores quanto moradores podem ver a página de listatrophy e detalhes de condomínio. Tendo sua exibição alterada para cada tipo de usuário;
🏆Moradores podem fazer uma reserva de área comum a partir de um calendário de reservas, bem como cancelar essa reserva. Gerando ou cancelando cobrança de taxa de uso dessa reserva na aplicação PagueAluguel;
🏆Moradores podem consultar suas faturas e enviar comprovantes de pagamento que serão comunicados através da aplicação PagueAluguel;
🏆Administradores podem registrar entrada de visitantes no condomínio e visualizar uma lista com o histórico de visitas;
🏆Administradores podem criar avisos para serem mostrados em um mural na tela de detalhes de um condomínio.
GET /api/v1/condos
Retorna todos os condomínios com o id, nome, cidade e estado de cada um.
Exemplo de resposta:
[
{
"id": 1,
"name": "Condomínio Residencial Paineiras",
"city": "Rio Branco",
"state": "AC"
},
{
"id": 2,
"name": "Condomínio dos Rubinhos",
"city": "Campo Formoso",
"state": "BA"
}
]
GET /api/v1/condos/{id}
Retorna os detalhes de um condomínio com o nome, cnpj, logradouro, número, bairro, cidade, estado e cep de cada um.
Retorna erro 404 caso não exista um condomínio cadastrado com esse id.
Exemplo de resposta:
{
"name": "Condomínio Residencial Paineiras",
"registration_number": "62.810.952/2718-22",
"address": {
"public_place": "Travessa João Edimar",
"number": "29",
"neighborhood": "João Eduardo II",
"city": "Rio Branco",
"state": "AC",
"zip": "69911-520"
}
}
GET /api/v1/units/{id}
Retorna os detalhes de uma unidade especificada pelo id passado no endpoint, caso exista, senão retorna erro 404 e corpo de resposta nulo.
Exemplo de resposta:
{
"id": 1,
"area": "150.45",
"floor": 1,
"number": "11",
"unit_type_id": 1,
"condo_id": 1,
"condo_name": "Residencial Paineiras",
"tenant_id": 1,
"owner_id": 1,
"description": "Duplex com varanda",
"tower_name": "Torre Sul"
}
Retorna 404 caso não exista um condomínio com o id informado
Retorna a lista de tipos de unidade registradas em um condomínio e os ids da unidades vinculadas a ele.
Retorna 404 caso não exista um condomínio com o id informado
GET /api/v1/condos/{id}/unit_types
Exemplo de resposta:
[
{
"id": 1,
"description": "Apartamento grande",
"metreage": "100.0",
"fraction": "4.0",
"unit_ids": [
1,
2,
3,
4,
6,
9
]
},
{
"id": 2,
"description": "Apartamento médio",
"metreage": "70.2",
"fraction": "2.5",
"unit_ids": [
5,
7,
8,
10
]
}
]
GET /api/v1/condos/{id}/units
Retorna a lista de todas as unidades registradas em um condomínio, com o id de cada unidade, número do andar e identificação de unidade.
Retorna 404 caso não exista um condomínio com o id informado
Exemplo de resposta:
{
"units": [
{
"id": 1,
"floor": 1,
"number": "11",
"tower_name": "Torre Sul"
},
{
"id": 2,
"floor": 1,
"number": "12",
"tower_name": "Torre Sul"
}
]
}
/api/v1/check_owner?registration_number={CPF}
Retorna a confirmação se o CPF informado pertence a um usuário da aplicação CondoMinions, ainda retorna o perfil de usuário e o id de sua unidade
Possíveis respostas
Retorna 200 se existe um proprietário com o CPF informado na aplicação CondoMinions;
Retorna 404 se não existe um proprietário com o CPF informado na aplicação CondoMínios;
Retorna 412 se o CPF não for válido para consulta.
OBS: Esse Endpoint trata puramente da validação do CPF, o JSON retornado possui corpo vazio.
/api/v1/get_tenant_residence?registration_number={CPF}
Retorna os detalhes da unidade de residência de um morador de determinado CPF
Possíveis respostas
Retorna 404 se não existe um proprietário com o CPF informado na aplicação CondoMinions, ou se existe, mas não reside em nenhuma unidade;
Retorna 412 se o CPF não for válido para consulta.
Retorna 200 se o CPF é de um inquilino de alguma unidade e o seguinte JSON
{
"resident": {
"name": "resident.full_name", "tenant_id": "resident.id",
"residence": {
"id": "residence.id",
"area": "unit_type.metreage",
"floor": "residence.floor.identifier",
"number": "residence.short_identifier",
"unit_type_id": "unit_type.id",
"description": "unit_type.description",
"condo_id": "condo.id",
"condo_name": "condo.name",
"owner_id": "residence.owner.id",
"tower_name": "Torre Sul"
}
}
}
/api/v1/get_owner_properties?registration_number={cpf}
Retorna uma lista com os detalhes das unidades possuídas por um proprietário
Possíveis respostas
Retorna 404 se não existe um proprietário com o CPF informado na aplicação CondoMínios, ou se existe, mas não possui nenhuma unidade como propriedade;
Retorna 412 se o CPF não for válido para consulta.
Retorna 200 se o CPF é de um proprietário de alguma unidade e o seguinte JSON.
{
"resident": {
"name": "Cláudia Rodrigues Gomes",
"owner_id": 1,
"properties": [
{
"id": 1,
"area": "150.45",
"floor": 1,
"number": "11",
"unit_type_id": 1,
"description": "Duplex com varanda",
"condo_id": 1,
"condo_name": "Residencial Paineiras",
"tenant_id": 1,
"tower_name": "Torre Sul"
},
{
"id": 16,
"area": "150.45",
"floor": 4,
"number": "43",
"unit_type_id": 1,
"description": "Duplex com varanda",
"condo_id": 1,
"condo_name": "Residencial Paineiras",
"tenant_id": null,
"tower_name": "Torre Sul"
},
{
"id": 17,
"area": "150.45",
"floor": 5,
"number": "51",
"unit_type_id": 1,
"description": "Duplex com varanda",
"condo_id": 1,
"condo_name": "Residencial Paineiras",
"tenant_id": null,
"tower_name": "Torre Sul"
}
]
}
}
GET /api/v1/condos/{id}/common_areas
Retorna todas as áreas comuns a partir do `id` do condomínio informado, com nome, descrição.
Exemplo de Resposta:
{
"common_areas": [
{
"id": 1,
"name": "Piscina",
"description": "Para adultos e crianças"
},
{
"id": 2,
"name": "Salão de Festas",
"description": "Salão para vários eventos"
}
]
}
Caso não existam áreas comuns cadastradas para o condomínio informado retorna o `id` do condomínio e um array vazio.
Retorna erro `404` caso o condomínio informado não esteja cadastrado.
GET /api/v1/common_areas/{id}
Retorna os detalhes de uma área comum específica a partir do `id` da área comum, com nome, descrição, capacidade máxima e regras de uso.
Exemplo de Resposta:
{
"name": "Piscina",
"description": "Para adultos e crianças",
"max_occupancy": 20,
"rules": "Só pode ser usada até 22h",
"condo_id": 1
}
Retorna erro `404` caso a área comum informada não esteja cadastrada para o condomínio informado.
Você vai precisar da versão 3.2.2 do Ruby, libvips e uma versão atual de NodeJS com Yarn instalado. Recomendamos sempre a instalação das versões LTS (Long Term Support).
Instalação do libvips com o apt-get:
sudo apt install libvips
Instalação do rails
gem install rails
No terminal, clone o projeto:
git clone https://github.com/TreinaDev/condominions.git
Entre na pasta do projeto:
cd condominions
Instale Bundle:
bundle install
Instale as dependências:
bin/setup
Para popular o banco de dados:
rails db:seed
Para rodar os testes, execute:
rake spec
Caso queria testar emails, você pode fazê-lo instalando a gem MailCatcher:
gem install mailcatcher
Para executar o MailCatcher:
mailcatcher
Agora você pode acessá-lo através da rota http://localhost:1080/
Para rodar a aplicação, execute:
bin/dev
Agora é possível acessar a aplicação a partir da rota http://localhost:3000/
Integração com o PagueAluguel: Essa aplicação foi construída para ser integrada com o PagueAluguel. Com ambas as aplicações rodando, você poderá utilizá-la com todas as suas funcionalidades!
Esses usuários são gerados nas seeds e você pode utilizá-los para testar a aplicação.
Administradores
Nome Completo Senha Ednaldo Pereira adm@teste.com teste123 Adroaldo Silva Santos adm@teste.com teste123
Residentes
Nome Completo Senha Marina Santos Oliveira marina@email.com teste123 Rafael Souza Lima rafael@email.com teste123