Projeto com duas partes:
- API em FastAPI para gerar relatórios do Data Nordeste.
- Frontend em React + Vite para escolher macrotema e cidade e disparar o relatório.
main.py— API FastAPIcitys.txt— lista de cidades usadas no frontenddemografia.csv— base de dados do relatóriooutput/— arquivos HTML/PDF e gráficos geradosfrontend/— interface web
- Python 3.10+
- Node.js 18+
Dentro da pasta report-generator-demo:
python -m venv .venv
source .venv/bin/activate
pip install -r requirements.txtuvicorn main:app --reload --host 0.0.0.0 --port 8000Se quiser usar um Google Docs específico como texto-base do relatório:
export DATANE_DOCS_URL="https://docs.google.com/document/d/SEU_DOC_ID/edit"Se essa variável não for definida, a API usa o documento padrão já configurado no main.py.
Dentro da pasta report-generator-demo/frontend:
yarn installyarn devO frontend abre normalmente em http://localhost:5173.
Se quiser, também funciona:
yarn start- Rode a API.
- Rode o frontend.
- Abra o frontend no navegador.
- Clique em Gerar relatório.
- Escolha o macrotema e a cidade.
- Clique em Gerar relatório novamente para abrir o relatório.
Por enquanto, o macrotema é apenas visual no formulário; a API recebe apenas a cidade.
Quando você acessa /relatorio/{cidade}:
- lê o CSV
demografia.csv; - procura a cidade informada, com ou sem UF;
- busca o texto-base no Google Docs;
- renderiza o HTML do relatório;
- gera gráfico de população por sexo;
- salva os arquivos em
output/; - devolve o HTML no navegador.
http://127.0.0.1:8000/docshttp://127.0.0.1:8000/relatorio/Caruaru%20(PE)
frontend/src/App.jsx— tela principalfrontend/src/styles.css— estilos da interfacefrontend/package.json— scripts do frontend