# abdelrahmantaymour/dvld architecture

> Architecture diagram of the GitHub repository abdelrahmantaymour/dvld, 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/abdelrahmantaymour/dvld
- Repository: https://github.com/abdelrahmantaymour/dvld

## Overview

DVLD is a Windows Forms, three-tier driver-licensing administration system. Staff sign in, manage people and applications, progress local-license applicants through vision, theory and practical tests, then issue and manage licenses. Other service branches cover renewals, replacements, detained-license release and international licenses; administration includes users, roles, license categories and test settings. The graph reflects documented capabilities and sampled calls; several listed subsystems were not excerpted, so their internal links are intentionally omitted.

Main entry points: [`DVLD_Business/clsLicense.cs`](https://github.com/abdelrahmantaymour/dvld/blob/main/DVLD_Business/clsLicense.cs) (License domain), [`DVLD/Applications/Local Driving License/frmListLocalDrivingLicesnseApplications.cs`](https://github.com/abdelrahmantaymour/dvld/blob/main/DVLD/Applications/Local%20Driving%20License/frmListLocalDrivingLicesnseApplications.cs) (Local applications), [`DVLD/Applications`](https://github.com/abdelrahmantaymour/dvld/tree/main/DVLD/Applications) (Other license services), [`DVLD/Login/frmLogin.cs`](https://github.com/abdelrahmantaymour/dvld/blob/main/DVLD/Login/frmLogin.cs) (Login)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_ui["WinForms interface"]
  node_entry["Application entry<br/>[Program.cs]"]
  node_login["Login<br/>[frmLogin.cs]"]
  node_main["Admin dashboard<br/>[frmMainForm.cs]"]
  node_peopleui["People records"]
  node_applicationsui["Local applications"]
  node_testui["Test appointments"]
  node_licenseui["License operations"]
  node_otherui["Other license services"]
end

subgraph group_domain["Licensing services"]
  node_people["Person domain<br/>[clsPerson.cs]"]
  node_application["Application domain<br/>[clsApplication.cs]"]
  node_localapp["Local-license application"]
  node_tests["Tests and appointments"]
  node_license["License domain<br/>[clsLicense.cs]"]
  node_international["International licenses"]
  node_detained["Detained licenses"]
end

subgraph group_data["Persistence layer"]
  node_persondata["People data access<br/>[clsPersonData.cs]"]
  node_applicationdata["Application data access"]
  node_localdata["Local application data"]
  node_licensedata["License data access<br/>[clsLicenseData.cs]"]
  node_userdata["User data access<br/>[clsUserData.cs]"]
end

subgraph group_admin["Administration"]
  node_users["User and roles<br/>[clsUser.cs]"]
  node_categories["License categories<br/>[clsLicenseClass.cs]"]
  node_testtypes["Test settings<br/>[clsTestType.cs]"]
end

node_staff(("Staff user"))
node_sql[("SQL Server")]

node_staff -->|"starts"| node_entry
node_entry -->|"opens"| node_login
node_login -->|"authenticates"| node_users
node_login -->|"routes admin"| node_main
node_peopleui -.->|"saves person"| node_people
node_people -.->|"persists records"| node_persondata
node_applicationsui -->|"manages requests"| node_localapp
node_applicationsui -->|"opens appointments"| node_testui
node_testui -.->|"records outcomes"| node_tests
node_applicationsui -->|"issues license"| node_licenseui
node_licenseui -.->|"creates license"| node_license
node_localapp -.->|"uses application"| node_application
node_license -->|"creates renewal application"| node_application
node_license -->|"writes license"| node_licensedata
node_otherui -.->|"requests issuance"| node_international
node_otherui -.->|"releases license"| node_detained
node_otherui -.->|"renews or replaces"| node_license
node_users -.->|"persists accounts"| node_userdata
node_persondata -.->|"queries"| node_sql
node_applicationdata -.->|"queries"| node_sql
node_localdata -.->|"queries"| node_sql
node_licensedata -.->|"queries"| node_sql
node_userdata -.->|"queries"| node_sql

click node_entry "https://github.com/abdelrahmantaymour/dvld/blob/main/DVLD/Program.cs"
click node_login "https://github.com/abdelrahmantaymour/dvld/blob/main/DVLD/Login/frmLogin.cs"
click node_main "https://github.com/abdelrahmantaymour/dvld/blob/main/DVLD/frmMainForm.cs"
click node_peopleui "https://github.com/abdelrahmantaymour/dvld/blob/main/DVLD/People/frmAddUpdatePersonInfo.cs"
click node_applicationsui "https://github.com/abdelrahmantaymour/dvld/blob/main/DVLD/Applications/Local%20Driving%20License/frmListLocalDrivingLicesnseApplications.cs"
click node_testui "https://github.com/abdelrahmantaymour/dvld/blob/main/DVLD/Applications/Local%20Driving%20License/frmListLocalDrivingLicesnseApplications.cs"
click node_licenseui "https://github.com/abdelrahmantaymour/dvld/blob/main/DVLD/Licenses/Local%20Licenses/frmIssueDriverLicenseFirstTime.cs"
click node_otherui "https://github.com/abdelrahmantaymour/dvld/tree/main/DVLD/Applications"
click node_people "https://github.com/abdelrahmantaymour/dvld/blob/main/DVLD_Business/clsPerson.cs"
click node_application "https://github.com/abdelrahmantaymour/dvld/blob/main/DVLD_Business/clsApplication.cs"
click node_localapp "https://github.com/abdelrahmantaymour/dvld/blob/main/DVLD_Business/clsLocalDrivingLicenseApplication.cs"
click node_tests "https://github.com/abdelrahmantaymour/dvld/blob/main/DVLD_Business/clsTestAppointment.cs"
click node_license "https://github.com/abdelrahmantaymour/dvld/blob/main/DVLD_Business/clsLicense.cs"
click node_international "https://github.com/abdelrahmantaymour/dvld/blob/main/DVLD_Business/clsInternationalLicense.cs"
click node_detained "https://github.com/abdelrahmantaymour/dvld/blob/main/DVLD_Business/clsDetainedLicense.cs"
click node_users "https://github.com/abdelrahmantaymour/dvld/blob/main/DVLD_Business/clsUser.cs"
click node_categories "https://github.com/abdelrahmantaymour/dvld/blob/main/DVLD_Business/clsLicenseClass.cs"
click node_testtypes "https://github.com/abdelrahmantaymour/dvld/blob/main/DVLD_Business/clsTestType.cs"
click node_persondata "https://github.com/abdelrahmantaymour/dvld/blob/main/DVLD_DataAccess/clsPersonData.cs"
click node_applicationdata "https://github.com/abdelrahmantaymour/dvld/blob/main/DVLD_DataAccess/clsApplicationData.cs"
click node_localdata "https://github.com/abdelrahmantaymour/dvld/blob/main/DVLD_DataAccess/clsLocalDrivingLicenseApplicationData.cs"
click node_licensedata "https://github.com/abdelrahmantaymour/dvld/blob/main/DVLD_DataAccess/clsLicenseData.cs"
click node_userdata "https://github.com/abdelrahmantaymour/dvld/blob/main/DVLD_DataAccess/clsUserData.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_entry,node_login,node_main,node_peopleui,node_applicationsui,node_testui,node_licenseui,node_otherui,node_staff toneBlue
class node_people,node_application,node_localapp,node_tests,node_license,node_international,node_detained,node_sql toneAmber
class node_persondata,node_applicationdata,node_localdata,node_licensedata,node_userdata toneMint
class node_users,node_categories,node_testtypes toneRose
```

## Components

### WinForms interface

- [Application entry](https://github.com/abdelrahmantaymour/dvld/blob/main/DVLD/Program.cs): `DVLD/Program.cs`
- [Login](https://github.com/abdelrahmantaymour/dvld/blob/main/DVLD/Login/frmLogin.cs): `DVLD/Login/frmLogin.cs`
- [Admin dashboard](https://github.com/abdelrahmantaymour/dvld/blob/main/DVLD/frmMainForm.cs): `DVLD/frmMainForm.cs`
- [People records](https://github.com/abdelrahmantaymour/dvld/blob/main/DVLD/People/frmAddUpdatePersonInfo.cs): `DVLD/People/frmAddUpdatePersonInfo.cs`
- [Local applications](https://github.com/abdelrahmantaymour/dvld/blob/main/DVLD/Applications/Local%20Driving%20License/frmListLocalDrivingLicesnseApplications.cs): `DVLD/Applications/Local Driving License/frmListLocalDrivingLicesnseApplications.cs`
- [Test appointments](https://github.com/abdelrahmantaymour/dvld/blob/main/DVLD/Applications/Local%20Driving%20License/frmListLocalDrivingLicesnseApplications.cs): `DVLD/Applications/Local Driving License/frmListLocalDrivingLicesnseApplications.cs`
- [License operations](https://github.com/abdelrahmantaymour/dvld/blob/main/DVLD/Licenses/Local%20Licenses/frmIssueDriverLicenseFirstTime.cs): `DVLD/Licenses/Local Licenses/frmIssueDriverLicenseFirstTime.cs`
- [Other license services](https://github.com/abdelrahmantaymour/dvld/tree/main/DVLD/Applications): `DVLD/Applications`

### Licensing services

- [Person domain](https://github.com/abdelrahmantaymour/dvld/blob/main/DVLD_Business/clsPerson.cs): `DVLD_Business/clsPerson.cs`
- [Application domain](https://github.com/abdelrahmantaymour/dvld/blob/main/DVLD_Business/clsApplication.cs): `DVLD_Business/clsApplication.cs`
- [Local-license application](https://github.com/abdelrahmantaymour/dvld/blob/main/DVLD_Business/clsLocalDrivingLicenseApplication.cs): `DVLD_Business/clsLocalDrivingLicenseApplication.cs`
- [Tests and appointments](https://github.com/abdelrahmantaymour/dvld/blob/main/DVLD_Business/clsTestAppointment.cs): `DVLD_Business/clsTestAppointment.cs`
- [License domain](https://github.com/abdelrahmantaymour/dvld/blob/main/DVLD_Business/clsLicense.cs): `DVLD_Business/clsLicense.cs`
- [International licenses](https://github.com/abdelrahmantaymour/dvld/blob/main/DVLD_Business/clsInternationalLicense.cs): `DVLD_Business/clsInternationalLicense.cs`
- [Detained licenses](https://github.com/abdelrahmantaymour/dvld/blob/main/DVLD_Business/clsDetainedLicense.cs): `DVLD_Business/clsDetainedLicense.cs`

### Persistence layer

- [People data access](https://github.com/abdelrahmantaymour/dvld/blob/main/DVLD_DataAccess/clsPersonData.cs): `DVLD_DataAccess/clsPersonData.cs`
- [Application data access](https://github.com/abdelrahmantaymour/dvld/blob/main/DVLD_DataAccess/clsApplicationData.cs): `DVLD_DataAccess/clsApplicationData.cs`
- [Local application data](https://github.com/abdelrahmantaymour/dvld/blob/main/DVLD_DataAccess/clsLocalDrivingLicenseApplicationData.cs): `DVLD_DataAccess/clsLocalDrivingLicenseApplicationData.cs`
- [License data access](https://github.com/abdelrahmantaymour/dvld/blob/main/DVLD_DataAccess/clsLicenseData.cs): `DVLD_DataAccess/clsLicenseData.cs`
- [User data access](https://github.com/abdelrahmantaymour/dvld/blob/main/DVLD_DataAccess/clsUserData.cs): `DVLD_DataAccess/clsUserData.cs`

### Administration

- [User and roles](https://github.com/abdelrahmantaymour/dvld/blob/main/DVLD_Business/clsUser.cs): `DVLD_Business/clsUser.cs`
- [License categories](https://github.com/abdelrahmantaymour/dvld/blob/main/DVLD_Business/clsLicenseClass.cs): `DVLD_Business/clsLicenseClass.cs`
- [Test settings](https://github.com/abdelrahmantaymour/dvld/blob/main/DVLD_Business/clsTestType.cs): `DVLD_Business/clsTestType.cs`

### Other components

- **Staff user**
- **SQL Server**

## Connections

- Staff user → Application entry: starts (evidence: `DVLD/Program.cs`)
- Application entry → Login: opens (evidence: `DVLD/Program.cs`)
- Login → User and roles: authenticates (evidence: `DVLD/Login/frmLogin.cs`)
- Login → Admin dashboard: routes admin (evidence: `DVLD/Login/frmLogin.cs`)
- People records → Person domain: saves person
- Person domain → People data access: persists records
- Local applications → Local-license application: manages requests (evidence: `DVLD/Applications/Local Driving License/frmListLocalDrivingLicesnseApplications.cs`)
- Local applications → Test appointments: opens appointments (evidence: `DVLD/Applications/Local Driving License/frmListLocalDrivingLicesnseApplications.cs`)
- Test appointments → Tests and appointments: records outcomes
- Local applications → License operations: issues license (evidence: `DVLD/Applications/Local Driving License/frmListLocalDrivingLicesnseApplications.cs`)
- License operations → License domain: creates license
- Local-license application → Application domain: uses application
- License domain → Application domain: creates renewal application (evidence: `DVLD_Business/clsLicense.cs`)
- License domain → License data access: writes license (evidence: `DVLD_Business/clsLicense.cs`)
- Other license services → International licenses: requests issuance
- Other license services → Detained licenses: releases license
- Other license services → License domain: renews or replaces
- User and roles → User data access: persists accounts
- People data access → SQL Server: queries
- Application data access → SQL Server: queries
- Local application data → SQL Server: queries
- License data access → SQL Server: queries
- User data access → SQL Server: queries
