A Streamlit web application for tracking and visualizing circadian rhythm patterns through health metrics including heart rate, blood pressure, and energy levels.
- Data Entry: Record daily health metrics with validation
- Visualization: Interactive charts showing circadian patterns over time
- Data Management: View, filter, edit, and export your data
- CSV Storage: Simple file-based storage system
- Multi-user Support: Track data for multiple people
- Python 3.8 or higher
- pip package manager
-
Download the project files
- Download all files from this project to your local machine
- Maintain the same folder structure:
circadian-rhythm-tracker/ ├── .streamlit/ │ └── config.toml ├── pages/ │ ├── 1_Data_Entry.py │ ├── 2_Visualization.py │ └── 3_Data_Management.py ├── utils/ │ ├── data_handler.py │ └── validators.py ├── app.py ├── requirements.txt └── README.md
-
Install dependencies
cd circadian-rhythm-tracker pip install -r requirements.txt
-
Run the application
streamlit run app.py
-
Access the application
- Open your web browser
- Navigate to
http://localhost:8501
- The application will automatically open in your default browser
- Navigate to the "Data Entry" page
- Fill in your Person ID (use a consistent identifier)
- Enter the date and time of measurement
- Record your health metrics:
- Heart Rate (30-200 BPM)
- Blood Pressure (Systolic/Diastolic in mmHg)
- Energy Level (1-10 scale)
- Add optional notes
- Click "Save Entry"
- View time series charts of your health metrics
- Analyze circadian patterns by hour of day
- See correlation analysis between different metrics
- Export filtered data as CSV
- View all recorded data in a table
- Filter by person, date range, and metric values
- Search through your data
- Export data to CSV
- Import data from CSV files
- Delete specific person data or clear all data
The application stores data in CSV format with the following columns:
person_id
: Unique identifier for the persontimestamp
: Date and time of measurement (YYYY-MM-DD HH:MM:SS)heart_rate
: Heart rate in beats per minutesystolic_bp
: Systolic blood pressure in mmHgdiastolic_bp
: Diastolic blood pressure in mmHgenergy_level
: Energy level on a scale of 1-10notes
: Optional text notes
- Take measurements at consistent times each day
- Record data in similar conditions (e.g., before coffee, after waking)
- Include contextual notes that might affect your metrics
- Track regularly to identify patterns in your circadian rhythm
- Data is stored locally in
circadian_data.csv
- Backup your data file regularly
- The application creates the CSV file automatically on first use
- Port already in use: If port 8501 is busy, Streamlit will automatically use the next available port
- Permission errors: Ensure you have write permissions in the application directory
- Module not found: Make sure all dependencies are installed with
pip install -r requirements.txt
- Invalid entries: The application validates all input data and will show error messages for invalid entries
- Duplicate entries: The system prevents duplicate entries for the same person at the same timestamp
- CSV corruption: If the CSV file becomes corrupted, delete it and the application will create a new one
For issues or questions:
- Check the validation messages in the application
- Ensure your data follows the required format
- Verify all dependencies are properly installed
This project is open source and available for personal use.