/SindiMeet

O SindiMeet é um sistema que visa facilitar o agendamento de atendimento jurídico para os associados de um sindicato.

Primary LanguageTypeScriptMIT LicenseMIT

SindiMeet - Sistema de Reservas para Atendimento Jurídico

Propósito do Projeto

O SindiMeet é um sistema que visa facilitar o agendamento de atendimento jurídico para os associados de um sindicato. Permite que os associados façam login em suas contas, agendem atendimentos e verifiquem o status das reservas. O sistema foi desenvolvido com foco na praticidade e comodidade dos usuários.

Com este sistema, os associados poderão:

✅ Agendar Reservas Online: Adeus, longas filas! Agora você pode reservar seu horário de atendimento com apenas alguns cliques, escolhendo a data que melhor se adequa à sua agenda.

✅ Verificar o Status da Reserva: Mantenha-se informado sobre o andamento da sua reserva. Saiba exatamente quando você será atendido e evite esperas desnecessárias.

✅ Atendimento Personalizado: Nosso sistema organiza as reservas por ordem de chegada, garantindo um atendimento justo e eficiente.

⛔ Notificações por E-mail: Você receberá lembretes por e-mail para garantir que você não perca o seu horário de atendimento e esteja sempre atualizado.

Tecnologias Utilizadas

NodeJS TypeScript Express.js Prisma PostgreSQL Nodemailer Docker JWT

Rotas

Aqui está uma lista das principais rotas da API:

Rotas de Autenticação

Rota Método Descrição
/user/create POST Crie um novo usuário.
/ POST Autentique um usuário.

Rotas de Reservas

Rota Método Descrição
/reservation/create POST Crie uma nova reserva.
/reservation/list/:status GET Obtenha a lista de reservas com base no status fornecido.
/reservation/list/by-user GET Obtenha a lista de reservas de um usuário específico.
/reservation/update-status/:id_reservation POST Atualize o status de uma reserva com base no ID fornecido.
/reservation/list/checkin GET Obtenha uma lista de reservas para o check-in de hoje, ordenadas por horário.

Como Executar o Projeto

  1. Clone do repositório:

    Execute no seu terminal o comando:

    git clone https://github.com/maxsonferovante/SindiMeet.git
    

    Acesse a pasta do projeto:

    cd SindMeet
    
  2. Instalação de Dependências: Certifique-se de ter o Node.js instalado em seu sistema. Execute npm install para instalar as dependências do projeto.

  3. Configuração do Banco de Dados com Docker: Utilize Docker para rodar uma instância do PostgreSQL com o seguinte comando:

    docker run --name sindimeet-postgres -e POSTGRES_PASSWORD=suasenha -p 5432:5432 -d postgres

    Certifique-se de substituir suasenha pela senha desejada.

  4. Configuração do Banco de Dados sem Docker: Se preferir, configure um banco de dados PostgreSQL localmente e ajuste as variáveis de ambiente no arquivo .env.

  5. Migrações do Prisma: Execute npx prisma migrate dev para criar as tabelas do banco de dados.

  6. Iniciar o Servidor: Inicie o servidor Node.js com npm run dev.

  7. Acesso à Aplicação: Acesse a aplicação em seu navegador ou via ferramentas como o Postman, configurando as rotas e autenticação conforme a documentação da API.

  8. Utilização da API: Utilize a API para criar, listar, atualizar e excluir reservas, além de autenticar usuários.

  9. Envio de E-mails: Configure as credenciais de envio de e-mails no arquivo .env para receber notificações sobre suas reservas.

Lembre-se de consultar a documentação da API para obter detalhes sobre como usar cada rota e endpoint.

Além disso, você pode adaptar o arquivo docker-compose.yml para incluir a configuração do banco de dados PostgreSQL com Docker.