# hisham-sayed/abcglow architecture

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

- Interactive diagram: https://gitdiagram.com/hisham-sayed/abcglow
- Repository: https://github.com/hisham-sayed/abcglow

## Overview

ABCGlow is an ASP.NET Core center-management API for authentication, parents and students, academic records, daily updates, contact information, and inbox/dashboard views. The main workflow is a client request routed through an endpoint to a feature handler, which reads or changes domain data and returns a result; selected student queries use caching. The tree documents additional feature areas, but the README gives no detail. Sampled handlers support the storage and cache connections shown; unsampled subsystem wiring is intentionally left out.

Main entry points: [`ABCGlow/Program.cs`](https://github.com/hisham-sayed/abcglow/blob/master/ABCGlow/Program.cs) (HTTP pipeline), [`ABCGlow/Common/RepositoryPattern/Repository.cs`](https://github.com/hisham-sayed/abcglow/blob/master/ABCGlow/Common/RepositoryPattern/Repository.cs) (Repository), [`ABCGlow/Features/StudentManagement`](https://github.com/hisham-sayed/abcglow/tree/master/ABCGlow/Features/StudentManagement) (Student records), [`ABCGlow/Features/ParentManagement`](https://github.com/hisham-sayed/abcglow/tree/master/ABCGlow/Features/ParentManagement) (Parent records)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_runtime["API runtime"]
  node_app["HTTP pipeline<br/>[Program.cs]"]
end

subgraph group_identity["Accounts and access"]
  node_auth["Authentication"]
  node_users["User profile"]
  node_parents["Parent records"]
end

subgraph group_academics["Academic records"]
  node_students["Student records"]
  node_notes["Student notes"]
  node_levels["Levels"]
  node_subjects["Subjects"]
  node_updates["Daily updates"]
end

subgraph group_operations["Center operations"]
  node_contacts["Branch contacts"]
  node_inbox["Parent inbox"]
  node_dashboard["Dashboard stats"]
  node_jobs["Scheduled cleanup<br/>[BackgroundJobs.cs]"]
end

subgraph group_shared["Shared services"]
  node_repository["Repository<br/>[Repository.cs]"]
  node_database[("Application data")]
  node_identitydata[("Identity entities<br/>[ApplicationUser.cs]")]
  node_cache["Distributed cache<br/>[CacheService.cs]"]
  node_file["File storage service<br/>[FileService.cs]"]
  node_email["Email sender<br/>[EmailService.cs]"]
end

node_client(("API client"))
node_smtp["SMTP service"]

node_client -->|"sends requests"| node_app
node_app -->|"routes API requests"| node_auth
node_app -->|"routes API requests"| node_users
node_app -->|"routes API requests"| node_parents
node_app -->|"routes API requests"| node_students
node_app -->|"routes API requests"| node_notes
node_app -->|"routes API requests"| node_levels
node_app -->|"routes API requests"| node_subjects
node_app -->|"routes API requests"| node_updates
node_app -->|"routes API requests"| node_contacts
node_app -->|"routes API requests"| node_inbox
node_app -->|"routes API requests"| node_dashboard
node_auth -->|"manages accounts"| node_identitydata
node_parents -->|"manages parent accounts"| node_identitydata
node_parents -->|"queries students"| node_repository
node_students -->|"creates parent accounts"| node_identitydata
node_students -->|"reads and writes"| node_repository
node_students -->|"reads and invalidates"| node_cache
node_notes -->|"reads and writes"| node_repository
node_levels -->|"reads and writes"| node_repository
node_subjects -->|"reads and writes"| node_repository
node_updates -->|"reads and writes"| node_repository
node_contacts -->|"reads and writes"| node_repository
node_inbox -->|"reads and writes"| node_repository
node_dashboard -->|"queries records"| node_repository
node_repository -->|"queries and persists"| node_database
node_jobs -->|"cleans old data"| node_repository
node_file -->|"returns file path"| node_client
node_email -->|"sends mail"| node_smtp

click node_app "https://github.com/hisham-sayed/abcglow/blob/master/ABCGlow/Program.cs"
click node_auth "https://github.com/hisham-sayed/abcglow/tree/master/ABCGlow/Features/AuthenticationManagement"
click node_users "https://github.com/hisham-sayed/abcglow/tree/master/ABCGlow/Features/UserManagement"
click node_parents "https://github.com/hisham-sayed/abcglow/tree/master/ABCGlow/Features/ParentManagement"
click node_students "https://github.com/hisham-sayed/abcglow/tree/master/ABCGlow/Features/StudentManagement"
click node_notes "https://github.com/hisham-sayed/abcglow/tree/master/ABCGlow/Features/StudentNoteManagement"
click node_levels "https://github.com/hisham-sayed/abcglow/tree/master/ABCGlow/Features/LevelManagement"
click node_subjects "https://github.com/hisham-sayed/abcglow/tree/master/ABCGlow/Features/SubjectManagement"
click node_updates "https://github.com/hisham-sayed/abcglow/tree/master/ABCGlow/Features/DailyUpdateManagement"
click node_contacts "https://github.com/hisham-sayed/abcglow/tree/master/ABCGlow/Features/ContactManagement"
click node_inbox "https://github.com/hisham-sayed/abcglow/tree/master/ABCGlow/Features/InboxManagement"
click node_dashboard "https://github.com/hisham-sayed/abcglow/tree/master/ABCGlow/Features/DashboardManagement"
click node_jobs "https://github.com/hisham-sayed/abcglow/blob/master/ABCGlow/BackgroundJobs.cs"
click node_repository "https://github.com/hisham-sayed/abcglow/blob/master/ABCGlow/Common/RepositoryPattern/Repository.cs"
click node_database "https://github.com/hisham-sayed/abcglow/blob/master/ABCGlow/Persistence/ApplicationDbContext.cs"
click node_identitydata "https://github.com/hisham-sayed/abcglow/blob/master/ABCGlow/Entities/Identity/ApplicationUser.cs"
click node_cache "https://github.com/hisham-sayed/abcglow/blob/master/ABCGlow/Common/Caching/CacheService.cs"
click node_file "https://github.com/hisham-sayed/abcglow/blob/master/ABCGlow/Common/FileServices/FileService.cs"
click node_email "https://github.com/hisham-sayed/abcglow/blob/master/ABCGlow/Common/Email/EmailService.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_app,node_client toneBlue
class node_auth,node_users,node_parents toneAmber
class node_students,node_notes,node_levels,node_subjects,node_updates toneMint
class node_contacts,node_inbox,node_dashboard,node_jobs toneRose
class node_repository,node_database,node_identitydata,node_cache,node_file,node_email,node_smtp toneIndigo
```

## Components

### API runtime

- [HTTP pipeline](https://github.com/hisham-sayed/abcglow/blob/master/ABCGlow/Program.cs): `ABCGlow/Program.cs`

### Accounts and access

- [Authentication](https://github.com/hisham-sayed/abcglow/tree/master/ABCGlow/Features/AuthenticationManagement): `ABCGlow/Features/AuthenticationManagement`
- [User profile](https://github.com/hisham-sayed/abcglow/tree/master/ABCGlow/Features/UserManagement): `ABCGlow/Features/UserManagement`
- [Parent records](https://github.com/hisham-sayed/abcglow/tree/master/ABCGlow/Features/ParentManagement): `ABCGlow/Features/ParentManagement`

### Academic records

- [Student records](https://github.com/hisham-sayed/abcglow/tree/master/ABCGlow/Features/StudentManagement): `ABCGlow/Features/StudentManagement`
- [Student notes](https://github.com/hisham-sayed/abcglow/tree/master/ABCGlow/Features/StudentNoteManagement): `ABCGlow/Features/StudentNoteManagement`
- [Levels](https://github.com/hisham-sayed/abcglow/tree/master/ABCGlow/Features/LevelManagement): `ABCGlow/Features/LevelManagement`
- [Subjects](https://github.com/hisham-sayed/abcglow/tree/master/ABCGlow/Features/SubjectManagement): `ABCGlow/Features/SubjectManagement`
- [Daily updates](https://github.com/hisham-sayed/abcglow/tree/master/ABCGlow/Features/DailyUpdateManagement): `ABCGlow/Features/DailyUpdateManagement`

### Center operations

- [Branch contacts](https://github.com/hisham-sayed/abcglow/tree/master/ABCGlow/Features/ContactManagement): `ABCGlow/Features/ContactManagement`
- [Parent inbox](https://github.com/hisham-sayed/abcglow/tree/master/ABCGlow/Features/InboxManagement): `ABCGlow/Features/InboxManagement`
- [Dashboard stats](https://github.com/hisham-sayed/abcglow/tree/master/ABCGlow/Features/DashboardManagement): `ABCGlow/Features/DashboardManagement`
- [Scheduled cleanup](https://github.com/hisham-sayed/abcglow/blob/master/ABCGlow/BackgroundJobs.cs): `ABCGlow/BackgroundJobs.cs`

### Shared services

- [Repository](https://github.com/hisham-sayed/abcglow/blob/master/ABCGlow/Common/RepositoryPattern/Repository.cs): `ABCGlow/Common/RepositoryPattern/Repository.cs`
- [Application data](https://github.com/hisham-sayed/abcglow/blob/master/ABCGlow/Persistence/ApplicationDbContext.cs): `ABCGlow/Persistence/ApplicationDbContext.cs`
- [Identity entities](https://github.com/hisham-sayed/abcglow/blob/master/ABCGlow/Entities/Identity/ApplicationUser.cs): `ABCGlow/Entities/Identity/ApplicationUser.cs`
- [Distributed cache](https://github.com/hisham-sayed/abcglow/blob/master/ABCGlow/Common/Caching/CacheService.cs): `ABCGlow/Common/Caching/CacheService.cs`
- [File storage service](https://github.com/hisham-sayed/abcglow/blob/master/ABCGlow/Common/FileServices/FileService.cs): `ABCGlow/Common/FileServices/FileService.cs`
- [Email sender](https://github.com/hisham-sayed/abcglow/blob/master/ABCGlow/Common/Email/EmailService.cs): `ABCGlow/Common/Email/EmailService.cs`

### Other components

- **API client**
- **SMTP service**

## Connections

- API client → HTTP pipeline: sends requests
- HTTP pipeline → Authentication: routes API requests
- HTTP pipeline → User profile: routes API requests
- HTTP pipeline → Parent records: routes API requests
- HTTP pipeline → Student records: routes API requests
- HTTP pipeline → Student notes: routes API requests
- HTTP pipeline → Levels: routes API requests
- HTTP pipeline → Subjects: routes API requests
- HTTP pipeline → Daily updates: routes API requests
- HTTP pipeline → Branch contacts: routes API requests
- HTTP pipeline → Parent inbox: routes API requests
- HTTP pipeline → Dashboard stats: routes API requests
- Authentication → Identity entities: manages accounts
- Parent records → Identity entities: manages parent accounts
- Parent records → Repository: queries students
- Student records → Identity entities: creates parent accounts
- Student records → Repository: reads and writes
- Student records → Distributed cache: reads and invalidates
- Student notes → Repository: reads and writes
- Levels → Repository: reads and writes
- Subjects → Repository: reads and writes
- Daily updates → Repository: reads and writes
- Branch contacts → Repository: reads and writes
- Parent inbox → Repository: reads and writes
- Dashboard stats → Repository: queries records
- Repository → Application data: queries and persists
- Scheduled cleanup → Repository: cleans old data
- File storage service → API client: returns file path
- Email sender → SMTP service: sends mail
