Sortudo é uma aplicação interativa baseada em dados que visualiza a improbabilidade estatística de ganhar na Mega-Sena. Com análises de dados, histórico de sorteios e um gerador de combinações, o projeto educa sobre a matemática dos jogos de azar e suas baixas probabilidades.
- 📊 Dashboard de Análise Interativo: Explore mais de 30 anos de história da loteria com gráficos sobre a erosão do prêmio, distribuição geográfica e tendências de frequência.
- 🎲 Gerador de Sorte: Um gerador de combinações baseado em física que simula a "sorte" necessária para vencer, destacando a aleatoriedade do sorteio.
- 🔍 Busca Histórica: Verifique qualquer combinação de 6 números para ver se ela já foi sorteada na história da Mega-Sena.
- 📉 Narrativa Matemática Interativa (Scrollytelling): Uma jornada curada enquanto você rola a página, explicando conceitos como a Lei dos Grandes Números e a distribuição de Poisson em um contexto visual na seção "Matemática do Improvável".
- Runtime: Bun (Runtime JavaScript rápido, tudo-em-um)
- Framework: React 18 com TypeScript
- Ferramenta de Build: Vite
- Roteamento: React Router 7
- Estilização: Tailwind CSS com efeitos de Glassmorphism
- Animações: Framer Motion
- Gráficos: Recharts
- Ícones: Lucide React
- Componentes: Primitivos do Radix UI
- Unitário/Integração: Vitest & React Testing Library
- Testes E2E: Playwright
- Linting/Formatação: ESLint (com limites estritos) & Prettier
- Segurança de Tipos: Zod para validação de dados
O projeto utiliza uma organização baseada em funcionalidades, que separa a lógica por contexto de uso, facilitando a manutenção sem a complexidade de camadas estritas:
src/features/: Domínios de produto (Analytics, Generator, Search, Home, About), com páginas e componentes por feature.src/app/: Roteamento, bootstrap e orquestração global viaAppProvider.src/store/: Estado global e coordenação entre domínio de dados, analytics, busca e geração.src/workers/: Processamento pesado fora da thread principal (analytics, parser e search).src/shared/esrc/lib/: UI reutilizável, utilitários, schemas e helpers transversais.
Documentação técnica completa:
- docs/architecture.md — visão de arquitetura, system design, práticas de código, runbook e roadmap técnico.
- Bun instalado em sua máquina.
# Clone o repositório
git clone https://github.com/henriquebonfim/sortudo.git
cd sortudo
# Instale as dependências
bun install# Busque os dados mais recentes da loteria e inicie o servidor de desenvolvimento
bun run dev# Executa eslint, knip, prettier e verificação de types
bun run codebase:smells
# Execute os testes unitários, integração, e os testes de ponta a ponta (Playwright)
bun run codebase:testsMantemos altos padrões para a saúde do código:
- Formatação:
bun run prettier(Integrado comlint-stagedno pre-commit). - Linting:
bun run lint(Verifica tanto o estilo de código quanto violações arquiteturais). - CI/CD: Fluxos de trabalho automatizados para staging, produção e release.
Este projeto está licenciado sob a Licença MIT - veja o arquivo LICENSE para mais detalhes.