API RESTful capaz de gerenciar os restaurantes e os produtos do seu cardápio.
- Listar todos os restaurantes
- Cadastrar novos restaurantes
- Listar os dados de um restaurante
- Alterar os dados um restaurante
- Excluir um restaurante
- Listar todos os produtos de um restaurante
- Criar um produto de um restaurante
- Alterar um produto de um restaurante
- Excluir um produto de um restaurante
- Antes de começar, você vai precisar ter instalado em sua máquina Docker versão >= 20.10.7 e Docker Compose versão >= 1.29.2.
- Iniciando:
# Clonando o repositório
$ git clone https://github.com/strixsoul/goomer-lista-rango.git
# Acessando o diretório
$ cd goomer-lista-rango
# Instalando dependências
$ yarn
- Desenvolvimento:
# Rodando em desenvolvimento
$ docker-compose up
- Produção
obs.: copie o arquivo .env.example para um .env
# rodando em produção
$ docker-compose -f docker-compose.production.yml up
- Se preferir, suba apenas o container do PostgreSQL:
obs.: copie o arquivo .env.example para um .env
# Subindo a base de dados no Docker
$ docker-compose up -d database
# Gerando build do projeto
$ yarn build
# Executando a build
$ yarn start
- Após o fim da execução, a aplicação se encontrará em: http://localhost:3333/
As seguintes ferramentas foram usadas na construção do projeto:
- DER do banco de dados
- Fluxo da aplicação
- A estrutura da aplicação é baseada nos conceitos de arquitetura limpa, seguindo o fluxo: controller > usecase > repository > storage
# Rodando os testes
$ yarn test
- Resultado dos testes, faltando aplicar testes de integração:
- Acesse a cobertura de testes no navegador: goomer_lista_rango/coverage/lcov-report/index.html
- Não utilização de ORM foi um desafio devido ao tempo de criação de queries;
- Construir a aplicação e adquirir novos aprendizados em pouco tempo, algo que foi extremamente gratificante pela conquista.
- Inserir paginação nas rotas de listagem;
- Comprimir fotos enviadas para consumo mais rápido;
- Enviar fotos para um bucket online de imagens (ex.: Amazon S3);
- Inserir campo para url de imagem;
- Aplicar testes de integração.
Feito com 💙 por Raquel Silveira