factcircuit
FactCircuit: an auditable claim-and-evidence verification loop with immutable provenance, staged checks, bounded retrieval, and reproducible evaluation.
Consulte os resultados da eleição presidencial de 2026, explore a evolução da apuração e compare turnos e eleições com os dados preservados do TSE.
Translation pending
DataTypeScript · JavaScriptGitHub @guichafyOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
🇧🇷 Resultado, replay e análise da eleição presidencial de 2026 com dados oficiais do TSE: mapa por estado e município, evolução da apuração e timelapse. Site estático em Next.js no GitHub Pages.
Translation pending
Taken from the repository README
Loading the full README.
Read the full README ↗Resultado, replay e análise da eleição presidencial brasileira de 2026, com os dados oficiais do TSE preservados e publicados como site estático.
[!NOTE] Todos os resultados, fotos, sons, animações, malhas e fontes usados pelo site são locais. O build e os acessos não consultam o TSE, o IBGE nem o Google.
output: "export"), React 19 e TypeScriptnode --test) e ESLintgit clone https://github.com/guichafy/brazilian-presidential-elections.git
cd brazilian-presidential-elections
npm ci
npm run dev
Abra http://localhost:3000. Os dados já estão versionados, então não é preciso internet nem executar o gravador.
npm run build
npm run verify:export
npm run preview
O build gera out/, que pode ser servido por qualquer servidor estático. O preview serve exclusivamente esse conteúdo em http://localhost:3000; next start não é usado. PORT=3001 npm run preview altera a porta.
Para simular a URL de projeto do Pages (/<repositorio>/), use o mesmo prefixo no build e no preview:
NEXT_PUBLIC_BASE_PATH=/brazilian-presidential-elections npm run build
NEXT_PUBLIC_BASE_PATH=/brazilian-presidential-elections npm run verify:export
NEXT_PUBLIC_BASE_PATH=/brazilian-presidential-elections npm run preview
| Variável | Padrão | Uso |
|---|---|---|
TSE_ELEICAO | 6258 | Código da eleição: 6258 (2º turno) ou 6257 (1º turno). O site publicado usa o 2º turno. |
NEXT_PUBLIC_BASE_PATH | vazio | Prefixo de URL. Vazio para domínio próprio ou <usuario>.github.io. |
PORT | 3000 | Porta do npm run preview. |
| Comando | Descrição |
|---|---|
npm run dev | Servidor de desenvolvimento |
npm run build | Exporta o site estático para out/ |
npm run verify:export | Confere HTML, URLs, timelines, fotos e demais recursos do artefato |
npm run preview | Serve out/ localmente |
npm test | Testes unitários (tests/*.test.mjs) |
npm run lint | ESLint |
npm run archive | Recaptura resultados e fotos do TSE ⚠️ requer internet |
npm run archive:municipios | Recaptura resultados por município ⚠️ requer internet |
npm run archive:malhas | Recaptura as malhas municipais do IBGE ⚠️ requer internet |
npm run recorder | Gravador de snapshots usado durante a apuração ao vivo |
| Arquivo | Conteúdo |
|---|---|
data/resultados-6257.json / resultados-6258.json | Respostas brutas completas do TSE: Brasil, 27 UFs e exterior, com data de captura e fonte |
data/municipios-6257.json / municipios-6258.json | Resultado compacto por município, conferido contra a soma de cada UF |
data/malhas/<uf>.json | Malhas municipais do IBGE, simplificadas para o mapa |
data/snapshots-<eleicao>.jsonl | Histórico gravado durante a apuração; não é substituído pela captura final |
data/eleitorado-<eleicao>.json | Eleitorado por abrangência usado na projeção |
data/referencia-2022-2t.json | Série histórica nacional do 2º turno de 2022 (preservada; não exibida na interface atual) |
data/audio-vitoria.json / audio-suspense.json | Origem, recorte e SHA-256 dos áudios |
public/fotos/<eleicao>/<sqcand>.jpeg | Fotos dos candidatos |
O TSE não disponibiliza a evolução da apuração de forma retrospectiva: os snapshots gravados são a única fonte do histórico e devem ser preservados.
[!WARNING] Os comandos abaixo substituem os arquivos versionados. Eles nunca são chamados pelo build ou pelo deploy. Execute-os apenas quando quiser atualizar o arquivo e revise o diff antes de versionar.
Rode nesta ordem, pois cada etapa confere a anterior:
npm run archive # resultados e fotos (ou: npm run archive -- 6258)
npm run archive:municipios # depende de data/resultados-<eleicao>.json
npm run archive:malhas # depende de data/municipios-<eleicao>.json
A captura exige finalização nacional, todas as seções contadas e totais consistentes. Depois de uma retotalização, npm test e npm run verify:export rejeitam divergências entre os snapshots e o resultado arquivado.
Mais detalhes:
tf.O workflow deploy-pages.yml instala as dependências pelo lockfile, executa lint e testes, exporta o site, verifica o artefato e publica no environment github-pages.
main ou execute o workflow manualmente.O prefixo de URL vem de actions/configure-pages, então funciona em /<repositorio>/ e com domínio próprio. Pull requests executam validação e build, sem publicar. O deploy usa apenas o GITHUB_TOKEN e OIDC, sem secrets adicionais.
Versione data/, public/, src/app/fonts/, o código e o lockfile. Não versione out/, .next/ nem node_modules/: o Actions gera out/ e o envia como artefato do Pages.
.
├── data/ # capturas do TSE, snapshots, municípios e malhas
├── docs/ # documentação técnica e screenshots
├── public/ # fotos, sons e animações Lottie
├── scripts/ # captura de dados, gravador, preview e verificação
├── src/
│ ├── app/ # página, layout e rotas JSON exportadas em dados/
│ ├── components/ # mapa, placar, gráficos, timelapse, tutorial e áudio
│ └── lib/ # transformação dos dados do TSE, replay e utilitários
└── tests/ # testes com node --test
| Caminho | Responsabilidade |
|---|---|
src/lib/static-data.ts | Lê o arquivo local e calcula resultado, comparações e timelines no build |
src/lib/tse.ts | Tipos e transformação das respostas brutas do TSE |
src/lib/replay.ts | Restaura contagens históricas sem antecipar resultados nem modificar o arquivo final |
src/lib/assets.ts | Aplica o prefixo de hospedagem aos assets locais |
src/app/page.tsx | Gera o HTML inicial com resultado e timeline nacional |
src/app/dados/timeline/[arquivo]/route.ts | Exporta a timeline de cada abrangência em JSON |
src/app/dados/municipios/[arquivo]/route.ts | Exporta os municípios de cada UF em JSON |
src/app/dados/replay.json/route.ts | Exporta os snapshots compactos e os índices de cada ciclo para o slider |
scripts/archive-*.mjs | Captura explícita de resultados, fotos, municípios e malhas |
scripts/verify-export.mjs | Validação do artefato exportado |
data/audio-*.json.Este é um projeto independente, sem vínculo com o TSE, partidos ou candidatos.
O código-fonte está sob a licença MIT.
Materiais de terceiros incluídos no repositório não são cobertos por essa licença e pertencem aos seus titulares: dados e fotos do TSE, malhas do IBGE, áudios em public/sons/ e docs/prototypes/assets/, animações em public/lottie/, a arte do TSE usada como ícone do site e a fonte Inter (SIL OFL 1.1).