GoBarber - Aplicação para agendar e gerenciar serviços de beleza, onde prestadores de serviços podem se cadastrar, e usuários poderão marcar agendamentos com estes provedores.
Antes de começar, você vai precisar ter instalado em sua máquina as seguintes ferramentas:
- Node.js - para executar JavaScript fora do navegador
- Docker - rodar as imagens do banco de dados
- NPM ou Yarn para instalar as dependências do projeto
- Git - caso queira clonar o projeto no GitHub (Você pode simplesmente fazer o dowload pelo GitHub caso ache melhor)
- Além disto é bom ter um editor para trabalhar com o código como VSCode
# Clone este repositório
$ git clone https://github.com/leon-carvalho/gobarber-api
# Acesse a pasta do projeto no terminal/cmd
$ cd gobarber-api
# Instale as dependências
$ yarn
# Ou use NPM se preferir
$ npm install
# Crie a imagem Docker 🐳 do banco de dados com base no arquivo docker-compose.yml
# Serão criadas imagens dos bancos: PostgreSQL, MongoDb e Redis
$ docker-compose up -d
# Rode as migrations para o banco de dados
$ yarn typeorm migration:run
# Ou use NPM
$ npm run typeorm migration:run
# Execute os testes da aplicação com o comando
$ yarn test
# Ou use NPM
$ npm run test
# Execute a aplicação em modo de desenvolvimento
$ npm run dev:server
# Ou use NPM
$ npm run dev:server
# O servidor inciará na porta:3333 - acesse http://localhost:3333
# Gere a build da aplicação com o comando:
$ npm run build
Você pode acessar as rotas no Insomnia clicando no botão abaixo:
Principais ferramentas usadas na construção do projeto:
- TypeScript
- Autenticação JWT
- Filas com Redis
- Envio de e-mails
- Validação de dados
- Injeção de dependência
- Geração de Hash de senha
- Utilizar imagens Docker
- Upload de arquivos no Node
- Trabalhar com datas e fusos
- Utilização de banco de dados SQL
- Utilização de banco de dados NoSQL
- Criação de testes unitários com Jest
- Domain Driven Design (DDD)
- Test Driven Design (para os services da aplicação)
- Faça um fork do projeto.
- Crie uma nova branch com as suas alterações:
git checkout -b my-feature
- Salve as alterações e crie uma mensagem de commit contando o que você fez:
git commit -m "feature: My new feature"
- Envie as suas alterações:
git push origin my-feature
Caso tenha alguma dúvida confira este guia de como contribuir no GitHub
Feito com ❤️ por Leonardo Carvalho
GitHub - @leon-carvalho
LinkedIn - entre em contato!
Este projeto esta sobe a licença MIT. Veja a LICENÇA para saber mais.