Arquivos criados:
backend/main.py- FastAPI app que lêbasededados_biblio_2025.csve fornece endpoints JSONbackend/requirements.txt- dependências Pythonfrontend/server.js- servidor Express simples para servir os arquivos estáticosfrontend/package.json- manifest do frontendfrontend/static/index.html- página do dashboard (Plotly)frontend/static/style.css- estilos (tons de verde e branco)frontend/static/app.js- JS que consome as APIs e renderiza gráficos
Como rodar (local):
-
Backend (Python / FastAPI)
-
Crie/ative um ambiente Python e instale dependências:
pip install -r backend/requirements.txt
-
Execute o backend:
uvicorn backend.main:app --reload --port 8000
O backend ficará disponível em http://localhost:8000
-
-
Frontend (Node.js)
-
Instale dependências do frontend (uma vez):
cd frontend npm install
-
Inicie o frontend:
npm start
O frontend será servido em http://localhost:3000
-
-
Iniciar o frontend usando Python (opcional)
Se você preferir não usar Node ou quiser um comando Python único, use o script fornecido que tenta rodar `npm start` (se o Node estiver disponível) e, caso contrário, serve a pasta estática com o servidor Python:
```powershell
# executando o script (rodar a partir da raiz do repositório)
python frontend\run_frontend.py
# forçar uso do servidor estático Python mesmo se Node estiver instalado
python frontend\run_frontend.py --no-node
# forçar npm start (vai falhar se Node/npm não estiver instalado)
python frontend\run_frontend.py --use-node
```
O script serve `frontend/static` na porta 3000 por padrão (use `--port` para mudar).
Notas rápidas
- O favicon informado foi referenciado como
/favicon.ico(mantido na raíz do repositório). - O CSV
basededados_biblio_2025.csvé lido diretamente pelo backend — certifique-se de executar ouvicornno diretório onde o CSV existe (raiz do repotcc_rafael). - Endpoints disponíveis:
- GET /api/time_series
- GET /api/heatmap
- GET /api/metrics
Próximos passos sugeridos
- Melhorar layout e responsividade do frontend.
- Adicionar filtros (período, biblioteca, gênero).
- Implementar cache no backend para datasets grandes. Initial commit: main