Esta aplicação exibe as estatísticas e métricas de cotações de diversos CEASAs pelo Brasil. Ela foi construída com Streamlit e roda dentro de um container Docker para facilitar sua execução e escalabilidade.
Os filtros são enviados ao PostgreSQL somente ao clicar em Aplicar filtros. Os gráficos usam consultas agregadas e a tabela de dados brutos é paginada no banco para reduzir o volume transferido ao Streamlit.
O código-fonte segue a seguinte organização:
app.py: Arquivo de entrada da aplicação (streamlit run app.py).dashboard/: Contém os componentes lógicos.data.py: Módulo responsável por consultar o PostgreSQL do Supabase.filters.py: Configura a barra lateral (sidebar) e aplica a lógica de filtragem nos dados.components.py: Contém as funções responsáveis por renderizar gráficos (Plotly) e KPIs na tela.config.py: Variáveis de CSS customizado, paletas e nomes padronizados de colunas.main.py: Orquestrador que agrupa a obtenção dos dados, aplicação dos filtros e renderização dos gráficos.
Para facilitar a execução na sua máquina sem conflito de dependências Python, recomendamos fortemente o uso do Docker através do docker-compose.
- Docker e Docker Compose instalados em sua máquina.
- Arquivo
.envcom a variávelCOTACOES_SUPABASE_DATABASE_URL.
Abra o seu terminal/prompt de comando na pasta do projeto (ceasa-statistics) e execute o seguinte comando:
docker-compose up --buildDica: Para rodar em segundo plano, adicione -d ao final: docker-compose up --build -d
Aguarde o Docker baixar a imagem do Python, instalar as dependências (pandas, streamlit, plotly, sqlalchemy) contidas no requirements.txt e iniciar a aplicação.
Quando o terminal exibir a mensagem de que o Streamlit foi iniciado, abra o seu navegador e acesse:
Se você rodou sem a flag -d, basta pressionar CTRL+C no terminal.
Se você usou a flag -d, digite o comando:
docker-compose downSe preferir rodar usando uma instalação Python local (ex: via Conda, venv), basta executar os comandos abaixo na pasta do projeto:
# 1. Instalar dependências
pip install -r requirements.txt
# 2. Configure COTACOES_SUPABASE_DATABASE_URL no arquivo .env
# 3. Iniciar o app
streamlit run app.py