A simple and personal web app to track:
- Blood glucose readings
- HbA1c lab results
- Diabetic supplies (e.g., insulin, test strips)
Built using Python, Streamlit, Pandas, and Matplotlib.
Click here to view the live app!
- Features
- Tech Stack
- Folder Structure
- First Setup
- About
- Resetting Data
- What's New
- Future Plans and Ideas
- Roadmap
- Development Progress
- Need Help or Have Ideas
- Contributing
- Acknowledgements
- Add new glucose readings manually
- Add HbA1c lab results
- Import glucose readings from CSV files
- View graphs for glucose trends and HbA1c
- Manage diabetic supplies inventory
- Download and upload data easily
- An example
import_me.csvfile is included in theexamples/folder. - You can use it to practice importing glucose readings into the app.
- Streamlit
- Pandas
- Matplotlib
- GitHub
glucose_tracker/
โโโ .github/ # GitHub configurations (contact form, issue templates)
โโโ .streamlit/ # Streamlit settings (favicon, title)
โโโ pycache/ # Python cache (auto-generated)
โโโ data/ # Active working data (user input)
โ โโโ glucose_readings.csv
โ โโโ hba1c_readings.csv
โ โโโ supplies.csv
โโโ example/ # Example file for importing
โ โโโ import_me.csv
โโโ templates/ # Blank template CSVs
โ โโโ glucose_readings_template.csv
โ โโโ hba1c_readings_template.csv
โ โโโ supplies_template.csv
โโโ main.py # CLI tool (optional legacy use)
โโโ requirements.txt # Python package dependencies
โโโ reset_data.py # Script to reset data from templates
โโโ streamlit_app.py # Main Streamlit frontend app
โโโ utils.py # Core backend logic
โโโ .gitignore # Files to exclude from Git tracking
โโโ CHANGELOG.md # Version-by-version changelog
โโโ CODE_OF_CONDUCT.md # Community standards
โโโ CONTRIBUTING.md # How to contribute
โโโ LICENSE # Project license
โโโ README.md # Project overview
โโโ RELEASE_NOTES.md # Detailed release version notes
โโโ SECURITY.md # Security guidelines and vulnerability reporting
When first cloning or using the app:
- The real working data is located in the
data/folder. - If you prefer to start fresh, copy the blank templates from the
templates/folder into thedata/folder. - Templates include:
- glucose_readings_template.csv
- hba1c_readings_template.csv
- supplies_template.csv
โ This ensures the app has the correct structure even if no readings have been entered yet.
This project was built to help manage diabetes more easily โ track important readings, monitor trends, and keep your supplies organized, all from one simple app.
To reset your app's data back to a clean state (blank templates):
- Open your terminal inside the project folder.
- Run:
python reset_data.py
*Built with love using Python and Streamlit.*
๐ What's New
Version 1.2 (Current)
- TBC
Version 1.1 (Current)
- ๐ฏ Moved working data to `/data/` folder
- ๐ Added `/templates/` folder with blank CSV templates
- ๐ Added `/examples/` folder with sample import files
- ๐ Added `reset_data.py` script to reset working data easily
- ๐ Improved README structure and project documentation
- ๐ผ๏ธ Added custom Streamlit app favicon and page title
- ๐ฅ Setup First Time Instructions for new users
---
Version 1.0 (Current)
- โ
Initial launch of Diabetes Tracker web app
- โ
Record blood glucose readings
- โ
Record HbA1c results
- โ
Track diabetic supplies
- โ
Import glucose readings via CSV
- โ
View graphs for glucose trends and HbA1c trends
- โ
Full deployment to Streamlit Cloud
[View full Release Notes โก๏ธ](RELEASE_NOTES.md)
## ๐ฎ Future Plans and Ideas
We have lots of exciting features planned to make the Diabetes Tracker even more helpful!
- ๐ฅ Import HbA1c results via CSV (not just manual entry)
- ๐ค Export blood glucose and HbA1c graphs as images
- ๐ Optional user login for better privacy
- ๐
Reminders and notifications for logging glucose and supplies
- ๐ Daily, weekly, and monthly reports generation
- ๐ผ๏ธ Customizable dashboard themes (light/dark mode)
- ๐ฑ Mobile-friendly layout improvements
- ๐ Add trendlines or prediction models for glucose data
- ๐ Dark Mode toggle for nighttime use
- โ๏ธ Google Sheets or OneDrive backup integration
- ๐ฌ Email reminders for overdue readings
- โก Set personal glucose targets and alerts
- ๐ Add basic analytics (average glucose, variability trends)
*Have more ideas? Feel free to [open an Issue](https://github.com/mattyhakin/glucose_tracker/issues/new/choose) and suggest!*
## ๐ฃ๏ธ Roadmap
- [x] Version 1.0 - Initial Release
- [x] Version 1.1 - Features Expansion
- [ ] [Version 1.2 - In Development ๐ง](https://github.com/mattyhakin/glucose_tracker/milestone/1)
Visit the [Milestones page](https://github.com/mattyhakin/glucose_tracker/milestones) to see progress on upcoming features!
๐ค Contributing
We welcome contributions of all kinds โ bug fixes, feature suggestions, ideas!
Feel free to open an Issue or a Pull Request anytime.
If you have suggestions for improvements, ideas for new features, or find any bugs, please feel free to:
- Fork the repository
- Create a new branch (`git checkout -b feature-YourFeatureName`)
- Make your changes
- Commit your changes (`git commit -m 'Add some feature'`)
- Push to the branch (`git push origin feature-YourFeatureName`)
- Open a Pull Request
Thanks for helping make this app better! ๐ฏ
## ๐ Future Ideas
- Add Dark Mode toggle for better nighttime use
- Integrate Google Sheets or OneDrive backup option
- Add email reminders for recording new readings
- Enable tracking of insulin dosages and timings
- Weekly and monthly report generation (PDF download)
- Mobile-friendly view improvements
- Set personal glucose targets and alerts
- Add basic analytics (average glucose over time, variability trends)
---
*Have more ideas? Feel free to suggest by opening an Issue!*
## ๐ Development Progress
We track all new features, improvements, and bug fixes on our Project Board:
โก๏ธ [View the Glucose Tracker Development Board](https://github.com/mattyhakin/glucose_tracker/projects/1)
You can see:
- What features are planned
- What's currently in progress
- What's already completed
Stay updated and feel free to contribute!
---
## ๐จ Need Help or Have Ideas?
- Report a [Bug](https://github.com/mattyhakin/glucose_tracker/issues/new?template=bug_report.md)
- Suggest a [Feature](https://github.com/mattyhakin/glucose_tracker/issues/new?template=feature_request.md)
- Ask a [Question](https://github.com/mattyhakin/glucose_tracker/issues/new?template=contact_us.md)
## ๐ Acknowledgements
This project was made possible thanks to:
- [Streamlit](https://streamlit.io/) - for making web app development simple and powerful
- [Pandas](https://pandas.pydata.org/) - for data handling and manipulation
- [Matplotlib](https://matplotlib.org/) - for beautiful graphs and plots
- [GitHub](https://github.com/) - for hosting, version control, and collaboration tools
- [Contributor Covenant](https://www.contributor-covenant.org/) - for the Code of Conduct template
- [Shields.io](https://shields.io/) - for badges
Special thanks to the open-source community for inspiration and guidance.
---