Skip to content

ridabouakaz/Project-Driving-License-Management

Repository files navigation

πŸš— Driving License Management System (DVLD)

A comprehensive Windows desktop application for managing driving license issuance, renewals, and international permits. Built with C# .NET and SQL Server.

C# .NET SQL Server Windows Forms

πŸ“‹ Table of Contents

✨ Features

πŸ‘₯ People Management

  • Complete person registration with personal details
  • Person search and filtering capabilities
  • Personal information updates and management
  • Photo storage and management

πŸͺͺ License Management

  • Local Licenses: New issuance, renewals, replacements
  • International Licenses: International driving permit processing
  • License detention and release management
  • License classes and categories management

πŸ“ Application Processing

  • Local Driving License Applications
  • International License Applications
  • License Renewal Applications
  • Replace Lost/Damaged License Applications
  • Release Detained License Applications

πŸ§ͺ Tests Management

  • Driving test types configuration
  • Test appointments scheduling
  • Test results management
  • Test fees calculation

πŸ‘€ Driver Management

  • Driver record creation and maintenance
  • License history tracking
  • Driver status monitoring

πŸ” User Management

  • User accounts management
  • Role-based access control
  • User permissions configuration
  • Authentication and authorization

πŸ“ Complete Project Structure

DVLD/
β”œβ”€β”€ πŸ“‚ DVLD-BusinessLayer/                 # Business Logic Layer
β”‚   β”œβ”€β”€ clsPerson.cs                       # Person entity management
β”‚   β”œβ”€β”€ clsLicense.cs                      # License operations
β”‚   β”œβ”€β”€ clsApplication.cs                  # Application processing
β”‚   β”œβ”€β”€ clsDriver.cs                       # Driver management
β”‚   β”œβ”€β”€ clsUser.cs                         # User authentication
β”‚   β”œβ”€β”€ clsInternationalLicense.cs         # International licenses
β”‚   └── clsTest.cs                         # Test management
β”‚
β”œβ”€β”€ πŸ“‚ DVLD-DataAccessLayer/               # Data Access Layer
β”‚   β”œβ”€β”€ clsDataAccess.cs                   # Database connection wrapper
β”‚   β”œβ”€β”€ clsDataAccessSettings.cs           # Connection configuration
β”‚   └── StoredProcedures/                  # SQL stored procedures
β”‚
β”œβ”€β”€ πŸ“‚ DVLD-PresentationLayer/             # Presentation Layer
β”‚   β”œβ”€β”€ πŸ“‚ Applications/                   # Application Management
β”‚   β”‚   β”œβ”€β”€ πŸ“‚ Control/                    # Application controls
β”‚   β”‚   β”œβ”€β”€ πŸ“‚ International License/      # International license apps
β”‚   β”‚   β”œβ”€β”€ πŸ“‚ Local Driving License/      # Local license applications
β”‚   β”‚   β”œβ”€β”€ πŸ“‚ Renew Local License/        # License renewal apps
β”‚   β”‚   β”œβ”€β”€ πŸ“‚ ReplaceLostOrDamagedLicense/ # Replacement applications
β”‚   β”‚   └── πŸ“‚ Release Detained License/   # License release apps
β”‚   β”‚
β”‚   β”œβ”€β”€ πŸ“‚ ApplicationTypes/               # Application types management
β”‚   β”‚
β”‚   β”œβ”€β”€ πŸ“‚ Drivers/                        # Driver management
β”‚   β”‚   β”œβ”€β”€ Driver registration forms
β”‚   β”‚   └── Driver history views
β”‚   β”‚
β”‚   β”œβ”€β”€ πŸ“‚ Licenses/                       # License Management
β”‚   β”‚   β”œβ”€β”€ πŸ“‚ Control/                    # License controls
β”‚   β”‚   β”œβ”€β”€ πŸ“‚ Detain License/             # License detention
β”‚   β”‚   β”œβ”€β”€ πŸ“‚ International Licenses/     # International licenses
β”‚   β”‚   └── πŸ“‚ Local Licenses/             # Local licenses management
β”‚   β”‚
β”‚   β”œβ”€β”€ πŸ“‚ Main/                           # Main application forms
β”‚   β”‚   β”œβ”€β”€ Main dashboard
β”‚   β”‚   β”œβ”€β”€ Login forms
β”‚   β”‚   └── Navigation
β”‚   β”‚
β”‚   β”œβ”€β”€ πŸ“‚ People/                         # People Management
β”‚   β”‚   β”œβ”€β”€ πŸ“‚ Control/                    # Person controls
β”‚   β”‚   β”œβ”€β”€ Person registration forms
β”‚   β”‚   └── Person search and edit forms
β”‚   β”‚
β”‚   β”œβ”€β”€ πŸ“‚ Tests/                          # Tests Management
β”‚   β”‚   β”œβ”€β”€ πŸ“‚ TestTypes/                  # Test types configuration
β”‚   β”‚   β”œβ”€β”€ Test scheduling forms
β”‚   β”‚   └── Test results entry forms
β”‚   β”‚
β”‚   β”œβ”€β”€ πŸ“‚ Users/                          # User Management
β”‚   β”‚   β”œβ”€β”€ πŸ“‚ Control/                    # User controls
β”‚   β”‚   β”œβ”€β”€ User registration forms
β”‚   β”‚   └── User permissions forms
β”‚   β”‚
β”‚   └── GlobalClasses.cs                   # Global utilities and helpers
β”‚
└── πŸ“‚ DatabaseScripts/                    # Database creation scripts

πŸ›  Technology Stack

Backend & Database

  • C# .NET Framework - Core application logic
  • SQL Server - Database management system
  • ADO.NET - Data access technology
  • Stored Procedures - Database operations

Frontend & UI

  • Windows Forms - Desktop application framework
  • Syncfusion Controls - Enhanced UI components
  • GDI+ - Custom graphics and reporting

Architecture

  • 3-Tier Architecture (Presentation, Business, Data Access)
  • Layered Architecture - Separation of concerns
  • Repository Pattern - Data access abstraction

πŸ“₯ Installation

Prerequisites

  • Windows 7/10/11
  • .NET Framework 4.8 or later
  • SQL Server 2012 or later
  • Visual Studio 2019 or later

Setup Instructions

  1. Clone the Repository

    git clone https://github.com/ridabouakaz/Project-Driving-License-Management.git
    cd Project-Driving-License-Management
  2. Database Configuration

    • Run the database creation scripts in DatabaseScripts/
    • Update connection string in clsDataAccessSettings.cs:
    public static string ConnectionString = "Server=.;Database=DVLD;User Id=sa;Password=your_password;";
  3. Build and Run

    • Open DVLD.sln in Visual Studio
    • Restore NuGet packages
    • Build solution (Ctrl + Shift + B)
    • Run application (F5)
  4. Default Login

    • Username: admin
    • Password: admin123

πŸ— Modules Overview

πŸ”Ή People Module

  • Person registration and management
  • Personal information storage
  • Search and filter functionality
  • Photo management

πŸ”Ή Applications Module

  • Local Driving License: New license applications
  • International License: International permit applications
  • Renew Local License: License renewal processing
  • Replace Lost/Damaged License: Replacement requests
  • Release Detained License: License release from detention

πŸ”Ή Licenses Module

  • Local licenses management
  • International licenses processing
  • License detention and release
  • License status tracking

πŸ”Ή Tests Module

  • Test types configuration
  • Test appointments management
  • Test results recording
  • Test fees management

πŸ”Ή Drivers Module

  • Driver registration
  • Driver history tracking
  • License association management

πŸ”Ή Users Module

  • User account management
  • Role-based permissions
  • Authentication system

πŸ—ƒ Database Schema

Core Tables

  • Persons - Personal information storage
  • Applications - All types of license applications
  • Licenses - Local driving licenses
  • InternationalLicenses - International driving permits
  • Drivers - Driver information
  • Users - System users
  • Tests - Driving test records
  • TestTypes - Test categories and configurations

πŸš€ Usage

For System Administrators

  • Manage all system modules
  • Configure application settings
  • Manage users and permissions
  • Generate comprehensive reports

For License Officers

  • Process license applications
  • Issue and renew licenses
  • Manage international permits
  • Handle license replacements

For Test Officers

  • Schedule driving tests
  • Record test results
  • Manage test appointments
  • Update test status

For End Users

  • Apply for new licenses
  • Renew existing licenses
  • Request international permits
  • Track application status

🀝 Contributing

We welcome contributions! Please follow these steps:

  1. Fork the project
  2. Create a feature branch (git checkout -b feature/AmazingFeature)
  3. Commit your changes (git commit -m 'Add some AmazingFeature')
  4. Push to the branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

Development Guidelines

  • Follow C# coding conventions
  • Use meaningful names for variables and methods
  • Add XML comments for public methods
  • Test all changes thoroughly

πŸ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.

πŸ“ž Support & Contact

πŸ™ Acknowledgments

  • Syncfusion for providing excellent UI components
  • Microsoft for .NET Framework and SQL Server
  • All contributors and testers

⭐ If you find this project useful, please give it a star!

About

A complete desktop application for managing driving license applications, testing, issuance, renewal, and driver records, built with C# (.NET Windows Forms) using a clean multi-layer architecture (UI + Business Layer + Data Access Layer).

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages