Guigo
Projeto pessoal que resolve problema real: pai motorista de Uber vê saldo no banco e acha que pode gastar tudo, mas a maioria já tem dono (aluguel do carro, luz, água, emergência). Bot pergunta "quanto fez hoje?" e responde com o valor livre após reservar cotas para cada obrigação.
Contexto
Pai dirige Uber 6-7 dias por semana. Ganha ~R$370/dia bruto, mas R$225/dia já tem dono: aluguel do carro (R$800/semana), luz, água, gás, alimentação, emergência. O saldo do Nubank não mostra isso. Resultado: conta atrasada, estresse constante. O sistema de envelopes separa ANTES de gastar, dividindo cada real que entra em cotas por obrigação.
Meu Papel
- Entrevista real com o pai para mapear todas as obrigações financeiras e calcular cotas diárias de cada uma
- Monorepo Turborepo com 3 workspaces: bot (Node.js), admin (Next.js) e shared package com lógica de envelopes
- Motor de envelopes (calcularLivre) como função pura e testável que transforma receita bruta em valor livre diário
- WhatsApp como interface via Evolution API — zero fricção, o pai já usa 50x por dia com passageiros
- CI com GitHub Actions: lint, typecheck e testes em cada PR com quality gates
Stack Técnica
TypeScript (strict) + Turborepo
Monorepo com 3 workspaces e lógica de negócio compartilhada entre bot e admin
Supabase (PostgreSQL)
Persistência de dias, obrigações e envelopes com RLS e REST API automática
Evolution API
Integração WhatsApp self-hosted e gratuita — o sistema não pode custar dinheiro, o objetivo é economizar
Vitest + GitHub Actions
CI com lint, typecheck e testes em cada PR — quality gates desde o commit 1
Resultados
- Motor de envelopes funcional que transforma receita bruta em valor livre diário com cotas por obrigação
- Monorepo com shared package reutilizável entre bot e admin, lógica de negócio isolada e testável
- CI configurado com quality gates (lint + typecheck + testes) desde o início do projeto
- Em desenvolvimento ativo — deploy previsto para junho/2026 com usuário real (o pai)
Nota de Transparência
Projeto desenvolvido em contexto corporativo. Este case descreve exclusivamente minha contribuição técnica no frontend, sem exposição de código proprietário, dados sensíveis ou decisões estratégicas internas.
