Skip to content

Repository files navigation

⚡ SolarIntelligence

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.


🧭 Visão Geral

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.

🛠️ Tecnologias

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

✨ Funcionalidades Principais

  • 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.

📂 Estrutura do Projeto

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

🚀 Instalação Passo a Passo

Pré-requisitos

  • Python 3.8 ou superior
  • pip

1. Clone o repositório

git clone <url-do-repositorio>
cd SolarIntelligence

2. (Recomendado) Crie um ambiente virtual

python -m venv venv
# Windows
venv\Scripts\activate
# macOS / Linux
source venv/bin/activate

3. Instale as dependências

pip install -r requirements.txt

4. (Opcional) Gere dados de exemplo e importe

O 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.py

5. Execute o dashboard

streamlit run src/app.py

O app abrirá em http://localhost:8501.

🔐 Acesso Padrão

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.example para .env e defina SOLAR_ADMIN_USERNAME, SOLAR_ADMIN_PASSWORD, SOLAR_ADMIN_NOME e SOLAR_ADMIN_EMAIL. O arquivo .env é ignorado pelo git e nenhum segredo fica versionado no código.

📥 Importação de Dados

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:

  1. Coloque os arquivos .xlsx em dados_brutos/.
  2. Importe pela interface (menu lateral → Upload de Arquivos) ou rode:
    • Windows: executar_importacao.bat
    • PowerShell: executar_importacao.ps1
    • Multiplataforma: python src/importar_dados.py

Os dados reais ficam fora do versionamento (.gitignore); apenas as planilhas exemplo_*.xlsx (fictícias) são mantidas no repositório.

⚙️ Configuração

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).

📝 Notas

  • O banco de dados é criado automaticamente na primeira execução (schema vazio).
  • O projeto acompanha apenas dados fictícios/anonimizados para demonstração.

Releases

Packages

Contributors

Languages