Plataforma web para operação elétrica com dois módulos integrados:
- Spin Guard: monitora medições elétricas, detecta anomalias, calcula risco (0-100), gera alertas e simula cenários what-if.
- Spin Forecast: prevê geração solar (24h/7d/30d), compara com perfil esperado e mostra impacto operacional/financeiro.
Stack:
- Frontend: React + Vite + TypeScript
- Backend: NestJS + TypeScript
- Banco: PostgreSQL + Prisma
- Execução local: Docker Compose
- Upload de CSV de medições elétricas
- Detecção de anomalias (Robust Z-Score/MAD)
- Score de risco com classificação
- Explicação do alerta e hipótese de causa
- Timeline de alertas por severidade
- Simulador what-if (impacto no risco)
- Cadastro e gestão de usinas solares
- Histórico de geração + clima
- Treino e uso de modelo de previsão
- Gráficos de histórico, perfil esperado e previsão
- KPIs técnicos e financeiros
- Integração com risco operacional do Spin Guard
- Criar arquivo de ambiente:
cp .env.example .env- Subir os serviços:
docker compose up -d --build- Aplicar schema e carregar dados iniciais:
docker compose exec -T api npm run prisma:push
docker compose exec -T api npm run prisma:seed- Acessar:
- Frontend:
http://localhost:5173 - API health:
http://localhost:3000/api/health
- Abra o frontend.
- Faça upload de um CSV de medições (exemplo em
docs/samples). - O sistema processa a análise e exibe:
- risco atual,
- alertas,
- gráficos elétricos,
- gráfico de risco no tempo.
- Use o simulador what-if para testar cenários.
Exemplo de upload via API:
curl -X POST http://localhost:3000/api/ingestion/csv \
-F "equipmentName=Transformador Demo" \
-F "file=@docs/samples/measurements_stage4.csv"- Clique em Abrir Spin Forecast no app.
- Selecione uma usina.
- Rode treino/previsão (se necessário).
- Analise:
- geração prevista,
- perfil esperado,
- tendência e confiança,
- receita esperada vs prevista,
- perda estimada.
Arquivos úteis em docs/samples:
measurements_stage4.csvmeasurements_hackathon_test.csvmeasurements_2weeks.csvmeasurements_1month_critical.csvsolar_generation_sample.csvsolar_weather_sample.csv
Ver status dos serviços:
docker compose psVer logs da API:
docker compose logs api --tail=200Se precisar reaplicar schema:
docker compose exec -T api npm run prisma:push