Gastrobar PDV
Sistema de PDV (Ponto de Venda) e gerenciamento para gastrobar/restaurante. Gerencia comandas de clientes, pedidos, cardápio de produtos, usuários com diferentes perfis de acesso e fluxo de preparo na cozinha/bar.
Stack
Backend
- Runtime: Node.js + TypeScript
- Framework: Fastify
- ORM: Prisma
- Banco: SQLite (desenvolvimento)
- Validação: Zod
- Auth: JWT (@fastify/jwt) + bcrypt
Frontend
- Bundler: Vite
- Linguagem: TypeScript vanilla (sem framework)
- Estilo: CSS customizado com dark theme e glassmorphism
Funcionalidades
- Autenticação JWT com controle por roles (ADMIN, CAIXA, GARÇOM, COZINHA, BARMAN)
- Painel de Cozinha/Bar com atualização em tempo real e notificações sonoras
- Gestão de Comandas com formas de pagamento, desconto, acréscimo e taxa de serviço
- Caixa/Checkout com busca avançada e seleção de pagamento
- Cardápio com gestão de produtos e categorias, controle de estoque
- Equipe com gestão de usuários e redefinição de senha
- Relatórios de vendas por período
- Dashboard com KPIs para administradores
Estrutura do Projeto
Como Rodar
Backend
O servidor estará disponível em http://localhost:3333.
Frontend
O frontend estará disponível em http://localhost:5173.
Rotas da API
Autenticação
| Método |
Rota |
Descrição |
| POST |
/api/auth/login |
Login e geração de JWT |
| PATCH |
/api/auth/senha |
Alterar própria senha |
Categorias
| Método |
Rota |
Descrição |
Permissão |
| GET |
/api/categorias |
Listar categorias |
Autenticado |
| GET |
/api/categorias/:id |
Obter categoria |
Autenticado |
| POST |
/api/categorias |
Criar categoria |
ADMIN |
| PUT |
/api/categorias/:id |
Atualizar categoria |
ADMIN |
| DELETE |
/api/categorias/:id |
Deletar categoria |
ADMIN |
Produtos
| Método |
Rota |
Descrição |
Permissão |
| GET |
/api/produtos |
Listar produtos |
Autenticado |
| GET |
/api/produtos/mais-vendidos |
Top produtos por vendas |
Autenticado |
| GET |
/api/produtos/busca |
Buscar produto por nome |
Autenticado |
| GET |
/api/produtos/baixo-estoque |
Produtos com estoque baixo |
ADMIN |
| GET |
/api/produtos/:id |
Obter produto |
Autenticado |
| POST |
/api/produtos |
Criar produto |
ADMIN |
| PUT |
/api/produtos/:id |
Atualizar produto |
ADMIN |
| DELETE |
/api/produtos/:id |
Deletar produto |
ADMIN |
Comandas
| Método |
Rota |
Descrição |
Permissão |
| GET |
/api/comandas |
Listar/filtrar comandas |
Autenticado |
| POST |
/api/comandas |
Criar comanda |
GARÇOM/CAIXA/ADMIN |
| POST |
/api/comandas/:id/itens |
Adicionar item |
GARÇOM/CAIXA/ADMIN |
| PATCH |
/api/comandas/:id |
Atualizar comanda |
GARÇOM/CAIXA/ADMIN |
| POST |
/api/comandas/:id/pagar |
Pagar comanda |
CAIXA/ADMIN |
| DELETE |
/api/comandas/itens/:id |
Remover item |
CAIXA/ADMIN |
Painel Cozinha/Bar
| Método |
Rota |
Descrição |
Permissão |
| GET |
/api/painel/itens |
Listar itens do painel |
COZINHA/BARMAN/ADMIN |
| PATCH |
/api/painel/itens/:id/status |
Atualizar status |
COZINHA/BARMAN/ADMIN |
Relatórios
| Método |
Rota |
Descrição |
Permissão |
| GET |
/api/relatorios/vendas |
Vendas por período |
ADMIN |
| GET |
/api/relatorios/dashboard |
Dados do dashboard |
ADMIN |
Usuários
| Método |
Rota |
Descrição |
Permissão |
| GET |
/api/usuarios |
Listar usuários |
ADMIN |
| POST |
/api/usuarios |
Criar usuário |
ADMIN |
| PATCH |
/api/usuarios/:id |
Atualizar usuário |
ADMIN |
| PATCH |
/api/usuarios/:id/senha |
Resetar senha |
ADMIN |
| DELETE |
/api/usuarios/:id |
Deletar usuário |
ADMIN |
Roles e Permissões
| Role |
Acesso |
| ADMIN |
Acesso total ao sistema |
| CAIXA |
Comandas, checkout, pagamento |
| GARÇOM |
Criar/gerenciar comandas |
| COZINHA |
Painel de preparo (cozinha) |
| BARMAN |
Painel de preparo (bar) |