How vger70/medreminder works
MedReminder is a Windows medicine-stock and prescription-timing reminder. The main workflow is recording medicines, schedules and stock; calculating consumption and estimated run-out; then presenting alerts so the user can request a prescription in time. Separate capabilities cover dose-time reminders, reference-catalogue lookup, reports, profiles, backup/restore and device sync. The graph reflects the documented layered design and sampled code; several UI-to-service connections and unsampled feature internals are represented only where the README or named modules support them.
Main entry points: MainForm.cs WinForms UI · MedReminderDbContext.cs Profile database · Hosting Background services · MedicationMonitor.cs Medication monitor
Components 26
Desktop experience
- WinForms UI
src/MedReminder.UI/Forms/MainForm.cs - Background services
src/MedReminder.UI/Hosting - Notifications
src/MedReminder.Infrastructure/Notifications/BalloonTipNotificationService.cs - Email delivery
src/MedReminder.Infrastructure/Email/MailKitEmailNotificationService.cs - Localization
src/MedReminder.Infrastructure.Portable/Localization/LocalizationService.cs
Therapy tracking
- Medicine use cases
src/MedReminder.Application/UseCases - Medication monitor
src/MedReminder.Application/Monitoring/MedicationMonitor.cs - Dose reminders
src/MedReminder.Application/Monitoring/DoseReminderService.cs - Stock forecasts
src/MedReminder.Domain/Calculations/MedicineForecast.cs - Therapy ledger
src/MedReminder.Application/Ledger/LedgerSynchronizer.cs
Catalogue and reports
- Catalogue UI
src/MedReminder.UI/Forms/MedicinePickerDialog.cs - Catalogue search
src/MedReminder.Application/Catalogue/SearchCatalogueUseCase.cs - Reference catalogue
src/MedReminder.Infrastructure/Catalogue/SqliteReferenceCatalogueQueryService.cs - Catalogue refresh
src/MedReminder.Infrastructure/Catalogue/CsvReferenceCatalogueImporter.cs - Therapy reports
src/MedReminder.Application/Reporting/TherapyReport.cs - Therapy timeline
src/MedReminder.Application/Timeline/TherapyTimelineQuery.cs
Persistence and profiles
- Profile management
src/MedReminder.Infrastructure/Profiles/ProfileRegistry.cs - Profile database
src/MedReminder.Infrastructure.Portable/Persistence/MedReminderDbContext.cs
Backup and sync
- Export and restore
src/MedReminder.Infrastructure/Export/ExportService.cs - Automatic backup
src/MedReminder.Infrastructure/Backup/BackupService.cs - Archive storage
src/MedReminder.Infrastructure/Backup/CloudArchiveStorage.cs - Device sync
src/MedReminder.Application/Sync/SyncEngine.cs - Sync transports
src/MedReminder.Infrastructure.Portable/Cloud/GoogleDrive/GoogleDriveSyncTransport.cs
Other components
- User
- Cloud providers
- Official medicine sources
Connections 35
- User → WinForms UI: uses
- WinForms UI → Medicine use cases: records therapy
- Medicine use cases → Profile database: persists changes
- Medicine use cases → Therapy ledger: records facts
- Therapy ledger → Profile database: stores history
- Background services → Medication monitor: runs checks
- Medication monitor → Profile database: reads therapy
- Medication monitor → Stock forecasts: estimates run-out
- Medication monitor → Notifications: dispatches alerts
- Medication monitor → Email delivery: sends email
- Background services → Dose reminders: runs schedule
- Dose reminders → Notifications: dispatches doses
- Dose reminders → Email delivery: sends email
- WinForms UI → Catalogue UI: opens lookup
- Catalogue UI → Catalogue search: searches
- Catalogue search → Reference catalogue: queries
- Background services → Catalogue refresh: refreshes snapshot
- Catalogue refresh → Reference catalogue: imports records
- Official medicine sources → Catalogue refresh: provides data
- WinForms UI → Therapy reports: requests report
- Therapy reports → Profile database: reads therapy
- WinForms UI → Therapy timeline: opens timeline
- Therapy timeline → Profile database: loads history
- WinForms UI → Profile management: selects profile
- Profile management → Profile database: resolves database
- WinForms UI → Export and restore: exports or restores
- Export and restore → Profile database: reads or replaces
- Background services → Automatic backup: runs backups
- Automatic backup → Archive storage: stores archives
- Archive storage → Cloud providers: uploads archives
- WinForms UI → Device sync: manages sync
- Background services → Device sync: runs sync
- Device sync → Profile database: reads operations
- Device sync → Sync transports: exchanges segments
- Sync transports → Cloud providers: uses account