Introdução • Instalação • Configuração • Inicialização • Rotas
O Menu Master é uma plataforma para visualizar cardápios de restaurantes e avaliar os pratos oferecidos. Nela você pode interagir com os dados dos restaurantes, categorias de pratos, produtos e avaliações.
- Clone o repositório do Menu Master.
- Certifique-se de ter o Node.js e o npm instalados.
- Execute
npm installpara instalar as dependências.
- Crie um arquivo
.envna raiz do projeto. - Defina as variáveis de ambiente necessárias no arquivo
.env. Veja o exemplo abaixo:
PORT=3000
# JWT
JWT_SECRET_KEY=chave_secreta
JWT_EXPIRES_IN=30d
# DATABASE
DATABASE_NAME=nome_do_banco_de_dados
DATABASE_USERNAME=usuario_do_banco_de_dados
DATABASE_PASSWORD=senha_do_banco_de_dados
DATABASE_HOST=host_do_banco_de_dados
# CLOUDINARY
CLOUDINARY_CLOUD_NAME=nome_da_nuvem_do_cloudinary
CLOUDINARY_API_KEY=chave_da_api_do_cloudinary
CLOUDINARY_API_SECRET=segredo_da_api_do_cloudinary
- Execute
npm startpara iniciar o servidor. - O servidor estará disponível em
http://localhost:3000.
-
Certifique-se de ter o Docker instalado e em execução.
-
No diretório raiz do projeto, onde está localizado o Dockerfile, execute o seguinte comando para construir a imagem Docker:
docker build -t menu-master-api . -
Após a construção da imagem, você pode executar um contêiner Docker com o seguinte comando:
docker run -p 3000:3000 -d menu-master-api
-
O servidor estará agora em execução dentro do contêiner Docker e estará acessível em http://localhost:3000.
-
Categoria:
POST /category: Cria uma nova categoria. (Autenticado)DELETE /category: Exclui uma categoria. (Autenticado)PUT /category: Atualiza uma categoria. (Autenticado)GET /category: Retorna uma categoria específica.GET /categories: Retorna todas as categorias.
-
Produto:
POST /product: Cria um novo produto. (Autenticado)DELETE /product: Exclui um produto. (Autenticado)PUT /product: Atualiza um produto. (Autenticado)GET /product: Retorna um produto específico.GET /products: Retorna todos os produtos.
-
Avaliação:
GET /rating: Retorna uma avaliação específica.POST /rating: Avalia um produto.GET /rating/avg: Retorna a média das avaliações.
-
Restaurante:
GET /restaurant: Retorna um restaurante específico.POST /restaurant: Cria um novo restaurante.PUT /restaurant: Atualiza um restaurante. (Autenticado)DELETE /restaurant: Exclui um restaurante. (Autenticado)GET /restaurants: Retorna todos os restaurantes.POST /restaurant/login: Autentica o restaurante.
