As it turns out it's going to be my bachelor's thesis ;)
This repo contains code and thesis text for my bachelor's thesis(as the name indicates ;D). It's a system for a fully automatic retrieval, processing and vizualization of selected parameters of space weather. As mentioned the flow is fully automated using GH Actions and code written in both Python and Go, which also happened to be contenerized for convenience ;D
You can run the entire data collection and database saving pipeline locally using Docker Compose.
- Docker and Docker Compose installed
- Environment variables configured (see below)
-
Create a
.envfile in the project root with the following variables:DROPBOX_APP_KEY=your_dropbox_app_key DROPBOX_APP_SECRET=your_dropbox_app_secret DROPBOX_REFRESH_TOKEN=your_dropbox_refresh_token DB_HOST=your_database_host DB_USER=your_database_user DB_PASSWORD=your_database_password DB_NAME=your_database_name DB_PORT=your_database_port DATE=2026-01-22
-
Important: Add
.envto your.gitignoreto keep secrets safe.
To run the complete pipeline (data collection followed by database saving):
You can use the provided run.sh script which includes retry logic and automatically starts the dashboard upon success:
chmod +x run.sh
./run.shAlternatively, to run manually with Docker Compose:
# Run with today's date
DATE=$(date +'%Y-%m-%d') docker-compose upOr simply:
docker-compose upThe system will:
- Build and run the
collect-dataservice (retrieves space weather data and uploads to Dropbox) - Once complete, automatically run the
save-databaseservice (processes data and saves to database)
To stop and remove containers:
docker-compose down- extending vizualization
- migrating vizualization module to another(faster) framework
- adding simple ML module
- increasing data retrieval frequency
- 📂
.github/workflows/- workflows working with GitHub Actions- 📂
dashboard/- all resources related to space weather visualization- 📂
db/- all resources related to data saving to a database- 📂
docs/- static site resources for thesis hosting- 📂
documents/- all markdown documents, sketches, etc.- 📂
retrieval/- all resources related to data retrieval- 📄
requirements.txt- root directory python requirements for Streamlit- 📄
detailed_guide.md- project setup guide- 📄
mkdocs.yaml- page structure for online thesis

