A modern, modular health‑tracking application built with Python and Flet.
It’s designed to manage medications, reminders, schedules, appointments, and user health data.
The architecture follows a clean separation of concerns with repositories, validators, services, and a background scheduler.
- Add, edit, and view medications
- Dosage tracking
- Notes and status indicators
- Daily and weekly schedules
- Custom reminder offsets
- Automated reminder event generation
- Background scheduler thread
- UI notifications via Flet’s SnackBars
- Create and manage appointments
- Notes, location, date, and time
- Track when medication was taken
- Validation to ensure data integrity
- Basic user information
- Editable profile screen
- Toggle notifications
- App preferences
📸 Screenshots
🧱 Architecture Overview
The project is structured into clear, maintainable layers.
- Screens for medications, appointments, schedules, dashboard, settings, and more
- A custom subclass of
ft.Pagethat acts as a dependency container
- Handle all database interactions
- Ensure data integrity before saving
- Business logic for schedules, reminders, notifications, and intake logs
- Expands schedules into actual datetime events
- Background thread that checks for due reminders every minute
📂 Project Structure
health_app/
│
├── data/
├── models/
├── screens/
├── services/
├── validators/
├── ui_types/
├── main.py
└── README.md
git clone https://github.com/reory/Health-Tracker-App.git
python -m venv venv
# windows
venv\Scripts\activate
# mac/linux
source venv/bin/activatepip install -r requirements.txt
python main.py🗺 Roadmap
Planned enhancements and future improvements:
- Add medication refill reminders
- Add data export/import (JSON or CSV)
- Add Analytics Integration (In Development): Utilizing Matplotlib and Numpy for health trend visualization
- Add charts for intake history
- Add cloud sync or optional online backup
- Add multi‑user profiles - Using FAKER.
- Add theme customisation (colour palettes)
- Add optional biometric lock (Windows Hello / Touch ID)
🧪 Test File
A stripped‑down test file (test.py) is included for isolating UI behaviour.
pytestContributions are welcome as always.
Enjoy architecting clean, maintainable Python applications with clarity and purpose for everyone. Click here for contact details 😁