A Streamlit-based web application for analyzing podcast download statistics. This application processes podcast download data from Excel files, stores it in a SQLite database, and provides interactive visualizations and analysis tools.
- Data Import: Import podcast download statistics from Excel files
- Interactive Dashboard: View download trends, top podcasts, and bandwidth usage
- Admin Interface: Manage data imports and database operations
- Data Export: Export filtered data to CSV format
- Cloud Deployment: Ready for deployment to Google Cloud Run
- Backup System: Automated backup to Google Cloud Storage
- Data Ingestion and Database Schema - Details about data import process and database structure
- Deployment Guide - Instructions for deploying to Google Cloud Run
- Backup and Restore - Guide for database backup and restore operations
-
Clone the repository:
git clone https://github.com/yourusername/orionxlog.git cd orionxlog -
Create and activate a virtual environment:
python -m venv venv source venv/bin/activate # On Windows: venv\Scripts\activate
-
Install dependencies:
pip install -r requirements.txt
-
Set up configuration:
- Copy
config/config.yaml.sampletoconfig/config.yaml - Copy
.env.sampleto.env - Update the configuration files with your settings
- Copy
-
Initialize the database:
python scripts/init_db.py
-
Start the development server:
streamlit run app.py
-
Access the application at
http://localhost:8501
-
Build and start the containers:
docker-compose up --build
-
Access the application at
http://localhost:8501
orionxlog/
├── app.py # Main Streamlit application
├── config/ # Configuration files
│ ├── config.yaml # Main configuration (not tracked)
│ └── config.yaml.sample # Sample configuration
├── data/ # Data directory
│ └── podcasts.db # SQLite database
├── docs/ # Documentation
│ ├── DATA_INGESTION.md
│ ├── DEPLOY_TO_CLOUD_RUN.md
│ └── BACKUP_AND_RESTORE.md
├── scripts/ # Utility scripts
│ ├── import_data.py # Data import script
│ └── init_db.py # Database initialization
├── src/ # Source code
│ ├── database.py # Database operations
│ ├── importers.py # Data importers
│ └── utils.py # Utility functions
├── .env # Environment variables (not tracked)
├── .env.sample # Sample environment variables
├── .gitignore # Git ignore file
├── docker-compose.yml # Docker Compose configuration
├── Dockerfile # Docker configuration
└── requirements.txt # Python dependencies
The application uses two types of configuration files:
-
Environment Variables (
.env):- Database connection details
- Cloud storage credentials
- Application secrets
-
YAML Configuration (
config/config.yaml):- Application settings
- Feature flags
- UI customization
See the sample files (.env.sample and config/config.yaml.sample) for configuration options.
- Fork the repository
- Create a feature branch
- Commit your changes
- Push to the branch
- Create a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.