Sistema SaaS de gestão de restaurantes com arquitetura multi-tenancy, onde múltiplos estabelecimentos operam no mesmo sistema com dados completamente isolados.
O BarrioERP foi projetado para atender desde pequenos bares até restaurantes com múltiplas filiais, oferecendo controle completo sobre operações do dia-a-dia: mesas, comandas, cardápio, pagamentos, caixa, estoque, reservas e equipe.
| Camada | Tecnologia |
|---|---|
| Backend | Python 3.14, FastAPI, SQLAlchemy 2.0 (async) |
| Banco de Dados | PostgreSQL 16, Alembic (migrations) |
| Frontend | React 19, TypeScript, TailwindCSS 4, Vite |
| Infraestrutura | Docker, Docker Compose |
| Autenticação | JWT (python-jose), bcrypt |
| Testes | pytest, pytest-asyncio, httpx |
- Autenticação & RBAC — Login JWT com controle de acesso por papéis (Owner, Manager, Waiter, Cashier)
- Dashboard — Visão geral em tempo real do estabelecimento
- Mesas — Gestão completa com status (Livre, Ocupada, Reservada, Aguardando Conta)
- Comandas — Abertura, adição de itens, fechamento com locking otimista
- Cardápio — Categorias e itens com cascade de soft delete
- Pagamentos — Múltiplos métodos, pagamentos parciais, verificação financeira
- Caixa — Sessões de caixa, abertura/fechamento, movimentações
- Estoque — Controle de insumos, vinculação com itens do cardápio
- Reservas — Agendamento de mesas com validação de conflitos
- Equipe — Gestão de funcionários e permissões
- Relatórios — Métricas de vendas e desempenho
- Auditoria — Log completo de todas as ações do sistema
- KDS (Kitchen Display System) — Tela da cozinha para pedidos
- Fiado — Controle de clientes e pagamentos pendentes
- Onboarding — Fluxo de setup inicial para novos restaurantes
- Multi-tenancy — Isolamento total de dados por empresa via JWT
- Arquitetura em camadas — Schema → Repository → Service → Endpoint
- Async/Await — Backend assíncrono para alta performance
- Soft Delete — Preservação de histórico para auditoria
- Optimistic Locking — Controle de concorrência via campo
version - Aritmética Financeira —
Decimal(12,2)para precisão em valores monetários - Snapshot de Preço — Itens preservam preço e nome no momento do pedido
- RBAC — Controle de acesso baseado em papéis por rota
- Python 3.14+
- Node.js 18+
- Docker e Docker Compose
- PostgreSQL 16 (ou via Docker)
git clone https://github.com/seu-usuario/BarrioERP.git
cd BarrioERPcp backend/.env.example backend/.env
# Edite o .env com suas configuraçõesmake db-upmake installmake migrate-upmake devcd frontend
npm install
npm run devAcesse:
- Frontend:
http://localhost:5173 - API:
http://localhost:8000 - Swagger UI:
http://localhost:8000/docs
| Comando | Descrição |
|---|---|
make db-up |
Sobe o PostgreSQL no Docker |
make db-down |
Para e remove os containers |
make db-shell |
Abre psql interativo |
make migrate-gen |
Gera nova migration |
make migrate-up |
Aplica migrations pendentes |
make migrate-down |
Reverte última migration |
make dev |
Inicia backend com hot-reload |
make validate-models |
Verifica models e tabelas |
BarrioERP/
├── backend/
│ ├── app/
│ │ ├── api/v1/endpoints/ # Endpoints HTTP
│ │ ├── core/ # Configurações e segurança
│ │ ├── database/ # Sessão e base do banco
│ │ ├── models/ # Models SQLAlchemy
│ │ ├── repositories/ # Acesso ao banco
│ │ ├── schemas/ # Contratos Pydantic
│ │ └── services/ # Lógica de negócio
│ └── alembic/ # Migrations
├── frontend/
│ ├── src/
│ │ ├── components/ # Componentes React
│ │ ├── pages/ # Páginas da aplicação
│ │ └── lib/ # Utilitários e API
│ └── ...
├── docker-compose.yml
├── Makefile
└── ARCHITECTURE.md
Projeto privado.