RenewableInsight is a Streamlit-powered application for analyzing renewable energy trends. This is a demo app to visualize real-time and historical renewable energy data, utilizing current weather and energy pricing information.
- Programming Languages: Python
- Frontend: Streamlit
- Cloud Services: AWS S3, Google BigQuery
- Data Pipeline: Apache Kafka, Docker, Prefect
- Infrastructure as Code: Terraform
-
Create an S3 bucket and a BigQuery dataset to store the required data. You can easily set up these cloud resources using the provided Terraform file:
Navigate to the main directory and initialize the environment:
terraform init
Apply the Terraform configuration to create the resources:
terraform apply
This will create:
- An AWS S3 bucket as data lake.
- A Google BigQuery as data warehouse.
-
Create an account on the ENTSOE website and generate an
ENTSOE_API_KEY. -
Ensure that the
service-account-file.jsonfor BigQuery exists in the main directory of the project. -
Edit the
env.envfile with the information you have from previous steps. -
Build the data pipeline using Docker Compose:
docker compose --profile kafka up -d docker compose --profile producer up -d docker compose up server -d docker compose up agent -d docker compose up orchestrator -d
Check if all servies are running:
-
Once the pipeline is running, confirm it with the Prefect web interface available at
http://localhost:4200. -
You can also check the Kafka broker with the web interface available at
http://localhost:9021. -
Run the Streamlit app locally:
streamlit run ui/ui_generator.py
-
Open your web browser at
http://localhost:8501to access the app. -
You can also access the already deployed version of ui: https://renewableinsight-bw.streamlit.app/
- ENTSOE (electricity data)
- Yahoo Finance (energy pricing data)
- Deutscher Wetterdienst (DWD) (weather data)