Dashboard analítico para gestão de operações de energia solar por assinatura (geração distribuída), construído com Streamlit.
O SolarIntelligence centraliza dados financeiros, comerciais e operacionais de usinas e unidades consumidoras em um painel único e interativo, com autenticação por usuário, controle de permissões por área e importação automatizada de planilhas.
A plataforma transforma planilhas operacionais (pagamentos, usinas, consumidores, balanços) em indicadores acionáveis: faturamento, margem, economia gerada ao cliente, eficiência das usinas e inadimplência. Tudo é persistido em um banco SQLite local, criado automaticamente na primeira execução.
| Camada | Tecnologia |
|---|---|
| Interface / App | Streamlit |
| Análise de dados | Pandas · NumPy |
| Visualização | Plotly |
| Persistência | SQLite |
| Leitura de planilhas | openpyxl |
| Relatórios PDF | fpdf2 |
- Autenticação e permissões — login com senha (hash SHA-256) e controle de acesso por área.
- Visão Geral — KPIs de volume (kWh), faturamento, ticket médio e carteira de clientes.
- Visão Financeira — DRE gerencial, fluxo de caixa, despesas e análise de inadimplência.
- Visão Usina — eficiência, rentabilidade e percentual de uso por usina.
- Visão Comercial — análise de receita, conversão e desconto médio.
- Visão Cliente — detalhamento financeiro, economia gerada e histórico de faturas.
- Cadastros — gestão de usinas e clientes.
- Importação de dados — upload de planilhas pela interface ou via script, com mapeamento flexível de colunas.
- Exportação de relatórios em PDF.
SolarIntelligence/
├── src/
│ ├── app.py # Aplicação principal (Streamlit)
│ ├── config.py # Configuração central (identidade, cores, caminhos)
│ ├── importar_dados.py # Pipeline de importação e schema do banco
│ ├── gerar_dados_exemplo.py # Gera planilhas de exemplo anonimizadas
│ └── .streamlit/config.toml # Tema visual
├── dados_brutos/ # Planilhas de entrada (inclui exemplos anonimizados)
├── banco_dados/ # Banco SQLite (criado automaticamente)
├── executar_importacao.bat # Atalho de importação (Windows)
├── executar_importacao.ps1 # Atalho de importação (PowerShell)
├── requirements.txt
└── README.md
- Python 3.8 ou superior
pip
git clone <url-do-repositorio>
cd SolarIntelligencepython -m venv venv
# Windows
venv\Scripts\activate
# macOS / Linux
source venv/bin/activatepip install -r requirements.txtO repositório já inclui planilhas de exemplo anonimizadas em dados_brutos/. Para regenerá-las e/ou carregá-las no banco:
# (opcional) regenerar as planilhas de exemplo
python src/gerar_dados_exemplo.py
# importar os dados para o banco SQLite
python src/importar_dados.pystreamlit run src/app.pyO app abrirá em http://localhost:8501.
Na primeira execução, um usuário administrador é criado automaticamente:
| Campo | Valor padrão |
|---|---|
| Usuário | admin |
| Senha | admin123 |
⚠️ As credenciais padrão servem apenas para demonstração. Para alterá-las (recomendado), copie.env.examplepara.enve definaSOLAR_ADMIN_USERNAME,SOLAR_ADMIN_PASSWORD,SOLAR_ADMIN_NOMEeSOLAR_ADMIN_EMAIL. O arquivo.envé ignorado pelo git e nenhum segredo fica versionado no código.
O importador identifica o tipo de cada planilha pelo nome do arquivo (ex.: pagamentos, usinas, consumidores, ucs, balanco) e faz o mapeamento flexível das colunas. Para carregar seus próprios dados:
- Coloque os arquivos
.xlsxemdados_brutos/. - Importe pela interface (menu lateral → Upload de Arquivos) ou rode:
- Windows:
executar_importacao.bat - PowerShell:
executar_importacao.ps1 - Multiplataforma:
python src/importar_dados.py
- Windows:
Os dados reais ficam fora do versionamento (
.gitignore); apenas as planilhasexemplo_*.xlsx(fictícias) são mantidas no repositório.
Toda a identidade visual e textual está centralizada em src/config.py:
- nome do app, títulos de página, login e relatórios;
- paleta de cores;
- caminhos do banco e dos dados;
- credenciais padrão do administrador.
Formatação numérica segue o padrão brasileiro (ponto para milhar, vírgula para decimal).
- O banco de dados é criado automaticamente na primeira execução (schema vazio).
- O projeto acompanha apenas dados fictícios/anonimizados para demonstração.