Skip to content

leobaray/baray

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

34 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Baray

SaaS de serigrafia — controle de produção, catálogo, pedidos, clientes e pagamentos. ~23 mil linhas em Dart.

Visão geral

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.

Arquitetura

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)

Funcionalidades

  • 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

Stack

  • 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)

Como rodar o servidor

cd server
dart pub get
export PORT=8080
export EMPRESA_DB=empresa.db
export BARAY_API_TOKEN=seu_token_aqui
dart run bin/server.dart

Health check: GET /health

Como rodar o cliente

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.

Testes

cd server
dart test

Cobertura 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.

Licença

MIT — veja LICENSE.

About

SaaS de serigrafia — catálogo, pedidos, clientes. ~23k linhas em Dart.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors