Tokens
Claude, Cursor 등 AI 코딩 도우미 토큰 사용량을 추적·시각화·경쟁
브라질 공공 데이터(경제·보건·환경·기후·인구)를 자동 업데이트해 시각화하는 오픈 플랫폼
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.
데이터Python · AstroGitHub @AknoLeonel온라인운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기메이커가 쓴 소개는 위의 한 줄이 전부입니다. 더 자세한 내용은 저장소 README에서 읽을 수 있습니다. 저장소 README ↗
README 전체를 불러오는 중입니다.
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.