# mh06a/medication-reminder-application architecture

> Architecture diagram of the GitHub repository mh06a/medication-reminder-application, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-11-12). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/mh06a/medication-reminder-application
- Repository: https://github.com/mh06a/medication-reminder-application

## Overview

This is a .NET MAUI medication-tracking app: users register or log in, manage medications and reminders, and review medication history. Its main internal layers are the page-based UI, domain managers, SQLite persistence, and data models. The excerpts show manager-to-database calls and database table operations; the source index supports several UI-to-manager links. Notification behavior and some page details are unsampled, so those connections are limited to indexed references rather than inferred workflows.

Main entry points: [`Project/Services/DatabaseService.cs`](https://github.com/mh06a/medication-reminder-application/blob/main/Project/Services/DatabaseService.cs) (SQLite database service), [`Project/Controllers/MedicationManager.cs`](https://github.com/mh06a/medication-reminder-application/blob/main/Project/Controllers/MedicationManager.cs) (Medication manager), [`Project/Controllers/AuthManager.cs`](https://github.com/mh06a/medication-reminder-application/blob/main/Project/Controllers/AuthManager.cs) (Authentication), [`Project/Controllers/ReminderManager.cs`](https://github.com/mh06a/medication-reminder-application/blob/main/Project/Controllers/ReminderManager.cs) (Reminder manager)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_ui["App interface"]
  node_login["Login page<br/>[LoginPage.xaml.cs]"]
  node_registration["Registration page"]
  node_home["Home page<br/>[HomePage.xaml.cs]"]
  node_addmed["Add medication"]
  node_details["Medication details"]
  node_addrem["Add reminder"]
  node_historypage["History page"]
end

subgraph group_logic["Domain managers"]
  node_auth["Authentication<br/>[AuthManager.cs]"]
  node_medmanager["Medication manager"]
  node_remmanager["Reminder manager<br/>[ReminderManager.cs]"]
  node_histmanager["History manager<br/>[HistoryManager.cs]"]
  node_notifmanager["Notification manager"]
end

subgraph group_storage["Local persistence"]
  node_db[("SQLite database service<br/>[DatabaseService.cs]")]
end

subgraph group_domain["Domain data"]
  node_userrecord["User record<br/>[User.cs]"]
  node_medrecord["Medication record<br/>[Medication.cs]"]
  node_remrecord["Reminder record<br/>[Reminder.cs]"]
  node_histrecord["Medication history"]
  node_notifrecord["Notification record<br/>[Notification.cs]"]
end

node_user(("User"))

node_user -->|"signs in"| node_login
node_user -->|"registers"| node_registration
node_login -->|"authenticates"| node_auth
node_registration -->|"registers account"| node_auth
node_home -->|"loads medications"| node_medmanager
node_addmed -->|"saves medication"| node_medmanager
node_details -->|"manages medication"| node_medmanager
node_details -->|"manages reminders"| node_remmanager
node_addrem -->|"adds reminder"| node_remmanager
node_historypage -->|"loads history"| node_histmanager
node_auth -->|"reads and writes users"| node_db
node_medmanager -->|"manages medications"| node_db
node_remmanager -->|"manages reminders"| node_db
node_histmanager -->|"manages history"| node_db
node_notifmanager -->|"manages notifications"| node_db
node_db -->|"stores and queries"| node_userrecord
node_db -->|"stores and queries"| node_medrecord
node_db -->|"stores and queries"| node_remrecord
node_db -->|"stores and queries"| node_histrecord
node_db -->|"stores and queries"| node_notifrecord

click node_login "https://github.com/mh06a/medication-reminder-application/blob/main/Project/View/LoginPage.xaml.cs"
click node_registration "https://github.com/mh06a/medication-reminder-application/blob/main/Project/View/RegistrationPage.xaml.cs"
click node_home "https://github.com/mh06a/medication-reminder-application/blob/main/Project/View/HomePage.xaml.cs"
click node_addmed "https://github.com/mh06a/medication-reminder-application/blob/main/Project/View/AddMedicationPage.xaml.cs"
click node_details "https://github.com/mh06a/medication-reminder-application/blob/main/Project/View/MedicationDetailsPage.xaml.cs"
click node_addrem "https://github.com/mh06a/medication-reminder-application/blob/main/Project/View/AddReminderPage.xaml.cs"
click node_historypage "https://github.com/mh06a/medication-reminder-application/blob/main/Project/View/HistoryPage.xaml.cs"
click node_auth "https://github.com/mh06a/medication-reminder-application/blob/main/Project/Controllers/AuthManager.cs"
click node_medmanager "https://github.com/mh06a/medication-reminder-application/blob/main/Project/Controllers/MedicationManager.cs"
click node_remmanager "https://github.com/mh06a/medication-reminder-application/blob/main/Project/Controllers/ReminderManager.cs"
click node_histmanager "https://github.com/mh06a/medication-reminder-application/blob/main/Project/Controllers/HistoryManager.cs"
click node_notifmanager "https://github.com/mh06a/medication-reminder-application/blob/main/Project/Controllers/NotificationManager.cs"
click node_db "https://github.com/mh06a/medication-reminder-application/blob/main/Project/Services/DatabaseService.cs"
click node_userrecord "https://github.com/mh06a/medication-reminder-application/blob/main/Project/Model/User.cs"
click node_medrecord "https://github.com/mh06a/medication-reminder-application/blob/main/Project/Model/Medication.cs"
click node_remrecord "https://github.com/mh06a/medication-reminder-application/blob/main/Project/Model/Reminder.cs"
click node_histrecord "https://github.com/mh06a/medication-reminder-application/blob/main/Project/Model/MedicationHistory.cs"
click node_notifrecord "https://github.com/mh06a/medication-reminder-application/blob/main/Project/Model/Notification.cs"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_login,node_registration,node_home,node_addmed,node_details,node_addrem,node_historypage,node_user toneBlue
class node_auth,node_medmanager,node_remmanager,node_histmanager,node_notifmanager toneAmber
class node_db toneMint
class node_userrecord,node_medrecord,node_remrecord,node_histrecord,node_notifrecord toneRose
```

## Components

### App interface

- [Login page](https://github.com/mh06a/medication-reminder-application/blob/main/Project/View/LoginPage.xaml.cs): `Project/View/LoginPage.xaml.cs`
- [Registration page](https://github.com/mh06a/medication-reminder-application/blob/main/Project/View/RegistrationPage.xaml.cs): `Project/View/RegistrationPage.xaml.cs`
- [Home page](https://github.com/mh06a/medication-reminder-application/blob/main/Project/View/HomePage.xaml.cs): `Project/View/HomePage.xaml.cs`
- [Add medication](https://github.com/mh06a/medication-reminder-application/blob/main/Project/View/AddMedicationPage.xaml.cs): `Project/View/AddMedicationPage.xaml.cs`
- [Medication details](https://github.com/mh06a/medication-reminder-application/blob/main/Project/View/MedicationDetailsPage.xaml.cs): `Project/View/MedicationDetailsPage.xaml.cs`
- [Add reminder](https://github.com/mh06a/medication-reminder-application/blob/main/Project/View/AddReminderPage.xaml.cs): `Project/View/AddReminderPage.xaml.cs`
- [History page](https://github.com/mh06a/medication-reminder-application/blob/main/Project/View/HistoryPage.xaml.cs): `Project/View/HistoryPage.xaml.cs`

### Domain managers

- [Authentication](https://github.com/mh06a/medication-reminder-application/blob/main/Project/Controllers/AuthManager.cs): `Project/Controllers/AuthManager.cs`
- [Medication manager](https://github.com/mh06a/medication-reminder-application/blob/main/Project/Controllers/MedicationManager.cs): `Project/Controllers/MedicationManager.cs`
- [Reminder manager](https://github.com/mh06a/medication-reminder-application/blob/main/Project/Controllers/ReminderManager.cs): `Project/Controllers/ReminderManager.cs`
- [History manager](https://github.com/mh06a/medication-reminder-application/blob/main/Project/Controllers/HistoryManager.cs): `Project/Controllers/HistoryManager.cs`
- [Notification manager](https://github.com/mh06a/medication-reminder-application/blob/main/Project/Controllers/NotificationManager.cs): `Project/Controllers/NotificationManager.cs`

### Local persistence

- [SQLite database service](https://github.com/mh06a/medication-reminder-application/blob/main/Project/Services/DatabaseService.cs): `Project/Services/DatabaseService.cs`

### Domain data

- [User record](https://github.com/mh06a/medication-reminder-application/blob/main/Project/Model/User.cs): `Project/Model/User.cs`
- [Medication record](https://github.com/mh06a/medication-reminder-application/blob/main/Project/Model/Medication.cs): `Project/Model/Medication.cs`
- [Reminder record](https://github.com/mh06a/medication-reminder-application/blob/main/Project/Model/Reminder.cs): `Project/Model/Reminder.cs`
- [Medication history](https://github.com/mh06a/medication-reminder-application/blob/main/Project/Model/MedicationHistory.cs): `Project/Model/MedicationHistory.cs`
- [Notification record](https://github.com/mh06a/medication-reminder-application/blob/main/Project/Model/Notification.cs): `Project/Model/Notification.cs`

### Other components

- **User**

## Connections

- User → Login page: signs in (evidence: `Project/View/LoginPage.xaml.cs`)
- User → Registration page: registers (evidence: `Project/View/RegistrationPage.xaml.cs`)
- Login page → Authentication: authenticates (evidence: `Project/View/LoginPage.xaml.cs`)
- Registration page → Authentication: registers account (evidence: `Project/View/RegistrationPage.xaml.cs`)
- Home page → Medication manager: loads medications (evidence: `Project/View/HomePage.xaml.cs`)
- Add medication → Medication manager: saves medication (evidence: `Project/View/AddMedicationPage.xaml.cs`)
- Medication details → Medication manager: manages medication (evidence: `Project/View/MedicationDetailsPage.xaml.cs`)
- Medication details → Reminder manager: manages reminders (evidence: `Project/View/MedicationDetailsPage.xaml.cs`)
- Add reminder → Reminder manager: adds reminder (evidence: `Project/View/AddReminderPage.xaml.cs`)
- History page → History manager: loads history (evidence: `Project/View/HistoryPage.xaml.cs`)
- Authentication → SQLite database service: reads and writes users (evidence: `Project/Controllers/AuthManager.cs`)
- Medication manager → SQLite database service: manages medications (evidence: `Project/Controllers/MedicationManager.cs`)
- Reminder manager → SQLite database service: manages reminders (evidence: `Project/Controllers/ReminderManager.cs`)
- History manager → SQLite database service: manages history (evidence: `Project/Controllers/HistoryManager.cs`)
- Notification manager → SQLite database service: manages notifications (evidence: `Project/Controllers/NotificationManager.cs`)
- SQLite database service → User record: stores and queries (evidence: `Project/Services/DatabaseService.cs`)
- SQLite database service → Medication record: stores and queries (evidence: `Project/Services/DatabaseService.cs`)
- SQLite database service → Reminder record: stores and queries (evidence: `Project/Services/DatabaseService.cs`)
- SQLite database service → Medication history: stores and queries (evidence: `Project/Services/DatabaseService.cs`)
- SQLite database service → Notification record: stores and queries (evidence: `Project/Services/DatabaseService.cs`)
