Skip to content

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

1 watching

Forks

Repository files navigation

Backend - API de Autenticação e Gerenciamento de Condomínios

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.

Tecnologias Utilizadas

  • 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.

Funcionalidades

Avisos (WARNINGS)

  • 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.

Reservas (RESERVATION)

  • 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.

Manutenções (MAINTENANCE)

  • 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.

Enquetes (SURVEY)

  • 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.

Respostas (ANSWER)

  • Participação: Apenas usuários com role "USER" podem responder enquetes.

Área Administrativa (Acesso exclusivo para usuários "admin" e "master")

  • 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.

Documentação da API

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:

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.

Instalação e Configuração

Clone do repositório:

git clone https://github.com/ZanellaIgor/CondominiumAdminBackend.git
cd CondominiumAdminBackend

Instalação as dependências:

npm install

ou

yarn install

Iniciar container

docker compose up -d

Rodar migration

npm run prisma migrate dev

ou

yarn prisma migrate dev

Popular banco com seed

npm run seed

ou

yarn seed

Iniciar projeto

npm run dev

ou

yarn run dev

Obs: Verificar configuração do .env.example, e alterar para .env

Pré-requisitos

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages