A GoBarber API é um back-end desenvolvido em TypeScript para gerenciar um sistema de agendamentos de serviços de barbearia. Ele oferece funcionalidades para clientes e prestadores de serviços, como agendamento de horários, notificações em tempo real, recuperação de senha, entre outros.
Este projeto foi desenvolvido com as seguintes tecnologias e bibliotecas:
- Node.js
- TypeScript
- TypeORM
- Redis e ioredis
- MongoDB
- Socket.io
- Amazon SES e Mailtrap
- Nodemailer para envio de e-mails
- BCrypt para hashing de senhas
- Celebrate para validação de rotas
- JWT para autenticação
- Docker para containerização do ambiente de desenvolvimento
- Insomnia para testes de APIs
- DBeaver para gerenciar e visualizar o banco de dados
- Recuperação de senha por e-mail.
- Envio de e-mails com instruções de recuperação usando Mailtrap (dev) ou Amazon SES (produção).
- Link de reset de senha com validade de 2 horas.
- Atualização de nome, e-mail e senha.
- Validação da senha antiga ao atualizar a senha.
- Confirmação da nova senha.
- Listagem de agendamentos de um dia específico.
- Notificações em tempo real para novos agendamentos.
- Controle de notificações lidas e não lidas.
- Listagem de prestadores de serviço disponíveis.
- Visualização de horários disponíveis por dia/mês.
- Criação de novos agendamentos.
- Restrições:
- Agendamentos disponíveis apenas entre 8h e 18h.
- Um agendamento dura 1 hora.
- Não é possível agendar em horários passados ou já ocupados.
- Não é possível agendar consigo mesmo.
O projeto segue uma arquitetura modular organizada em diretórios como:
src/
├── modules/
├── config/
├── shared/
├── infra/
│ ├── http/
│ ├── typeorm/
│ ├── redis/
│ └── mongodb/
- Node.js (v16 ou superior)
- Yarn
- PostgreSQL
- Redis
- MongoDB
- Clone o repositório:
git clone https://github.com/Lucascfsb/node-GoBarber.git
cd node-GoBarber
Instale as dependências:
yarn install
Configure as variáveis de ambiente: Crie um arquivo .env baseado no .env.example e configure as credenciais do banco de dados e serviços externos.
Execute as migrações do banco de dados:
yarn typeorm migration:run
Inicie o servidor:
yarn dev
🧪 Testes O projeto utiliza o Jest para os testes. Para executar os testes, use:
yarn test