- JavaScript 99.9%
|
|
||
|---|---|---|
| deploy | ||
| src | ||
| .env-example | ||
| .gitignore | ||
| .gitlab-ci.yml | ||
| docker-compose.yml | ||
| Dockerfile | ||
| jest.config.fast.json | ||
| jest.config.json | ||
| package-lock.json | ||
| package.json | ||
| Readme.md | ||
| server.js | ||
🍽️ 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
-
Pré-requisitos
- Node.js >= 18
- MongoDB local ou Docker
- npm
-
Configuração de Ambiente
- Copie o arquivo
.env-example copye renomeie para.envna raiz do projeto. - Edite as variáveis conforme necessário.
- Copie o arquivo
-
Instalação
npm install -
Configuração do Banco de Dados
- O sistema conecta em
mongodb://localhost:27017/cardapio-digitalpor padrão. - Para rodar via Docker:
docker-compose up -d
- O sistema conecta em
-
Popular o Banco com Dados de Exemplo
npm run seed -
Executar o Servidor
npm startAcesse: http://localhost:3000
-
Testes Automatizados
npm test -
Documentação da API
- Swagger disponível em: http://localhost:5000/docs
🧑💼 Requisitos Funcionais (Rotas)
Autenticação
POST /login- Login do usuárioPOST /logout- Logout do usuárioPOST /refresh- Renovação de token
Usuários
POST /usuarios/cadastrar- Cadastro de usuárioGET /usuarios- Listar usuários (admin)GET /usuarios/:id- Buscar usuário por IDPUT /usuarios/:id- Editar usuárioDELETE /usuarios/:id- Excluir usuário
Produtos
GET /produtos- Listar produtosGET /produtos/:id- Buscar produto por IDPOST /produtos- Criar produto (admin)PUT /produtos/:id- Editar produto (admin)DELETE /produtos/:id- Excluir produto (admin)
Pedidos
GET /pedidos- Listar pedidosGET /pedidos/:id- Buscar pedido por IDPOST /pedidos/carrinho- Criar pedido em lote (carrinho)DELETE /pedidos/:id- Excluir pedidoPATCH /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!