Tokens
Track, visualize, and compete on AI coding assistant token usage across Claude Code, Cursor, OpenCode, Codex, Gemini, Kimi, and Qwen. The Kardashev Scale for AI Devs.
Plataforma aberta de visualização de dados públicos do Brasil: economia, saúde, meio ambiente, clima e demografia, atualizados automaticamente a partir de fontes oficiais.
Translation pending
DataPython · AstroGitHub @AknoLeonelOnlineOwner 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
The maker's introduction consists of the line above. Read the repository README for more details. Repository README ↗
Loading the full README.
Read the full README ↗Plataforma aberta que coleta dados de fontes oficiais, valida, analisa e publica visualizações interativas, atualizadas automaticamente todos os dias.
Site: https://dataan.vercel.app · API: /data/catalog.json · Status: /status/
Projeto criado e mantido por Akno Leonel, cientista de dados · LinkedIn · GitHub · Portfólio · Quem fez
| Se você tem… | Veja | O que mostra |
|---|---|---|
| 1 minuto | Estudo: o clima ajuda a prever a dengue? | Pergunta, hipótese, critério definido antes, 5 modelos com validação de origem móvel e a resposta recalculada toda semana, mesmo quando é "não" |
| 5 minutos | Notebook do estudo no Colab | O mesmo código da página, com análise exploratória e teste de robustez |
| 10 minutos | pipelines/ e status ao vivo | Pipeline em produção: retentativa, servidor alternativo, contrato de dados, fallback e testes |
Competências demonstradas: séries temporais e avaliação de modelos (backtest, skill vs. ingênuo, intervalos empíricos) · engenharia de dados (ETL diário de APIs públicas instáveis, validação por contrato, observabilidade) · visualização e comunicação (gráficos SVG próprios, textos gerados a partir dos dados, acessibilidade) · produto (site estático na Vercel, API aberta, SEO, CSP restrita, CI).
| Área | Conjunto | Fonte | O que tem de análise |
|---|---|---|---|
| Economia | Taxa Selic e juro real | Banco Central (SGS) | Juro real ex-post, posição histórica, último movimento do Copom |
| Economia | Inflação (IPCA) | Banco Central (SGS) | Comparação com centro/teto da meta do CMN ano a ano |
| Economia | Dólar comercial | Banco Central (SGS) | Variações 30 d / 12 m, histórico com amostragem LTTB |
| Economia | Taxa de desemprego | IBGE via SGS | Variação interanual, mínimas e máximas da série |
| Saúde | Dengue nas capitais | InfoDengue (Fiocruz/FGV) | Nowcasting de atraso, previsão de 4 semanas com backtest vs. ingênuo |
| Saúde | Estudo: o clima ajuda a prever a dengue? | InfoDengue (casos + clima) | Experimento com 5 modelos (ingênuo, sazonal, Holt, ridge com defasagens, ridge + clima) e critério pré-definido |
| Meio ambiente | Qualidade do ar | Open-Meteo (Copernicus CAMS) | PM2.5 vs. diretriz da OMS, ranking e dias acima do limite |
| Clima | Aquecimento nas capitais | NASA POWER (MERRA-2) | Anomalia vs. normal 1991–2020, aquecimento por capital |
| Demografia | População dos estados | IBGE (SIDRA) | Ranking, concentração e crescimento entre estimativas |
flowchart LR
subgraph Fontes oficiais
BCB[Banco Central]; IBGE; IDG[InfoDengue]; OM[Open-Meteo]; NASA[NASA POWER]
end
GH["GitHub Actions<br/>deploy hook diário"] --> B
G["push na main / PR"] --> B
subgraph B ["Build na Vercel (serviço web)"]
P["Pipeline Python<br/>coleta → qualidade → análise"] --> C{"Contrato<br/>Pydantic"}
C -->|válido| J[(JSON + CSV)]
C -->|falhou| F["mantém a última<br/>versão em produção"]
J --> A["Astro<br/>site estático"]
end
Fontes --> P
A --> CDN[Vercel CDN]
CDN --> U[Navegador]
CDN --> API[API estática JSON/CSV]
Decisões e alternativas estão em docs/arquitetura.md. O design (telas, motion e regras visuais) está em docs/design/.
Destaques técnicos
pipelines/dataan/models.py ↔ web/src/lib/types.ts): todo gráfico, KPI e texto passa por validação antes de ir ao ar.sitemap.xml, canonical, Open Graph e JSON-LD Dataset, elegível ao Google Dataset Search.unsafe-inline), HSTS e bloqueio de iframe via vercel.json, Actions sem permissões. Detalhes em SECURITY.md.| Notebook | Para quê |
|---|---|
estudo-dengue-clima.ipynb · Colab | Reproduz o estudo de caso com dados ao vivo (instala o pacote dataan do GitHub) |
api-dataan.ipynb · Colab | Tutorial da API: catálogo, JSON, CSV e uma análise rápida, sem instalar nada |
Requisitos: Python 3.11+ e Node 22.12+.
make install # cria .venv, instala o pipeline e o site
make data # coleta os dados reais -> web/public/data
make dev # http://localhost:4321
Sem make:
python3 -m venv .venv && .venv/bin/pip install -e "pipelines[dev]"
.venv/bin/python -m dataan run # todos os datasets
.venv/bin/python -m dataan run --only selic # só um
cd web && npm install && npm run dev
Uma função decorada é tudo o que é preciso. O runner descobre, executa, valida, publica e o site cria a página, o card, o sitemap e os metadados de SEO.
# pipelines/dataan/datasets/economia.py
@dataset(
slug="igpm",
title="IGP-M",
summary="O índice que reajusta aluguéis, mês a mês.",
description="...",
category="economia", # ou crie uma em registry.CATEGORIES
sources=[_src(189, "IGP-M mensal")],
frequency="Mensal",
columns=[Column(name="mes", description="..."), Column(name="igpm", description="...")],
)
def igpm() -> Build:
s = _monthly(bcb.sgs(189, date(2010, 1, 1)))
check_series(s, "IGP-M", min_points=60, lo=-10, hi=10, max_age_days=75)
table = s.rename("igpm").rename_axis("mes").reset_index()
table["mes"] = table["mes"].dt.strftime("%Y-%m-%d")
return Build(
charts=[LineChart(id="historico", title="IGP-M mensal", format=pct(2),
series=[Series(key="igpm", name="IGP-M", points=to_points(s))])],
kpis=[Kpi(label="IGP-M do mês", value=float(s.iloc[-1]), format=pct(2))],
table=table,
)
Fonte nova? Crie um conector em pipelines/dataan/sources/ usando http.get_json (já tem retentativa, timeout e limite de tamanho). Tipos de gráfico disponíveis: line (com faixa, referência, marcador e degrau), bar (ranking), column (divergente) e grid (pequenos múltiplos).
pipelines/dataan/
sources/ conectores das APIs públicas
datasets/ um módulo por área; cada função @dataset é um conjunto
analysis/ amostragem (LTTB), previsão + backtest, checagens de qualidade
models.py contrato de dados publicado
runner.py execução isolada, fallback, catálogo e status
web/src/
lib/charts/ renderizadores SVG (linha, barra, coluna, sparkline)
components/ KPI, gráfico, tabela acessível, cards
pages/ início, dataset, categorias, status, API, sobre
scripts/ interatividade (tooltip/teclado), busca, tema
.github/workflows/
refresh.yml dispara o deploy diário na Vercel (deploy hook)
ci.yml lint, tipos e build em pull requests
scripts/vercel-build.sh build na Vercel: pipeline + Astro
vercel.json serviço, rotas e cabeçalhos de segurança
scripts/vercel-build.sh) roda o pipeline e gera o site; cada PR ganha um preview.main e manualmente em Actions → Atualização diária → Run workflow.SITE_URL nas variáveis de ambiente do projeto.Código sob MIT. Os dados pertencem às fontes citadas em cada página e seguem suas licenças.