Repositório privado — O código-fonte é de propriedade da empresa e não está disponível publicamente. Os dados exibidos nas imagens são fictícios e têm caráter exclusivamente ilustrativo.
Resumo
O ERP Rodrigues Denoni Engenharia foi desenvolvido para digitalizar e centralizar toda a operação de um escritório de engenharia civil — da gestão financeira ao acompanhamento de obras em campo. O sistema cobre desde o cadastro de clientes, fornecedores e colaboradores até o controle de contratos, ordens de serviço, manutenção de frota e folha de pagamento, substituindo processos manuais fragmentados por uma plataforma integrada acessível em qualquer dispositivo.
O Desafio
O escritório operava com planilhas dispersas, comunicação informal e sem nenhuma visibilidade centralizada sobre o que acontecia em campo ou nas finanças. Engenheiros registravam o andamento das obras em cadernos, o controle de horas dos colaboradores era feito manualmente, os extratos bancários precisavam ser conciliados na mão e os clientes não tinham nenhuma forma de acompanhar o status de suas obras. Cada área funcionava de forma isolada, gerando retrabalho, inconsistências e dificuldade de tomada de decisão.
A Solução
Desenvolvi um ERP completo com back-end em Python (FastAPI) e front-end em React + TypeScript, totalmente containerizado com Docker. A arquitetura foi desenhada para cobrir todos os fluxos operacionais do escritório em um único sistema, com controle de acesso por perfil (admin, engenheiro, cliente) e interface responsiva que funciona tanto no desktop quanto no celular para uso em campo.
Funcionalidades
Financeiro
- Lançamento de receitas e despesas com categorização e histórico
- Conciliação bancária via importação de extratos no formato OFX
- Geração de relatórios financeiros e exportação em PDF
Módulo financeiro — lançamentos, conciliação bancária e relatórios
Obras e contratos
- Cadastro e acompanhamento de contratos com cronograma, status e histórico de alterações
- Diário de obras: registro de atividades, ocorrências e fotos diretamente pelo celular em campo
- Recebimento de obras com registro de etapas e documentação
Diário de obras — registro de atividades e ocorrências pelo celular em campo
Obras e contratos — cronograma, status e recebimento de etapas
Clientes e fornecedores
- Cadastro completo de clientes, fornecedores e colaboradores
- Portal do cliente: acompanhamento de ordens de serviço, status de obras e pagamentos pendentes em tempo real
Frota e sinistros
- Controle de manutenção preventiva e corretiva de veículos
- Registro e acompanhamento de sinistros com histórico e documentação
Frota e sinistros — manutenção de veículos e registro de ocorrências
Pessoas e pagamentos
- Registro de ponto e horas trabalhadas por colaborador
- Geração automática de planilhas de pagamento com base nos registros de horas
Registro de horários — controle de ponto e geração de planilhas de pagamento
Stack
Back-end
| Tecnologia | Uso |
|---|---|
| FastAPI | Framework web assíncrono |
| SQLAlchemy | ORM |
| PostgreSQL | Banco de dados relacional |
| Alembic | Migrations |
| Pydantic | Validação de dados |
| JWT + bcrypt | Autenticação e hash de senhas |
| ofxparse | Parser de extratos bancários OFX |
| boto3 | Integração com S3 / MinIO |
| pytest | Testes automatizados |
Front-end
| Tecnologia | Uso |
|---|---|
| React + TypeScript | UI tipada e escalável |
| TanStack Router | Roteamento type-safe |
| TanStack Query | Estado do servidor e cache |
| React Hook Form + Zod | Formulários com validação |
| Tailwind CSS | Estilização utilitária |
| shadcn/ui + Radix UI | Componentes acessíveis (WCAG 2.1 AA) |
| Recharts | Gráficos e dashboards |
| jsPDF | Geração de PDFs |
| Axios | Cliente HTTP |
| Vite | Build tool e dev server |
Infraestrutura
| Serviço | Uso |
|---|---|
| Docker + Docker Compose | Containerização |
| Nginx | Reverse proxy e SPA fallback |
| MinIO | Storage S3-compatible (desenvolvimento) |
| Backblaze B2 | Bucket storage de imagens e documentos (produção) |
| Railway | Hospedagem em produção |
Arquitetura
O projeto segue Clean Architecture no back-end, com separação clara de responsabilidades:
Requisição HTTP
↓
routers/ ← recebe e valida a entrada
↓
services/ ← lógica de negócio e regras
↓
models/ ← acesso ao banco (SQLAlchemy)
↓
PostgreSQL
Estrutura do Projeto
rodrigues-denoni-engenharia/
├── backend/
│ ├── app/
│ │ ├── routers/ # Endpoints da API (17 módulos)
│ │ ├── services/ # Lógica de negócio
│ │ ├── models/ # Models SQLAlchemy (21 entidades)
│ │ ├── schemas/ # Pydantic schemas
│ │ ├── dependencies/ # Injeção de dependências (auth, permissões)
│ │ ├── core/ # Database, rate limiting
│ │ └── utils/ # Funções auxiliares
│ └── alembic/ # Migrations
│
├── frontend/
│ └── src/
│ ├── routes/ # Páginas (TanStack Router)
│ ├── components/
│ │ └── ui/ # shadcn/ui (24+ componentes)
│ ├── lib/ # Queries, utils, gerador de PDF
│ ├── hooks/ # Custom hooks
│ └── contexts/ # AuthContext
│
├── nginx/ # Configurações dev e produção
├── docker/ # Docker Compose
├── docs/ # Documentação técnica
└── scripts/ # Scripts de backup e manutenção
Desenvolvimento
No back-end, o código é organizado em camadas: routers para entrada e validação, services para regras de negócio, models para acesso ao banco e schemas para contratos de dados com Pydantic. Testes automatizados com pytest garantem estabilidade.
No front-end, a interface consome endpoints via Axios com cache inteligente pelo TanStack Query. Formulários com validação via Zod, feedback visual e foco em usabilidade completam a experiência.
Resultados
Após o lançamento, o sistema trouxe ganhos concretos:
- Gestão financeira centralizada, eliminando planilhas dispersas e reduzindo erros de digitação
- Acompanhamento de contratos e prazos em tempo real, com histórico detalhado
- Redução significativa do tempo gasto em tarefas repetitivas
- Maior transparência entre as equipes, tornando o fluxo de trabalho mais ágil e confiável
- Pipeline de CI/CD com Docker garantindo deploys rápidos e reprodutíveis
