Skip to content

raquel-silveira/goomer-lista-rango

Repository files navigation

Goomer Lista Rango

API RESTful capaz de gerenciar os restaurantes e os produtos do seu cardápio.



✨ Features

  • 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

📦 Pré-requisitos

  • 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.

🎲 Rodando a aplicação

  • 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

🛠 Tecnologias

As seguintes ferramentas foram usadas na construção do projeto:


🔨 Estrutura

  • DER do banco de dados

GoomerListaRangoDB

  • Fluxo da aplicação
    • A estrutura da aplicação é baseada nos conceitos de arquitetura limpa, seguindo o fluxo: controller > usecase > repository > storage

Fluxo


🧪 Testes unitários

# Rodando os testes
$ yarn test

  • Resultado dos testes, faltando aplicar testes de integração:

Testes

  • Acesse a cobertura de testes no navegador: goomer_lista_rango/coverage/lcov-report/index.html

🚀 Desafios enfrentados

  • 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.

💡 Pontos de melhoria

  • 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.

🙋 Utilidade



Feito com 💙 por Raquel Silveira

Linkedin Badge Gmail Badge

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages