Este é o backend de um sistema gestão de condomínios, desenvolvido com NestJS, Prisma e PostgreSQL. Ele fornece uma API REST para autenticação, gerenciamento de condomínios e apartamentos, e controle de acesso baseado em roles.
- NestJS - Framework para desenvolvimento de APIs em Node.js.
- Prisma - ORM utilizado para interagir com o banco de dados PostgreSQL.
- PostgreSQL - Banco de dados relacional.
- JWT - JSON Web Tokens para autenticação.
- bcrypt - Para hashing de senhas.
- class-validator - Para validação de dados.
- Docker - Para containerização do banco de dados.
- Swagger - Documentação interativa da API.
- Criação: Todos os usuários podem criar avisos.
- Aprovação: Avisos precisam ser aprovados por usuários com role "admin" ou "master".
- Edição:
- Usuários comuns: Podem editar seus próprios avisos apenas enquanto estiverem no status "ABERTO".
- Admins/Masters: Podem selecionar o apartamento ao qual o aviso se refere.
- Visualização: Todos os usuários podem visualizar avisos aprovados referente ao seu condomínio.
- Solicitação: Usuários podem solicitar reservas.
- Edição:
- Usuários comuns: Podem editar a descrição da reserva apenas enquanto estiver no status "ABERTO".
- Admins/Masters: Podem aprovar ou reprovar as solicitações.
- Admins/Masters: Podem selecionar o apartamento ao qual a reserva se refere.
- Solicitação: Usuários podem solicitar manutenções.
- Aprovação: Solicitações precisam ser aprovadas por usuários "admin" ou "master".
- Edição:
- Usuários comuns: Podem editar a descrição de suas próprias solicitações enquanto estiverem no status "ABERTO".
- Admins/Masters: Podem selecionar o condomínio ao qual a manutenção se refere.
- Visualização: Todos os usuários podem visualizar manutenções aprovadas.
- Criação/Edição: Apenas usuários "admin" e "master" podem criar e editar enquetes.
- Restrição: Enquetes não podem ser editadas após receberem respostas.
- Participação: Apenas usuários com role "USER" podem responder enquetes.
-
Apartamentos (APARTMENT):
- Gerenciamento: CRUD (Criar, Ler, Atualizar, Deletar) de informações dos apartamentos.
-
Condomínios (CONDOMINIUM):
- Gerenciamento: CRUD de informações dos condomínios.
-
Espaços de Reserva (SPACE-RESERVATION):
- Gerenciamento: CRUD de espaços de reserva, com seleção do condomínio.
-
Usuários (USER):
- Gerenciamento: CRUD de informações dos usuários.
A documentação da API está disponível via Swagger. Após iniciar o servidor, você pode acessar a interface do Swagger no seguinte endereço:
- Swagger UI: http://localhost:3332/api
A interface do Swagger permite:
- Visualizar todos os endpoints da API.
- Testar as requisições diretamente na interface.
- Ver exemplos de requisições e respostas.
Clone do repositório:
git clone https://github.com/ZanellaIgor/CondominiumAdminBackend.git
cd CondominiumAdminBackendInstalação as dependências:
npm installou
yarn installIniciar container
docker compose up -dRodar migration
npm run prisma migrate devou
yarn prisma migrate devPopular banco com seed
npm run seedou
yarn seedIniciar projeto
npm run devou
yarn run devObs: Verificar configuração do .env.example, e alterar para .env
- Node.js >= 16
- PostgreSQL
- Nest CLI