Este projeto é parte do Bootcamp Gostack da Rocketseat.
API para um serviço de agendamento de serviços, desenvolvido em node.js.
O projeto utiliza o pacote express para a criação do servidor e das rotas, assim como ESLINT para padronizar o código. Para interagir com o banco de dados postgresql, é usado o ORM sequelize, assim como o mongoose, para armazenar notificações em um banco não relacional, o mongodb.
Além disso, foi utilizado um outro banco não relacional, o redis, para configurar uma fila de envio de e-mails. O serviço é acessado por meio de autenticação via bearer token, onde foi utilizado o pacote jsonwebtoken, e as senhas são armazenadas criptografadas usando o pacote bcryptjs.
Para validação de dados do corpo da requisição, foi utilizado o pacote yup.
Foram criadas rotas e controllers para operações de CRUD em usuários e agendamentos. Os clientes podem consultar os horários disponíveis de um determinado prestador e fazer o agendamento. No momento do agendamento é enviada uma notificação ao profissional.
Os prestadores do serviço podem consultar sua agenda do dia, e recebem um email caso o cliente faça um cancelamento de agendamento.
- POST /users - Cadastra um novo usuário;
- PUT /users/id - Altera o cadastro de um usuário específico;
- GET /appointments - Retorna todos os agendamentos de um prestador autenticado;
- POST /appointments - Criar um novo agendamento;
- DELETE /appointments/id - Cancela um agendamento.
- POST /session - Autentica o usuário a partir de login e senha, estabelecendo um token para a sessão.
- /sessions
{
"email": "[email protected]",
"password": xxxxxx
}
- /users
{
"name": "username,
"email": "[email protected]",
"password": xxxxxx,
"provider": true (para prestador) e false (para cliente)
}
- /appointments
{
"provider_id": id,
"date": "2020-02-04T19:30:00-03:00"
}
A aplicação só permite que usuários logados acessem as rotas disponíveis, então um processo de login é implementado utilizando JWT.
Para usar o repositório, basta cloná-lo através do terminal ou prompt através dos seguintes comandos:
> git clone https://github.com/lalves86/gobarber.git // clonar o repositório em máquina local
> yarn // instalar as dependências do projeto
> yarn dev // estabelecer a conexão com o servidor
Acessar url local: http://localhost:3333