# kfxcore2025/doctrackproj architecture

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

- Interactive diagram: https://gitdiagram.com/kfxcore2025/doctrackproj
- Repository: https://github.com/kfxcore2025/doctrackproj

## Overview

DocTrackProj is an ASP.NET Core MVC application for tracking documents exchanged among campus offices. Users sign in, submit a document with a receiving office, and receive a tracking code; the application records a user-facing document and a matching admin record. Admins can receive and review documents and manage users and offices, while office users can receive and view documents. The excerpts establish controller-to-database behavior and document mirroring; other view wiring and several controller actions were not sampled.

Main entry points: [`DocTrackProj/Data/ApplicationDBContext.cs`](https://github.com/kfxcore2025/doctrackproj/blob/master/DocTrackProj/Data/ApplicationDBContext.cs) (Data context), [`DocTrackProj/Controllers/AdminController.cs`](https://github.com/kfxcore2025/doctrackproj/blob/master/DocTrackProj/Controllers/AdminController.cs) (Admin operations), [`DocTrackProj/Program.cs`](https://github.com/kfxcore2025/doctrackproj/blob/master/DocTrackProj/Program.cs) (MVC application), [`DocTrackProj/Controllers/AccountController.cs`](https://github.com/kfxcore2025/doctrackproj/blob/master/DocTrackProj/Controllers/AccountController.cs) (Sign-in and registration)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_web["Web workflows"]
  node_account["Sign-in and registration"]
  node_userflow["Office document workflow<br/>[UserController.cs]"]
  node_adminflow["Admin operations<br/>[AdminController.cs]"]
  node_adminview["Admin dashboard model"]
  node_errormodel["Error view model<br/>[ErrorViewModel.cs]"]
end

subgraph group_records["Document records"]
  node_userdoc["User document<br/>[UserDocument.cs]"]
  node_admindoc["Admin document<br/>[AdminDocument.cs]"]
  node_document["Document model<br/>[Document.cs]"]
end

subgraph group_identity["Accounts and offices"]
  node_user["User account<br/>[User.cs]"]
  node_office["Office<br/>[Office.cs]"]
  node_loginmodel["Login view model<br/>[LoginViewModel.cs]"]
  node_manageview["Manage view model<br/>[ManageViewModel.cs]"]
  node_emailverification["Email verification record"]
end

subgraph group_runtime["Runtime and messaging"]
  node_app["MVC application<br/>[Program.cs]"]
  node_context["Data context"]
  node_database[("SQL Server database")]
  node_emailservice["OTP email sender<br/>[EmailService.cs]"]
end

node_visitor(("User or admin"))
node_smtp(("SMTP server"))

node_visitor -->|"uses"| node_app
node_app -->|"routes to"| node_account
node_app -->|"configures"| node_context
node_app -->|"registers"| node_emailservice
node_account -->|"queries and updates"| node_context
node_account -->|"binds"| node_loginmodel
node_account -->|"checks and creates"| node_user
node_userflow -->|"queries and saves"| node_context
node_userflow -->|"creates and updates"| node_userdoc
node_userflow -->|"mirrors submission"| node_admindoc
node_adminflow -->|"queries and saves"| node_context
node_adminflow -->|"receives and records"| node_admindoc
node_adminflow -->|"creates transfer record"| node_userdoc
node_adminflow -->|"manages accounts"| node_user
node_context -->|"reads and writes"| node_database
node_context -->|"maps entity"| node_user
node_context -->|"maps entity"| node_office
node_context -->|"maps entity"| node_document
node_context -->|"maps entity"| node_userdoc
node_context -->|"maps entity"| node_admindoc
node_context -->|"maps entity"| node_emailverification
node_emailservice -->|"sends mail"| node_smtp
node_adminflow -->|"uses model"| node_manageview
node_adminflow -.->|"uses model"| node_adminview
node_app -.->|"uses for errors"| node_errormodel

click node_app "https://github.com/kfxcore2025/doctrackproj/blob/master/DocTrackProj/Program.cs"
click node_account "https://github.com/kfxcore2025/doctrackproj/blob/master/DocTrackProj/Controllers/AccountController.cs"
click node_userflow "https://github.com/kfxcore2025/doctrackproj/blob/master/DocTrackProj/Controllers/UserController.cs"
click node_adminflow "https://github.com/kfxcore2025/doctrackproj/blob/master/DocTrackProj/Controllers/AdminController.cs"
click node_context "https://github.com/kfxcore2025/doctrackproj/blob/master/DocTrackProj/Data/ApplicationDBContext.cs"
click node_userdoc "https://github.com/kfxcore2025/doctrackproj/blob/master/DocTrackProj/Models/UserDocument.cs"
click node_admindoc "https://github.com/kfxcore2025/doctrackproj/blob/master/DocTrackProj/Models/AdminDocument.cs"
click node_document "https://github.com/kfxcore2025/doctrackproj/blob/master/DocTrackProj/Models/Document.cs"
click node_user "https://github.com/kfxcore2025/doctrackproj/blob/master/DocTrackProj/Models/User.cs"
click node_office "https://github.com/kfxcore2025/doctrackproj/blob/master/DocTrackProj/Models/Office.cs"
click node_loginmodel "https://github.com/kfxcore2025/doctrackproj/blob/master/DocTrackProj/Models/LoginViewModel.cs"
click node_manageview "https://github.com/kfxcore2025/doctrackproj/blob/master/DocTrackProj/Models/ManageViewModel.cs"
click node_emailverification "https://github.com/kfxcore2025/doctrackproj/blob/master/DocTrackProj/Models/EmailVerification.cs"
click node_adminview "https://github.com/kfxcore2025/doctrackproj/blob/master/DocTrackProj/Models/AdminDashboardViewModel.cs"
click node_errormodel "https://github.com/kfxcore2025/doctrackproj/blob/master/DocTrackProj/Models/ErrorViewModel.cs"
click node_emailservice "https://github.com/kfxcore2025/doctrackproj/blob/master/DocTrackProj/Services/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_account,node_userflow,node_adminflow,node_adminview,node_errormodel,node_visitor toneBlue
class node_userdoc,node_admindoc,node_document toneAmber
class node_user,node_office,node_loginmodel,node_manageview,node_emailverification,node_smtp toneMint
class node_app,node_context,node_database,node_emailservice toneRose
```

## Components

### Web workflows

- [Sign-in and registration](https://github.com/kfxcore2025/doctrackproj/blob/master/DocTrackProj/Controllers/AccountController.cs): `DocTrackProj/Controllers/AccountController.cs`
- [Office document workflow](https://github.com/kfxcore2025/doctrackproj/blob/master/DocTrackProj/Controllers/UserController.cs): `DocTrackProj/Controllers/UserController.cs`
- [Admin operations](https://github.com/kfxcore2025/doctrackproj/blob/master/DocTrackProj/Controllers/AdminController.cs): `DocTrackProj/Controllers/AdminController.cs`
- [Admin dashboard model](https://github.com/kfxcore2025/doctrackproj/blob/master/DocTrackProj/Models/AdminDashboardViewModel.cs): `DocTrackProj/Models/AdminDashboardViewModel.cs`
- [Error view model](https://github.com/kfxcore2025/doctrackproj/blob/master/DocTrackProj/Models/ErrorViewModel.cs): `DocTrackProj/Models/ErrorViewModel.cs`

### Document records

- [User document](https://github.com/kfxcore2025/doctrackproj/blob/master/DocTrackProj/Models/UserDocument.cs): `DocTrackProj/Models/UserDocument.cs`
- [Admin document](https://github.com/kfxcore2025/doctrackproj/blob/master/DocTrackProj/Models/AdminDocument.cs): `DocTrackProj/Models/AdminDocument.cs`
- [Document model](https://github.com/kfxcore2025/doctrackproj/blob/master/DocTrackProj/Models/Document.cs): `DocTrackProj/Models/Document.cs`

### Accounts and offices

- [User account](https://github.com/kfxcore2025/doctrackproj/blob/master/DocTrackProj/Models/User.cs): `DocTrackProj/Models/User.cs`
- [Office](https://github.com/kfxcore2025/doctrackproj/blob/master/DocTrackProj/Models/Office.cs): `DocTrackProj/Models/Office.cs`
- [Login view model](https://github.com/kfxcore2025/doctrackproj/blob/master/DocTrackProj/Models/LoginViewModel.cs): `DocTrackProj/Models/LoginViewModel.cs`
- [Manage view model](https://github.com/kfxcore2025/doctrackproj/blob/master/DocTrackProj/Models/ManageViewModel.cs): `DocTrackProj/Models/ManageViewModel.cs`
- [Email verification record](https://github.com/kfxcore2025/doctrackproj/blob/master/DocTrackProj/Models/EmailVerification.cs): `DocTrackProj/Models/EmailVerification.cs`

### Runtime and messaging

- [MVC application](https://github.com/kfxcore2025/doctrackproj/blob/master/DocTrackProj/Program.cs): `DocTrackProj/Program.cs`
- [Data context](https://github.com/kfxcore2025/doctrackproj/blob/master/DocTrackProj/Data/ApplicationDBContext.cs): `DocTrackProj/Data/ApplicationDBContext.cs`
- **SQL Server database**
- [OTP email sender](https://github.com/kfxcore2025/doctrackproj/blob/master/DocTrackProj/Services/EmailService.cs): `DocTrackProj/Services/EmailService.cs`

### Other components

- **User or admin**
- **SMTP server**

## Connections

- User or admin → MVC application: uses (evidence: `DocTrackProj/Program.cs`)
- MVC application → Sign-in and registration: routes to (evidence: `DocTrackProj/Program.cs`)
- MVC application → Data context: configures (evidence: `DocTrackProj/Program.cs`)
- MVC application → OTP email sender: registers (evidence: `DocTrackProj/Program.cs`)
- Sign-in and registration → Data context: queries and updates (evidence: `DocTrackProj/Controllers/AccountController.cs`)
- Sign-in and registration → Login view model: binds (evidence: `DocTrackProj/Controllers/AccountController.cs`)
- Sign-in and registration → User account: checks and creates (evidence: `DocTrackProj/Controllers/AccountController.cs`)
- Office document workflow → Data context: queries and saves (evidence: `DocTrackProj/Controllers/UserController.cs`)
- Office document workflow → User document: creates and updates (evidence: `DocTrackProj/Controllers/UserController.cs`)
- Office document workflow → Admin document: mirrors submission (evidence: `DocTrackProj/Controllers/UserController.cs`)
- Admin operations → Data context: queries and saves (evidence: `DocTrackProj/Controllers/AdminController.cs`)
- Admin operations → Admin document: receives and records (evidence: `DocTrackProj/Controllers/AdminController.cs`)
- Admin operations → User document: creates transfer record (evidence: `DocTrackProj/Controllers/AdminController.cs`)
- Admin operations → User account: manages accounts (evidence: `DocTrackProj/Controllers/AdminController.cs`)
- Data context → SQL Server database: reads and writes
- Data context → User account: maps entity (evidence: `DocTrackProj/Data/ApplicationDBContext.cs`)
- Data context → Office: maps entity (evidence: `DocTrackProj/Data/ApplicationDBContext.cs`)
- Data context → Document model: maps entity (evidence: `DocTrackProj/Data/ApplicationDBContext.cs`)
- Data context → User document: maps entity (evidence: `DocTrackProj/Data/ApplicationDBContext.cs`)
- Data context → Admin document: maps entity (evidence: `DocTrackProj/Data/ApplicationDBContext.cs`)
- Data context → Email verification record: maps entity (evidence: `DocTrackProj/Data/ApplicationDBContext.cs`)
- OTP email sender → SMTP server: sends mail (evidence: `DocTrackProj/Services/EmailService.cs`)
- Admin operations → Manage view model: uses model (evidence: `DocTrackProj/Controllers/AdminController.cs`)
- Admin operations → Admin dashboard model: uses model
- MVC application → Error view model: uses for errors
