Projeto TCC
  • JavaScript 99.9%
Find a file
Vanessa Oliveira 273c167017 Merge branch '30-release-2' into 'master'
Resolve "release 2"

Closes #30

See merge request Vanessa.Oliveira/cardapio-digital!53
2025-11-11 23:00:04 +00:00
deploy Mudado esquema de imagens 2025-09-20 22:53:51 -04:00
src Adicionado mais testes de unidades 2025-11-11 18:51:23 -04:00
.env-example Mudado esquema de imagens 2025-09-20 22:53:51 -04:00
.gitignore Feito arquivo yml do docker para subir um container do miniaio 2025-09-06 17:07:17 -04:00
.gitlab-ci.yml Incluido estagio de teste no deploy 2025-09-27 14:13:41 -04:00
docker-compose.yml Configurado o minio para upload de imagens] 2025-09-06 19:38:19 -04:00
Dockerfile Implementando deploy 2025-09-09 19:46:57 -04:00
jest.config.fast.json Correçaão de testes 2025-09-01 12:47:13 -04:00
jest.config.json Adicionado mais testes de unidades 2025-11-11 18:51:23 -04:00
package-lock.json Mudado esquema de imagens 2025-09-20 22:53:51 -04:00
package.json Mudado esquema de imagens 2025-09-20 22:53:51 -04:00
Readme.md Refatorando testes depois da mudança de upload de imagem. 2025-09-07 10:03:06 -04:00
server.js Refatorando testes depois da mudança de upload de imagem. 2025-09-07 10:03:06 -04:00

🍽️ Cardápio Digital - Sistema de Pedidos para Lanchonetes

Bem-vindo ao Cardápio Digital! Este sistema foi criado para modernizar o atendimento em lanchonetes, permitindo que clientes façam pedidos diretamente pelo tablet e que administradores tenham controle total sobre produtos, vendas e fluxo dos pedidos.

🚀 Tecnologias Utilizadas

  • Node.js + Express.js: Backend robusto e rápido
  • MongoDB: Banco de dados NoSQL para flexibilidade
  • Zod: Validação de dados
  • Jest: Testes automatizados
  • Swagger: Documentação interativa da API
  • Docker: Ambiente de desenvolvimento simplificado

🛠️ Como Rodar o Projeto

  1. Pré-requisitos

    • Node.js >= 18
    • MongoDB local ou Docker
    • npm
  2. Configuração de Ambiente

    • Copie o arquivo .env-example copy e renomeie para .env na raiz do projeto.
    • Edite as variáveis conforme necessário.
  3. Instalação

    npm install
    
  4. Configuração do Banco de Dados

    • O sistema conecta em mongodb://localhost:27017/cardapio-digital por padrão.
    • Para rodar via Docker:
      docker-compose up -d
      
  5. Popular o Banco com Dados de Exemplo

    npm run seed
    
  6. Executar o Servidor

    npm start
    

    Acesse: http://localhost:3000

  7. Testes Automatizados

    npm test
    
  8. Documentação da API


🧑‍💼 Requisitos Funcionais (Rotas)

Autenticação

  • POST /login - Login do usuário
  • POST /logout - Logout do usuário
  • POST /refresh - Renovação de token

Usuários

  • POST /usuarios/cadastrar - Cadastro de usuário
  • GET /usuarios - Listar usuários (admin)
  • GET /usuarios/:id - Buscar usuário por ID
  • PUT /usuarios/:id - Editar usuário
  • DELETE /usuarios/:id - Excluir usuário

Produtos

  • GET /produtos - Listar produtos
  • GET /produtos/:id - Buscar produto por ID
  • POST /produtos - Criar produto (admin)
  • PUT /produtos/:id - Editar produto (admin)
  • DELETE /produtos/:id - Excluir produto (admin)

Pedidos

  • GET /pedidos - Listar pedidos
  • GET /pedidos/:id - Buscar pedido por ID
  • POST /pedidos/carrinho - Criar pedido em lote (carrinho)
  • DELETE /pedidos/:id - Excluir pedido
  • PATCH /pedidos/:id/status - Atualizar status do pedido

Relatórios

  • GET /relatorios/vendas - Relatório de vendas detalhado

🎯 Funcionalidades Principais

  • Cadastro e autenticação de usuários (admin e cliente)
  • Gerenciamento de produtos e cardápio
  • Fluxo completo de pedidos: adicionar ao carrinho, enviar, acompanhar status, pagar e finalizar
  • Relatórios de vendas por período, status e usuário
  • Permissões e regras de negócio robustas para cada perfil

💡 Sobre o Sistema

O Cardápio Digital foi pensado para ser intuitivo, seguro e eficiente, facilitando o dia a dia de lanchonetes e melhorando a experiência do cliente. Todas as operações são protegidas por autenticação JWT e as regras de negócio garantem que cada perfil só acesse o que é permitido.


👩‍🍳 Telas Sugeridas

  • Cliente: Cardápio, Carrinho/Pedidos
  • Administrador: Listar/Cadastrar Produtos, Relatório de Vendas, Gestão de Pedidos

Dúvidas? Consulte a documentação Swagger ou os testes automatizados para exemplos de uso!