Mesa Mestre é um sistema de gerenciamento para restaurantes, desenvolvido para simular um ambiente real de trabalho. Ele integra o controle de mesas, comandas, pedidos e um dashboard administrativo interativo, utilizando tecnologias modernas e boas práticas de desenvolvimento.
- Sobre o Projeto
- Funcionalidades
- Tecnologias
- Estrutura do Projeto
- Configuração e Instalação
- Documentação da API
- Imagens e Vídeos
- Contribuição
- Créditos
- Licença
O Mesa Mestre foi desenvolvido com o objetivo de oferecer uma solução completa para a gestão de restaurantes. Principais pontos do projeto:
- Controle de Mesas: Monitoramento do status (livre, ocupada ou aguardando) e disposição das mesas.
- Gerenciamento de Comandas e Pedidos: Criação, atualização e fechamento de comandas com suporte para divisão de contas.
- Dashboard Administrativo: Relatórios e gráficos interativos para análise de vendas, ocupação e desempenho dos produtos.
- Segurança: Autenticação via JWT, criptografia de senhas e níveis de acesso para diferentes perfis (administrador, atendente, cozinha e cliente).
-
Gestão de Mesas
- Controle de status (disponível, ocupada, aguardando)
- Organização por localização e capacidade
-
Sistema de Comandas e Pedidos
- Criação e gerenciamento de comandas
- Adição e remoção de itens
- Divisão de contas e suporte a diversos métodos de pagamento
-
Dashboard e Relatórios
- Visualização de gráficos (via Chart.js)
- Indicadores de desempenho e análise financeira
-
Segurança
- Autenticação com JWT
- Criptografia de senhas com Bcrypt
- Diferentes níveis de acesso (Administrador, Atendente, Cozinha, Cliente)
-
Documentação e Suporte
- Documentação da API com Swagger
- Padrões de código com ESLint e Prettier
- Node.js com Express
- PostgreSQL para o banco de dados (driver
pg
) - JWT para autenticação
- Bcrypt para criptografia
- Swagger para documentação da API
- HTML5
- SCSS/CSS3
- JavaScript ES6+
- Chart.js para gráficos
- Uso de módulos ES6 para organização
- ESLint e Prettier para padronização do código
- Scripts SQL para criação, teste e manutenção do banco
A organização do repositório segue a estrutura abaixo:
- Node.js (v12 ou superior)
- PostgreSQL
-
Clone o Repositório:
git clone https://github.com/Alenes200/Mesa-Mestre.git cd Mesa-Mestre
-
Instalar Dependências:
npm install
-
Configurar Variáveis de Ambiente:
- Crie um arquivo .env na raiz do projeto com as seguintes variáveis:
DB_HOST=localhost DB_USER=seu_usuario DB_PASS=sua_senha DB_NAME=mesa_mestre JWT_SECRET="coloque sua senha" PORT=3000 SENHA_SECRETA_1="coloque sua senha" SENHA_SECRETA_2="coloque sua senha" SENHA_SECRETA_3="coloque sua senha" SENHA_SECRETA_4="coloque sua senha"
-
Configurando o arquivo createTestUsers.js na pasta Utils:
- Este arquivo vai criar os 4 tipos de usuários que precisamos para gerenciar nosso sistema.
- Escolha o nome e e-mail para cada tipo usuário.
// Cria um usuário Administrador (user_type = 1) await createTestUser( client, 'Nome do Adm', '@example.com', process.env.SENHA_SECRETA_1, 1 ); // Cria um usuário funcionário (user_type = 2) await createTestUser( client, 'Nome do funcionário', '@example.com', process.env.SENHA_SECRETA_2, 2 ); // Cria um usuário comum (user_type = 3) await createTestUser( client, 'Usuário Comum', '@example.com', process.env.SENHA_SECRETA_3, 3 ); // Cria um usuário auxilar de cozinha (user_type = 4) await createTestUser( client, 'Nome do auxiliar de cozinha', '@example.com', process.env.SENHA_SECRETA_4, 4 );
-
Configurar o Banco de Dados:
Executar Scripts SQL: Na pasta sql, você encontrará scripts para criação das tabelas e inserção de dados iniciais. Execute-os no seu banco de dados PostgreSQL.
- O arquivo create_tables.sql tem as tabelas necessárias, funções e tiggers para rodar corretamente o proejto.
- O arquivo insert_test_data.sql está os insert no banco necessários.
-
Iniciar o Servidor Backend:
npm start
A API está documentada utilizando o Swagger. Após iniciar o servidor, você pode acessar a documentação navegando até:
https://equipe02.alphaedtech.org.br/api-docs/
Essa interface fornece todos os endpoints, parâmetros e exemplos de requisições/respostas.
Página principal sobre o nosso sistema e parte de login, onde cada tipo de usuário vai conseguir entrar na sua tela.
Página do cardápio personalizada para seu restaurante, aqui deixamos de acordo com a preferência do cliente.
Página para o seu funcionário no mobile, onde ele pode finalizar pagamento e liberar a mesa para um novo usuário.
Página da cozinha, onde o auxiliar de cozinha recebe o pedido e pode finalizar como pronto e como entregue.
Página do administrador, aqui ele tem controle de tudo sobre adicionar funcionários, visualizar gráficos de vendas, editar mesas e editar cardápio.
Contribuições são bem-vindas! Siga os passos abaixo para contribuir com o Mesa Mestre:
-
Faça um fork do repositório.
-
Crie uma branch para a sua feature:
git checkout -b minha-nova-feature.
-
Commit suas alterações:
git commit -m 'Adiciona nova feature'.
-
Faça o push para a branch:
git push origin minha-nova-feature.
-
Abra um Pull Request.
Alexsander Nunes
Luiz Ricardo
Matheus Eduardo
Nicolas de Souza
Samuel Mori
Distribuído sob a licença MIT. Consulte o arquivo LICENSE para mais detalhes.