Windows Desktop Application β .NET | SQL Server
π₯ System Demo (LinkedIn) : [LinkedIn Video Link]
The DVLD Management System is a full-scale Windows Desktop Application that simulates real-world operations of a Driving License & Vehicle Department.
The system is designed as a production-level administrative application, focusing on:
- Clean and scalable architecture
- Strong separation of concerns
- Robust validation and data integrity
- Maintainability and long-term scalability
This is not a simple CRUD project.
It represents a real governmental-style desktop system with complex workflows and strict business rules.
Many desktop applications suffer from:
- Mixing UI logic with business logic and database access
- Weak validation and poor error handling
- Difficult maintenance and scalability
- Lack of workflow control and traceability
- Absence of logging and monitoring
This project was built to solve these problems by applying proper layered architecture and clean software engineering principles from the ground up.
flowchart TB
UI[Presentation Layer<br/>Windows Forms]
BL[Business Layer<br/>Rules β’ Validation β’ Workflows]
DAL[Data Access Layer<br/>ADO.NET β’ Transactions]
DB[(SQL Server)]
UI --> BL
BL --> DAL
DAL --> DB
- Windows Forms user interface
- Handles user interaction and input only
- No business logic
- No direct database access
- Core business rules
- Centralized validation logic
- License lifecycle management
- Application and workflow processing
- SQL Server access using ADO.NET
- Parameterized queries
- Transaction-based operations (Commit / Rollback)
- Secure and centralized data handling
DVLD/
β
βββ PresentationLayer/
β β
β βββ Applications/
β β βββ Application Types/
β β β βββ frmEditApplicationType.cs
β β β βββ frmListApplicationTypes.cs
β β β
β β βββ Controllers/
β β β βββ ctrlApplicationBasicInfo.cs
β β β βββ ctrlDrivingLicenseApplicationInfo.cs
β β β
β β βββ Local Driving License/
β β β βββ frmAddUpdateLocalDrivingLicenseApplication.cs
β β β βββ frmListLocalDrivingLicenseApplications.cs
β β β βββ frmLocalDrivingLicenseApplicationInfo.cs
β β β βββ frmRenewLocalDrivingLicenseApplication.cs
β β β βββ frmReplaceLostOrDamagedLicenseApplication.cs
β β β
β β βββ International License/
β β βββ frmListInternationalLicenseApplications.cs
β β βββ frmNewInternationalLicenseApplication.cs
β β
β βββ Drivers/
β β βββ frmListDrivers.cs
β β
β βββ Global Classes/
β β βββ clsGlobal.cs
β β βββ clsValidation.cs
β β
β βββ Licenses/
β β βββ Controllers/
β β β βββ ctrlDriverInternationalLicenseInfo.cs
β β β βββ ctrlDriverLicenseInfo.cs
β β β βββ ctrlDriverLicenseInfoWithFilter.cs
β β β βββ ctrlDriverLicenses.cs
β β β
β β βββ Detain License/
β β β βββ frmDetainLicenseApplication.cs
β β β βββ frmListDetainedLicenses.cs
β β β βββ frmReleaseDetainedLicenseApplication.cs
β β β
β β βββ Local Licenses/
β β βββ frmShowLicenseInfo.cs
β β βββ frmIssueDriverLicenseFirstTime.cs
β β βββ frmShowInternationalLicenseInfo.cs
β β βββ frmShowPersonLicenseHistory.cs
β β
β βββ Login/
β β βββ frmLogin.cs
β β
β βββ People/
β β βββ UserControllers/
β β β βββ ctrlPersonCardWithFilter.cs
β β β βββ ctrlShowPersonInfo.cs
β β βββ FrmAddUpdateNewPerson.cs
β β βββ frmFindPerson.cs
β β βββ FrmManagePeople.cs
β β βββ FrmShowPersonDetails.cs
β β
β βββ Tests/
β β βββ Controllers/
β β β βββ ctrlScheduleTest.cs
β β β βββ ctrlScheduledTest.cs
β β β
β β βββ Test Types/
β β β βββ frmEditTestType.cs
β β β βββ frmListTestTypes.cs
β β β
β β βββ frmListTestAppointments.cs
β β βββ frmScheduleTest.cs
β β βββ frmTakeTest.cs
β β
β βββ Users/
β β βββ ctrlUserCard.cs
β β βββ frmAddUpdateUser.cs
β β βββ frmChangePassword.cs
β β βββ frmListUsers.cs
β β βββ frmUserInfo.cs
β β
β βββ FrmMain.cs
β βββ Program.cs
β βββ App.config
β βββ app.manifest
β
βββ BusinessLayer/
β βββ clsApplication.cs
β βββ clsApplicationType.cs
β βββ clsCountry.cs
β βββ clsDetainedLicense.cs
β βββ clsDriver.cs
β βββ clsGlobalBusiness.cs
β βββ clsInternationalLicense.cs
β βββ clsLicense.cs
β βββ clsLicenseClass.cs
β βββ clsLocalDrivingLicenseApplication.cs
β βββ clsLogger.cs
β βββ clsPerson.cs
β βββ clsTest.cs
β βββ clsTestAppointment.cs
β βββ clsTestType.cs
β βββ clsUser.cs
β
βββ DataAccessLayer/
βββ clsApplicationData.cs
βββ clsApplicationTypeData.cs
βββ clsCountryData.cs
βββ clsDataAccessSettings.cs
βββ clsDetainedLicenseData.cs
βββ clsDriverData.cs
βββ clsInternationalLicenseData.cs
βββ clsLicenseClassData.cs
βββ clsLicenseData.cs
βββ clsLocalDrivingLicenseApplicationData.cs
βββ clsLoggerData.cs
βββ clsPersonData.cs
βββ clsTestAppointmentData.cs
βββ clsTestData.cs
βββ clsTestTypeData.cs
βββ clsUserData.cs
- Clean Code principles
- Separation of Concerns
- Single Responsibility Principle (SRP)
- Reusable and maintainable components
- Clear and readable structure
- SQL Injection prevention using parameterized queries
- SQL Server transactions (Commit / Rollback)
- Centralized validation across layers
- Secure handling of sensitive data
- People & Drivers Management
- Local & International License Management
- First-time License Issuing
- License Renewal & Replacement
- Detained License Handling (Detain / Release)
- Driving Tests Scheduling and Execution
- Application workflow tracking
- Centralized Validation & Logging
- Windows Event Logger integration
- Error, warning, and activity logging
- Improved debugging, auditing, and reliability
- Windows Forms UI
- Windows Registry for application configuration
- Desktop shortcut support
- Native Windows Event Log usage
- C# (.NET)
- Windows Forms
- ADO.NET
- Microsoft SQL Server
- SQL Server Management Studio (SSMS)
- Visual Studio 2022
- Git & GitHub
- Windows Operating System
- Visual Studio 2022
- .NET Framework / .NET (based on project version)
- Microsoft SQL Server
- SQL Server Management Studio (SSMS)
- Create a new SQL Server database (e.g.
DVLD_DB) - Execute the provided SQL scripts
- Verify tables and relationships
- Open the solution in Visual Studio
- Update the connection string in
App.config - Configure SQL Server credentials
- Build the solution
- Run the application from Visual Studio or the generated executable
To demonstrate how to build a professional, secure, and maintainable Windows desktop system using correct architecture and real-world workflows.
This project is not about writing code that only works,
but about building a system that is clean, secure, maintainable,
and ready for real production environments.