Backend da aplicação GoBarber
Features | Pré-Requisitos | Backend | Bibliotecas | Lincença
O GoBarber é uma aplicação voltada para cabeleireiros. Os usuários da aplicação, poderão realizar agendamentos para cortes de cabelos e afins de um prestador de serviços. Já os profissionais do área, terão controle de todos os agendamentos que já foram marcados, recebendo notificações de novos agendamentos.
- Criação de Agendamento
- Listagem de Agendamentos
- Listagem de Prestadores de Serviços
- Listagem de Dias Disponíveis para Agendamento
- Listagem de Meses Disponíveis para Agendamento
- Login e Logout
- Criação de Perfil
- Listagem do Perfil
- Atualização de Perfil
- Atualização do Avatar
- Alteração de Email
- Cache
- Redis
- Upload de Imagens
- Amazon S3
- Disk Storage
- Envio de Emails
- Amazon SES
- Ethereal
Antes de começar, você vai precisar ter instalado em sua máquina as seguintes ferramentas: Git, Node.js e/ou Yarn Também, será necessário ter o Docker instalado e configurado em sua máquina. Além disto é bom ter um editor para trabalhar com o código como VSCode
# Clone este repositório
$ git clone https://github.com/gabriel-nt/GoStack-Backend
# Crie o container do Postgres
$ docker run --name gobarber -e POSTGRES_PASSWORD=docker -p 5432:5432 -d postgres
# Crie o container do MongoDB
$ docker run --name mongodb -p 27017:27017 -d -t mongo
# Crie o container do Redis
$ docker run --name redis -p 6379:6379 -d -t redis:alpine
# Instale as dependências
$ npm install ou yarn
# Rode as migrations
$ yarn typeorm migration:run
# Execute a aplicação em modo de desenvolvimento
$ yarn dev:server ou npm run dev
# Execute os testes
$ yarn test
# Execute os testes com Coverage
$ yarn test --coverage
# O servidor inciará na porta:3333 - acesse <http://localhost:3333>
- Obs: Para executar os backend, crie um banco de dados.
Para ter um exemplo das rotas para a nossa API, basta clicar no link abaixo:
Esse projeto foi desenvolvido com as seguintes tecnologias:
- Node.js
- TypeScript
- Postgres
- MongoDB
- Redis
Esse projeto foi desenvolvido com o auxílio das seguintes libs:
- Express
- Jest
- TypeORM
- aws-sdk
- jwt
- nodemailer
- celebrate
- date-fns
Para uma melhorar estrutura de projetos utilizamos das seguintes fundamentos:
- DDD
- TDD
- SOLID
Para padronizar a escrita do código, utilizamos as seguinte ferramentas:
- Eslint
- Prettier
- EditorConfig
Esse projeto está sob a licença MIT.
Feito por Gabriel Teixeira