# scorpio7736/schedule_creator_v2 architecture

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

- Interactive diagram: https://gitdiagram.com/scorpio7736/schedule_creator_v2
- Repository: https://github.com/scorpio7736/schedule_creator_v2

## Overview

Schedule Creator V2 is a Windows desktop staff-administration and scheduling application. The principal workflow configures operating hours, maintains staff, qualifications, availability and time off, then builds or generates schedules for review and export; staff communications can be composed as themed email files. The graph reflects documented capabilities and sampled service relationships. Some view-to-service wiring and unsampled CRUD paths are inferred only as dashed, unverified links.

Main entry points: [`Schedule_Creator_V2/Services/Database/Database.cs`](https://github.com/scorpio7736/schedule_creator_v2/blob/master/Schedule_Creator_V2/Services/Database/Database.cs) (SQL command access), [`Schedule_Creator_V2/Views/Insights/Send Email/Send_Email.xaml.cs`](https://github.com/scorpio7736/schedule_creator_v2/blob/master/Schedule_Creator_V2/Views/Insights/Send%20Email/Send_Email.xaml.cs) (Email composer), [`Schedule_Creator_V2/Services/Database/DatabaseRead.cs`](https://github.com/scorpio7736/schedule_creator_v2/blob/master/Schedule_Creator_V2/Services/Database/DatabaseRead.cs) (Record queries), [`Schedule_Creator_V2/Services/Scheduling/ScheduleGeneratorService.cs`](https://github.com/scorpio7736/schedule_creator_v2/blob/master/Schedule_Creator_V2/Services/Scheduling/ScheduleGeneratorService.cs) (Schedule generator)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_staff["Staff operations"]
  node_staff_ui["Staff records<br/>[Add_Staff.xaml.cs]"]
  node_qual_ui["Qualifications<br/>[Add_Avail.xaml.cs]"]
  node_timeoff_ui["Time off"]
  node_roster_ui["Staff roster<br/>[View_Staff.xaml.cs]"]
  node_staff_model["Staff records model<br/>[Staff.cs]"]
end

subgraph group_scheduling["Scheduling"]
  node_job_ui["Job settings"]
  node_build_ui["Schedule builder"]
  node_auto_ui["Auto-generation options"]
  node_generator["Schedule generator"]
  node_schedule_model["Schedule records<br/>[ScheduleRow.cs]"]
  node_schedule_view["Schedule review"]
  node_schedule_service["Schedule operations<br/>[ScheduleService.cs]"]
  node_image_export["Schedule image export"]
end

subgraph group_email["Email composition"]
  node_email_ui["Email composer<br/>[Send_Email.xaml.cs]"]
  node_email_inputs["Dynamic input forms"]
  node_email_validation["Input validation"]
  node_email_content["HTML content builder"]
  node_email_theme["Themed templates"]
  node_email_preview["Email preview"]
  node_eml["EML packaging<br/>[EmlEmailService.cs]"]
end

subgraph group_data["Persistence"]
  node_database["SQL command access<br/>[Database.cs]"]
  node_db_read["Record queries<br/>[DatabaseRead.cs]"]
  node_db_create["Record creation<br/>[DatabaseCreate.cs]"]
  node_db_update["Record updates<br/>[DatabaseUpdate.cs]"]
  node_db_delete["Record deletion<br/>[DatabaseDelete.cs]"]
  node_migration["Schema migration<br/>[DataMigragtion.cs]"]
end

node_operator(("Staff administrator"))
node_main["Application shell<br/>[MainWindow.xaml.cs]"]
node_localdb[("SQL Server LocalDB")]
node_email_client(("Email client"))

node_operator -->|"uses"| node_main
node_main -->|"initializes"| node_migration
node_main -->|"checks connection"| node_database
node_operator -.->|"maintains staff"| node_staff_ui
node_operator -.->|"records availability"| node_qual_ui
node_operator -.->|"records time off"| node_timeoff_ui
node_operator -->|"configures hours"| node_job_ui
node_operator -->|"builds schedule"| node_build_ui
node_build_ui -.->|"offers generation"| node_auto_ui
node_auto_ui -.->|"requests draft"| node_generator
node_generator -->|"reads inputs"| node_db_read
node_generator -->|"produces assignments"| node_schedule_model
node_operator -->|"reviews schedule"| node_schedule_view
node_schedule_view -->|"uses operations"| node_schedule_service
node_schedule_view -->|"exports image"| node_image_export
node_operator -->|"views roster"| node_roster_ui
node_staff_ui -.->|"creates records"| node_db_create
node_qual_ui -.->|"updates availability"| node_db_update
node_timeoff_ui -.->|"stores requests"| node_db_create
node_roster_ui -.->|"loads roster"| node_db_read
node_database -->|"executes SQL"| node_localdb
node_db_read -->|"executes queries"| node_database
node_db_create -.->|"executes writes"| node_database
node_db_update -.->|"executes writes"| node_database
node_db_delete -.->|"executes deletes"| node_database
node_operator -->|"prepares communication"| node_email_ui
node_email_ui -.->|"builds controls"| node_email_inputs
node_email_inputs -->|"validates values"| node_email_validation
node_email_ui -.->|"builds message"| node_email_content
node_email_content -->|"applies theme"| node_email_theme
node_operator -->|"previews content"| node_email_preview
node_email_ui -.->|"packages message"| node_eml
node_eml -->|"produces EML"| node_email_client
node_email_ui -.->|"selects recipients"| node_db_read

click node_main "https://github.com/scorpio7736/schedule_creator_v2/blob/master/Schedule_Creator_V2/Views/MainWindow.xaml.cs"
click node_staff_ui "https://github.com/scorpio7736/schedule_creator_v2/blob/master/Schedule_Creator_V2/Views/Staff%20Management/Staff%20Records/Add_Staff.xaml.cs"
click node_qual_ui "https://github.com/scorpio7736/schedule_creator_v2/blob/master/Schedule_Creator_V2/Views/Staff%20Management/Qualifications/Add_Avail.xaml.cs"
click node_timeoff_ui "https://github.com/scorpio7736/schedule_creator_v2/blob/master/Schedule_Creator_V2/Views/Staff%20Management/Time%20Off/Add_Days_Off.xaml.cs"
click node_roster_ui "https://github.com/scorpio7736/schedule_creator_v2/blob/master/Schedule_Creator_V2/Views/Insights/View_Staff.xaml.cs"
click node_staff_model "https://github.com/scorpio7736/schedule_creator_v2/blob/master/Schedule_Creator_V2/Models/Records/Staff.cs"
click node_job_ui "https://github.com/scorpio7736/schedule_creator_v2/blob/master/Schedule_Creator_V2/Views/Scheduling/Add_Job_Settings.xaml.cs"
click node_build_ui "https://github.com/scorpio7736/schedule_creator_v2/blob/master/Schedule_Creator_V2/Views/Scheduling/Build%20Schedule/Build_Schedule.xaml.cs"
click node_auto_ui "https://github.com/scorpio7736/schedule_creator_v2/blob/master/Schedule_Creator_V2/Views/Scheduling/Build%20Schedule/Auto_Generate_Options.xaml.cs"
click node_generator "https://github.com/scorpio7736/schedule_creator_v2/blob/master/Schedule_Creator_V2/Services/Scheduling/ScheduleGeneratorService.cs"
click node_schedule_model "https://github.com/scorpio7736/schedule_creator_v2/blob/master/Schedule_Creator_V2/Models/Records/ScheduleRow.cs"
click node_schedule_view "https://github.com/scorpio7736/schedule_creator_v2/blob/master/Schedule_Creator_V2/Views/Scheduling/View_Schedule.xaml.cs"
click node_schedule_service "https://github.com/scorpio7736/schedule_creator_v2/blob/master/Schedule_Creator_V2/Services/Scheduling/ScheduleService.cs"
click node_image_export "https://github.com/scorpio7736/schedule_creator_v2/blob/master/Schedule_Creator_V2/Services/Scheduling/ScheduleImageExportService.cs"
click node_email_ui "https://github.com/scorpio7736/schedule_creator_v2/blob/master/Schedule_Creator_V2/Views/Insights/Send%20Email/Send_Email.xaml.cs"
click node_email_inputs "https://github.com/scorpio7736/schedule_creator_v2/blob/master/Schedule_Creator_V2/Services/Email/EmailInputFormService.cs"
click node_email_validation "https://github.com/scorpio7736/schedule_creator_v2/blob/master/Schedule_Creator_V2/Services/Email/EmailValidationService.cs"
click node_email_content "https://github.com/scorpio7736/schedule_creator_v2/blob/master/Schedule_Creator_V2/Services/Email/EmailContentService.cs"
click node_email_theme "https://github.com/scorpio7736/schedule_creator_v2/blob/master/Schedule_Creator_V2/Services/Email/LetsGlowemailContentService.cs"
click node_email_preview "https://github.com/scorpio7736/schedule_creator_v2/blob/master/Schedule_Creator_V2/Views/Insights/Send%20Email/EmailPreviewWindow.xaml.cs"
click node_eml "https://github.com/scorpio7736/schedule_creator_v2/blob/master/Schedule_Creator_V2/Services/Email/EmlEmailService.cs"
click node_database "https://github.com/scorpio7736/schedule_creator_v2/blob/master/Schedule_Creator_V2/Services/Database/Database.cs"
click node_db_read "https://github.com/scorpio7736/schedule_creator_v2/blob/master/Schedule_Creator_V2/Services/Database/DatabaseRead.cs"
click node_db_create "https://github.com/scorpio7736/schedule_creator_v2/blob/master/Schedule_Creator_V2/Services/Database/DatabaseCreate.cs"
click node_db_update "https://github.com/scorpio7736/schedule_creator_v2/blob/master/Schedule_Creator_V2/Services/Database/DatabaseUpdate.cs"
click node_db_delete "https://github.com/scorpio7736/schedule_creator_v2/blob/master/Schedule_Creator_V2/Services/Database/DatabaseDelete.cs"
click node_migration "https://github.com/scorpio7736/schedule_creator_v2/blob/master/Schedule_Creator_V2/Services/Database/DataMigragtion.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_staff_ui,node_qual_ui,node_timeoff_ui,node_roster_ui,node_staff_model,node_email_client toneBlue
class node_job_ui,node_build_ui,node_auto_ui,node_generator,node_schedule_model,node_schedule_view,node_schedule_service,node_image_export,node_localdb toneAmber
class node_email_ui,node_email_inputs,node_email_validation,node_email_content,node_email_theme,node_email_preview,node_eml toneMint
class node_database,node_db_read,node_db_create,node_db_update,node_db_delete,node_migration toneRose
class node_operator toneIndigo
class node_main toneTeal
```

## Components

### Staff operations

- [Staff records](https://github.com/scorpio7736/schedule_creator_v2/blob/master/Schedule_Creator_V2/Views/Staff%20Management/Staff%20Records/Add_Staff.xaml.cs): `Schedule_Creator_V2/Views/Staff Management/Staff Records/Add_Staff.xaml.cs`
- [Qualifications](https://github.com/scorpio7736/schedule_creator_v2/blob/master/Schedule_Creator_V2/Views/Staff%20Management/Qualifications/Add_Avail.xaml.cs): `Schedule_Creator_V2/Views/Staff Management/Qualifications/Add_Avail.xaml.cs`
- [Time off](https://github.com/scorpio7736/schedule_creator_v2/blob/master/Schedule_Creator_V2/Views/Staff%20Management/Time%20Off/Add_Days_Off.xaml.cs): `Schedule_Creator_V2/Views/Staff Management/Time Off/Add_Days_Off.xaml.cs`
- [Staff roster](https://github.com/scorpio7736/schedule_creator_v2/blob/master/Schedule_Creator_V2/Views/Insights/View_Staff.xaml.cs): `Schedule_Creator_V2/Views/Insights/View_Staff.xaml.cs`
- [Staff records model](https://github.com/scorpio7736/schedule_creator_v2/blob/master/Schedule_Creator_V2/Models/Records/Staff.cs): `Schedule_Creator_V2/Models/Records/Staff.cs`

### Scheduling

- [Job settings](https://github.com/scorpio7736/schedule_creator_v2/blob/master/Schedule_Creator_V2/Views/Scheduling/Add_Job_Settings.xaml.cs): `Schedule_Creator_V2/Views/Scheduling/Add_Job_Settings.xaml.cs`
- [Schedule builder](https://github.com/scorpio7736/schedule_creator_v2/blob/master/Schedule_Creator_V2/Views/Scheduling/Build%20Schedule/Build_Schedule.xaml.cs): `Schedule_Creator_V2/Views/Scheduling/Build Schedule/Build_Schedule.xaml.cs`
- [Auto-generation options](https://github.com/scorpio7736/schedule_creator_v2/blob/master/Schedule_Creator_V2/Views/Scheduling/Build%20Schedule/Auto_Generate_Options.xaml.cs): `Schedule_Creator_V2/Views/Scheduling/Build Schedule/Auto_Generate_Options.xaml.cs`
- [Schedule generator](https://github.com/scorpio7736/schedule_creator_v2/blob/master/Schedule_Creator_V2/Services/Scheduling/ScheduleGeneratorService.cs): `Schedule_Creator_V2/Services/Scheduling/ScheduleGeneratorService.cs`
- [Schedule records](https://github.com/scorpio7736/schedule_creator_v2/blob/master/Schedule_Creator_V2/Models/Records/ScheduleRow.cs): `Schedule_Creator_V2/Models/Records/ScheduleRow.cs`
- [Schedule review](https://github.com/scorpio7736/schedule_creator_v2/blob/master/Schedule_Creator_V2/Views/Scheduling/View_Schedule.xaml.cs): `Schedule_Creator_V2/Views/Scheduling/View_Schedule.xaml.cs`
- [Schedule operations](https://github.com/scorpio7736/schedule_creator_v2/blob/master/Schedule_Creator_V2/Services/Scheduling/ScheduleService.cs): `Schedule_Creator_V2/Services/Scheduling/ScheduleService.cs`
- [Schedule image export](https://github.com/scorpio7736/schedule_creator_v2/blob/master/Schedule_Creator_V2/Services/Scheduling/ScheduleImageExportService.cs): `Schedule_Creator_V2/Services/Scheduling/ScheduleImageExportService.cs`

### Email composition

- [Email composer](https://github.com/scorpio7736/schedule_creator_v2/blob/master/Schedule_Creator_V2/Views/Insights/Send%20Email/Send_Email.xaml.cs): `Schedule_Creator_V2/Views/Insights/Send Email/Send_Email.xaml.cs`
- [Dynamic input forms](https://github.com/scorpio7736/schedule_creator_v2/blob/master/Schedule_Creator_V2/Services/Email/EmailInputFormService.cs): `Schedule_Creator_V2/Services/Email/EmailInputFormService.cs`
- [Input validation](https://github.com/scorpio7736/schedule_creator_v2/blob/master/Schedule_Creator_V2/Services/Email/EmailValidationService.cs): `Schedule_Creator_V2/Services/Email/EmailValidationService.cs`
- [HTML content builder](https://github.com/scorpio7736/schedule_creator_v2/blob/master/Schedule_Creator_V2/Services/Email/EmailContentService.cs): `Schedule_Creator_V2/Services/Email/EmailContentService.cs`
- [Themed templates](https://github.com/scorpio7736/schedule_creator_v2/blob/master/Schedule_Creator_V2/Services/Email/LetsGlowemailContentService.cs): `Schedule_Creator_V2/Services/Email/LetsGlowemailContentService.cs`
- [Email preview](https://github.com/scorpio7736/schedule_creator_v2/blob/master/Schedule_Creator_V2/Views/Insights/Send%20Email/EmailPreviewWindow.xaml.cs): `Schedule_Creator_V2/Views/Insights/Send Email/EmailPreviewWindow.xaml.cs`
- [EML packaging](https://github.com/scorpio7736/schedule_creator_v2/blob/master/Schedule_Creator_V2/Services/Email/EmlEmailService.cs): `Schedule_Creator_V2/Services/Email/EmlEmailService.cs`

### Persistence

- [SQL command access](https://github.com/scorpio7736/schedule_creator_v2/blob/master/Schedule_Creator_V2/Services/Database/Database.cs): `Schedule_Creator_V2/Services/Database/Database.cs`
- [Record queries](https://github.com/scorpio7736/schedule_creator_v2/blob/master/Schedule_Creator_V2/Services/Database/DatabaseRead.cs): `Schedule_Creator_V2/Services/Database/DatabaseRead.cs`
- [Record creation](https://github.com/scorpio7736/schedule_creator_v2/blob/master/Schedule_Creator_V2/Services/Database/DatabaseCreate.cs): `Schedule_Creator_V2/Services/Database/DatabaseCreate.cs`
- [Record updates](https://github.com/scorpio7736/schedule_creator_v2/blob/master/Schedule_Creator_V2/Services/Database/DatabaseUpdate.cs): `Schedule_Creator_V2/Services/Database/DatabaseUpdate.cs`
- [Record deletion](https://github.com/scorpio7736/schedule_creator_v2/blob/master/Schedule_Creator_V2/Services/Database/DatabaseDelete.cs): `Schedule_Creator_V2/Services/Database/DatabaseDelete.cs`
- [Schema migration](https://github.com/scorpio7736/schedule_creator_v2/blob/master/Schedule_Creator_V2/Services/Database/DataMigragtion.cs): `Schedule_Creator_V2/Services/Database/DataMigragtion.cs`

### Other components

- **Staff administrator**
- [Application shell](https://github.com/scorpio7736/schedule_creator_v2/blob/master/Schedule_Creator_V2/Views/MainWindow.xaml.cs): `Schedule_Creator_V2/Views/MainWindow.xaml.cs`
- **SQL Server LocalDB**
- **Email client**

## Connections

- Staff administrator → Application shell: uses (evidence: `README.md`)
- Application shell → Schema migration: initializes (evidence: `Schedule_Creator_V2/Views/MainWindow.xaml.cs`)
- Application shell → SQL command access: checks connection (evidence: `Schedule_Creator_V2/Views/MainWindow.xaml.cs`)
- Staff administrator → Staff records: maintains staff
- Staff administrator → Qualifications: records availability
- Staff administrator → Time off: records time off
- Staff administrator → Job settings: configures hours (evidence: `README.md`)
- Staff administrator → Schedule builder: builds schedule (evidence: `README.md`)
- Schedule builder → Auto-generation options: offers generation
- Auto-generation options → Schedule generator: requests draft
- Schedule generator → Record queries: reads inputs (evidence: `Schedule_Creator_V2/Services/Scheduling/ScheduleGeneratorService.cs`)
- Schedule generator → Schedule records: produces assignments (evidence: `Schedule_Creator_V2/Services/Scheduling/ScheduleGeneratorService.cs`)
- Staff administrator → Schedule review: reviews schedule (evidence: `README.md`)
- Schedule review → Schedule operations: uses operations (evidence: `Schedule_Creator_V2/Views/Scheduling/View_Schedule.xaml.cs`)
- Schedule review → Schedule image export: exports image (evidence: `Schedule_Creator_V2/Views/Scheduling/View_Schedule.xaml.cs`)
- Staff administrator → Staff roster: views roster (evidence: `README.md`)
- Staff records → Record creation: creates records
- Qualifications → Record updates: updates availability
- Time off → Record creation: stores requests
- Staff roster → Record queries: loads roster
- SQL command access → SQL Server LocalDB: executes SQL (evidence: `Schedule_Creator_V2/Services/Database/Database.cs`)
- Record queries → SQL command access: executes queries (evidence: `Schedule_Creator_V2/Services/Database/DatabaseRead.cs`)
- Record creation → SQL command access: executes writes
- Record updates → SQL command access: executes writes
- Record deletion → SQL command access: executes deletes
- Staff administrator → Email composer: prepares communication (evidence: `README.md`)
- Email composer → Dynamic input forms: builds controls
- Dynamic input forms → Input validation: validates values (evidence: `Schedule_Creator_V2/Services/Email/EmailInputFormService.cs`)
- Email composer → HTML content builder: builds message
- HTML content builder → Themed templates: applies theme (evidence: `Schedule_Creator_V2/Services/Email/LetsGlowemailContentService.cs`)
- Staff administrator → Email preview: previews content (evidence: `README.md`)
- Email composer → EML packaging: packages message
- EML packaging → Email client: produces EML (evidence: `README.md`)
- Email composer → Record queries: selects recipients
