Welton Moura 402ac776ac feat: sistema GastroBar PDV completo
- Backend: Fastify + Prisma/SQLite com autenticacao JWT
- CRUD completo: usuarios, categorias, produtos, comandas
- Sistema de comandas com itens, status, pagamento
- Controle de estoque (entrada/saida automatica)
- Relatorios e dashboard com KPIs
- Notificacoes sonoras na cozinha
- Frontend: SPA vanilla TS com tema dark glassmorphism
- Mobile-first com bottom-sheet e cards compactos
- Busca de comandas por periodo
- Modal de detalhes com secao editavel colapsavel
2026-07-21 12:47:15 -03:00
2026-07-21 12:47:15 -03:00
2026-07-21 12:47:15 -03:00
2026-07-21 12:47:15 -03:00
2026-07-21 12:47:15 -03:00

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

app_ces/
├── prisma/              # Schema do banco e seed
│   ├── schema.prisma
│   └── seed.ts
├── src/                 # Backend (API)
│   ├── server.ts
│   ├── lib/prisma.ts
│   ├── middlewares/
│   ├── controllers/
│   ├── services/
│   ├── schemas/
│   └── routes/
└── web/                 # Frontend (SPA)
    └── src/
        ├── main.ts
        ├── api.ts
        ├── utils.ts
        └── views/

Como Rodar

Backend

# Instalar dependências
npm install

# Gerar cliente Prisma e aplicar schema
npx prisma db push

# Popular banco com dados iniciais
npm run db:seed

# Iniciar servidor de desenvolvimento
npm run dev

O servidor estará disponível em http://localhost:3333.

Frontend

cd web

# Instalar dependências
npm install

# Iniciar dev server
npm run dev

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)
Description
No description provided
Readme 337 KiB
Languages
TypeScript 86.4%
CSS 13.2%
HTML 0.4%