Furafila
Repositório privadoSistema de pedidos para eventos com barracas
Do escaneamento do QR code ao ticket final. Backend em .NET 9, monólito modular com EF Core, FluentValidation e Serilog, e PWA em React 19. Integração completa com a Orders API do Mercado Pago (Pix, cartão e balcão), cada fluxo com sua própria validação de webhook via HMAC. Notificações em tempo real com SignalR e Web Push, testes de integração com Testcontainers.
.NET 9EF CoreReact 19Mercado PagoSignalRTestcontainers
ObraLog
Repositório privadoApp de medições e diário de obra, offline-first
React Native com Expo e SQLite local: toda escrita é salva primeiro no dispositivo, sem esperar rede. Sincronização bidirecional com o backend, incluindo resolução de conflitos e upload de fotos. Backend em .NET 9 Minimal APIs + EF Core, atuando como intermediário para um sistema de terceiro.
React NativeExpoSQLite.NET 9Offline-first
Kanban
Quadro Kanban com drag-and-drop
Colunas fixas de A fazer, Fazendo e Feito, cartões com título e descrição, arrastar e soltar nativo via HTML5 Drag and Drop API. Persistência local no navegador, sem backend. Feito em Vue 3 com Composition API e Pinia para gerenciamento de estado.
Vue 3PiniaTypeScriptVite
Task Manager
Gerenciador de tarefas com autenticação JWT
Cadastro e login com senha hasheada em bcrypt, tokens JWT, CRUD de tarefas isolado por usuário. Front-end em Angular com standalone components, signals e forms reativos; back-end em FastAPI com SQLAlchemy. Testes automatizados cobrindo autenticação e as rotas de tarefas.
AngularFastAPISQLAlchemyJWT
UI Kit
Biblioteca de componentes React documentada com Storybook
12 componentes acessíveis e testados: Button, Input, Select, Modal, Toast, Card, Badge, Tabs, Tooltip, Accordion, Skeleton e FormField com React Hook Form + Zod. CSS Modules com os mesmos design tokens deste portfólio, testes unitários com Vitest e Testing Library, e testes de interação em navegador real via Storybook.
ReactTypeScriptStorybookVitest
Pomodoro Move.it
Pomodoro com gamificação e desafios de pausa ativa
Ciclos de foco de 25 minutos que rendem experiência e, ao final de cada ciclo, sorteiam um desafio de alongamento corporal ou descanso visual. Completar desafios sobe de nível. Estado (nível, xp, desafios completados) persistido em cookies, lidos no servidor via getServerSideProps. Adaptado a partir do projeto Move.it, construído numa Next Level Week da Rocketseat.
Next.jsReactTypeScriptWeb Notifications API
Link Shortener
Encurtador de links com autenticação JWT e estatísticas de clique
Registro e login com JWT (access token curto e refresh token rotativo, hash SHA-256), CRUD de links com slug automático ou customizado, redirect público com contagem de cliques e estatísticas por dia. Rate limiting no login, validação com class-validator e documentação OpenAPI via Swagger.
NestJSPrismaPostgreSQLJWT
Appointment Scheduler
Agendamento de horários com regra de não sobreposição isolada no domínio
API em .NET 9 (Minimal API) com arquitetura em camadas (Domain/Application/Infrastructure): a regra de não permitir dois agendamentos do mesmo profissional no mesmo horário mora isolada no domínio, coberta por testes unitários e de integração com Testcontainers. EF Core + PostgreSQL, FluentValidation, documentação OpenAPI via Swagger. Front-end em Next.js com uma grade de horários que deixa tentar agendar em cima de um horário ocupado, pra ver a API recusar de verdade.
.NET 9EF CorePostgreSQLNext.js
Gastos Offline
Controle de gastos offline-first, com sincronização por "mais recente vence"
App nativo em React Native (Expo): toda despesa é salva no SQLite do dispositivo antes de qualquer coisa, sincronizando com o servidor quando a conexão volta ou sob demanda. A versão web abaixo roda o mesmo código como vitrine de teste, sem precisar instalar nada, mas sem a garantia de funcionar sem internet, que é exclusiva do app nativo (APK abaixo). Conflito entre dispositivos resolvido por "mais recente vence", testado nos dois lados (client e servidor). Servidor de sincronização em Node.js e Express.
React NativeExpoSQLiteNode.jsOffline-first
Só Android por enquanto: build pra iOS exigiria conta paga de desenvolvedor Apple.
Ride Dispatch
Sistema de despacho de corridas com motor de pareamento em Go
API em Laravel (PHP) cuida do cadastro de motoristas e corridas; um serviço à parte em Go mantém a localização de cada motorista em memória (protegida por sync.RWMutex) e resolve o pareamento pelo mais próximo via fórmula de Haversine, sob concorrência real. Os dois se comunicam por REST, e a API degrada graciosamente se o Go cair (a corrida fica "sem motorista", nunca um erro 500). Frontend em TypeScript puro com Leaflet, mostrando o pareamento ao vivo no mapa. 16 testes PHPUnit e 18 testes Go, incluindo um teste de concorrência rodado com -race.
LaravelPHPGoPostgreSQLTypeScript
Furafila e ObraLog têm repositório privado, mas posso mostrar o código em uma conversa.