SaaS de serigrafia — controle de produção, catálogo, pedidos, clientes e pagamentos. ~23 mil linhas em Dart.
Sistema completo para gestão de uma serigrafia: do orçamento à entrega. O servidor REST (Shelf + SQLite) gerencia pedidos, clientes, fechamentos, pagamentos, agenda de produção e dashboard. O cliente Flutter (desktop/mobile) consome a API com Dio + Riverpod.
baray/
├── server/ # API REST (Dart + Shelf + SQLite)
│ ├── bin/server.dart # entry point — sobe o pipeline HTTP na porta 8080
│ ├── lib/
│ │ ├── db.dart # SQLite com migrations versionadas (WAL, FK ON)
│ │ ├── auth_middleware.dart # token estático + rate limiter anti-brute-force
│ │ ├── rate_limiter.dart # sliding-window por IP
│ │ ├── error_middleware.dart
│ │ ├── agendador.dart # alocação automática de pedidos na agenda
│ │ ├── calculadora_orcamento.dart # regras de precificação por técnica/região/qtd
│ │ ├── fechamentos_util.dart
│ │ ├── pagamentos_util.dart
│ │ ├── dinheiro.dart # formatação BRL
│ │ ├── sql_like.dart # LIKE com escape seguro (B04)
│ │ ├── validators.dart
│ │ ├── logger.dart # rotação de arquivos
│ │ ├── models/ # cliente, pedido, pagamento, configuração, etc.
│ │ └── routes/ # clientes, pedidos, agenda, dashboard, orcamento, pagamentos, configuracoes
│ └── test/ # 22 arquivos de teste
├── app/ # Cliente Flutter
│ ├── lib/
│ │ ├── api/api_client.dart # Dio com token persistido (flutter_secure_storage)
│ │ ├── state/ # providers Riverpod
│ │ ├── screens/ # dashboard, pedidos, clientes, agenda, kanban, orçamento, configurações
│ │ ├── models/ # DTOs tipados
│ │ ├── widgets/ # cards, skeletons, forms, dialogs
│ │ ├── theme/ # design system (spacing, breakpoints, status_colors)
│ │ └── util/ # formatters, dinheiro
│ └── assets/ # Google Fonts (Inter)
└── Controle_Produção_Com_Macro_Completa.xlsm # planilha original (legado)
- Pedidos: criação, edição, detalhe, kanban de status, lote automático
- Clientes: CRUD, tipos de fechamento (mensal/quizenal/data fixa), histórico
- Orçamento: calculadora com tabela de preços por técnica, região, quantidade e cores
- Agenda: agendador automático que respeita capacidade diária (R$) e pula fins de semana
- Pagamentos: controle de pagamentos parciais, totais, status
- Dashboard: KPIs e indicadores de produção
- Configurações: tabela de preços, limites da agenda, parâmetros do negócio
- Autenticação: token estático com rate limiting (5 falhas/60s por IP)
- Migrations: schema versionado, aplicado automaticamente na inicialização
- Servidor: Dart 3.4+, Shelf, shelf_router, sqlite3, uuid, logging
- Cliente: Flutter, Dio, flutter_riverpod, go_router, flutter_secure_storage, intl, google_fonts
- Banco: SQLite (WAL mode, foreign keys, migrations versionadas)
cd server
dart pub get
export PORT=8080
export EMPRESA_DB=empresa.db
export BARAY_API_TOKEN=seu_token_aqui
dart run bin/server.dartHealth check: GET /health
cd app
flutter pub get
flutter run -d windows # ou chrome, android, etc.Na primeira execução, configure a URL do servidor e o token da API nas configurações do app.
cd server
dart testCobertura inclui: migrations, validators, rate limiter, auth middleware, pagamentos, fechamentos, agendador, dashboard, escape de LIKE, rotação de logs, propagação de rename/delete de cliente, paginação, calculadora de orçamento.
MIT — veja LICENSE.