Git Product home page Git Product logo

goomer-lista-rango_desafio's Introduction

Lista Rango

🚀 Tecnologias utilizadas

O projeto foi desenvolvido utilizando as seguintes tecnologias


🗂 Como baixar o projeto

Backend

    # Clonar o repositório
    $ git clone https://github.com/LeonardoGabrielSanches/Goomer-Lista-Rango_desafio

    # Entrar no diretório
    $ cd Goomer-Lista-Rango_desafio

    # Instalar as dependências
    $ yarn install

Ambiente do projeto

Para realizar a configuração do ambiente é necessário que sejam feitas algumas mudanças no arquivo ormconfig.json que está na raiz do projeto.

{
  "type": "mysql",
  "host": "localhost", 
  "port": 3306, --Informe a porta usada pelo mysql
  "username": "root", -- Informe o usuário utilizado pelo mysql
  "password": "password", -- Informe a senha para o acesso ao banco de dados
  "database": "goomer_rango", -- Crie um banco de dados com este nome ou qualquer outro que quiser, apenas se lembre de trocar a propriedade
  "entities": [
    "./src/modules/**/typeorm/entities/*.ts"
  ],
  "migrations": [
    "./src/shared/infra/typeorm/migrations/*.ts"
  ],
  "cli": {
    "migrationsDir": "./src/shared/infra/typeorm/migrations"
  }
}

Após isso será necessário rodar um comando para que as "migrations" sejam executadas no banco de dados. E então rode o comando para dar um start no servidor.

	$ yarn typeorm migration:run
	$ yarn dev:server

Rotas

Para os restaurantes:

GET (Todos)- http://localhost:3333/restaurants
GET (Apenas um) - http://localhost:3333/restaurants/{id}
POST - http://localhost:3333/restaurants 
PUT - http://localhost:3333/restaurants 
PATCH - http://localhost:3333/restaurants/upload/{id} (Deverá ser enviado um arquivo de imagem com o nome "image") 
DELETE - http://localhost:3333/restaurants/{id}

Exemplo de JSON

 #POST
	{
	"name":"Restaurante Número Um",
	"address":"Rua 1",
	"operations": [{
		"start_hour":"17:30",
		"end_hour":"22:50",
		"period_description": "Segunda à Sexta"
	}]
	}
 #PUT
	{
	"id": 1,
  	"name": "Restaurante Número um atualizado",
  	"address": "Rua 1 atualizada",
	"operations": [{
		"id": 1,
		"start_hour":"17:30",
		"end_hour":"23:50",
		"period_description": "Segunda à Quarta"
	}]
	}

Para os produtos

GET (Todos por restaurante)- http://localhost:3333/products?restaurantId={id}
POST - http://localhost:3333/products
PUT - http://localhost:3333/products
PATCH - http://localhost:3333/products/upload/{id} (Deverá ser enviado um arquivo de imagem com o nome "image") 
DELETE - http://localhost:3333/products/{id}

Exemplo de JSON

 #POST
	{
	"name":"Pão a",
	"price": 3.5,
	"category":"Comidas sólidas",
	"restaurant_id": 1,
	"sale": false
	}

	||

	{ 
	"name": "Teste 3.82",
   	"category": "Dry Food",
   	"price": 8.32,
   	"sale": true,
   	"restaurant_id": 1,
   	"sale_price": 2.5,
   	"sale_description": "HAPPY HOUR",
   	"operations": [
     	{
       	"start_hour": "17:30",
       	"end_hour": "18:30",
       	"period_description": "Segunda a sexta"
     	}
   	]
}	
 #PUT
	{
	 "id":1,
   	"name": "Teste 3.82",
   	"category": "Dry Food",
   	"price": 8.32,
   	"sale": true,
   	"restaurant_id": 1,
   	"sale_price": 2.5,
   	"sale_description": "HAPPY HOUR",
   	"operations": [
     	{
	"id":1
       	"start_hour": "17:30",
       	"end_hour": "18:30",
       	"period_description": "Segunda a sexta"
     	}
   	]
	}

Dificuldades

  • A maior dificuldade no desenvolvimento do projeto foi a estruturação dos horários no banco de dados, o que resultou em lógicas não tão boas para o desenvolvimento.
  • Outra dificuldade durante o desenvolvimento, foi a falta de conhecimento na hora de realizar os testes unitários para o upload de arquivos.

Pontos a serem melhorados

  • Organização dos commits (Commits com menos código, porém mais direcionados)
  • Aprendizado mais aprofundado em testes unitários e estruturas de código.
  • Estruturação do banco de dados , que resultaria em lógicas mais simples.

Desenvolvido Leonardo Gabriel Sanches

goomer-lista-rango_desafio's People

Contributors

leonardogabrielsanches avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.