Skip to content

devasol/DLMS--Driving-license-management-system

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

46 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸš— DLMS - Driving License Management System

License: MIT Node.js React MongoDB

🌟 Live Demo

https://get-dlms.onrender.com/

Experience the future of driving license management with our comprehensive, interactive, and responsive platform. πŸš€

πŸ“‹ Table of Contents

✨ Features

🏠 Modern Homepage

  • Interactive hero section with live statistics
  • Animated feature cards with hover effects
  • Responsive design for all devices
  • Dark/Light mode toggle

πŸ‘€ User Management

  • User registration and authentication
  • Email verification system
  • OTP verification
  • Profile management with photo upload
  • Multi-language support

πŸ“‹ License Management

  • License application process
  • Multiple license categories (Motorcycle, Automobile, Public Transport, Trucks, etc.)
  • License renewal system
  • Digital license generation with QR codes
  • License verification system

πŸ“š Exam Management

  • Theory exam system
  • Practical exam scheduling
  • Exam result management
  • Trial exam functionality
  • Online practice tests

πŸ’³ Payment Integration

  • Secure payment processing
  • Multiple payment methods
  • Payment tracking and history
  • Receipt generation

πŸ”” Notification System

  • Real-time notifications
  • Email notifications
  • In-app notification center
  • Activity logging

πŸ› οΈ Admin Dashboard

  • User management
  • Application review system
  • Exam management
  • Payment management
  • News and announcements
  • Report generation
  • Violation tracking

πŸ‘¨β€πŸ« Examiner Portal

  • Exam conduct system
  • Result entry
  • Schedule management
  • Performance tracking

🚨 Traffic Police Dashboard

  • License verification
  • Violation reporting
  • Case management
  • Real-time data access

πŸ“° News & Updates

  • News management system
  • Featured articles
  • Category-based news
  • Responsive news display

πŸ› οΈ Tech Stack

Frontend

  • React 18 - Modern JavaScript library for building user interfaces
  • Material-UI (MUI) - Comprehensive component library
  • React Router - Declarative routing solution
  • Framer Motion - Production-ready animation library
  • Axios - Promise-based HTTP client
  • Tailwind CSS - Utility-first CSS framework

Backend

  • Node.js - JavaScript runtime environment
  • Express.js - Web application framework
  • MongoDB - NoSQL database with Atlas cloud hosting
  • Mongoose - MongoDB object modeling
  • JWT - Token-based authentication
  • bcryptjs - Password hashing
  • Nodemailer - Email service
  • Multer - File upload handling

Tools & Libraries

  • Vite - Next-generation frontend tooling
  • ESLint - JavaScript linter
  • Prettier - Code formatter
  • Render - Cloud hosting platform

πŸš€ Installation

Prerequisites

  • Node.js (v18 or higher)
  • MongoDB (local instance or Atlas account)
  • Git

Backend Setup

  1. Clone the repository
git clone https://github.com/yourusername/DLMS--Driving-license-management-system.git
cd DLMS--Driving-license-management-system
  1. Navigate to backend directory
cd backend
  1. Install backend dependencies
npm install
  1. Create environment file
cp .env.example .env
  1. Configure environment variables (see Environment Variables)

  2. Start the backend server

npm run dev

Frontend Setup

  1. Navigate to frontend directory
cd frontend
  1. Install frontend dependencies
npm install
  1. Create environment file
cp .env.example .env
  1. Start the development server
npm run dev

πŸ“– Usage

Development Mode

  • Backend runs on http://localhost:5004
  • Frontend runs on http://localhost:5173
  • API endpoints are prefixed with /api

Production Mode

  • Build frontend: npm run build in frontend directory
  • Start backend: npm start in backend directory
  • Access the application at the configured domain

🌐 API Endpoints

Authentication

  • POST /api/auth/register - User registration
  • POST /api/auth/login - User login
  • POST /api/auth/verify-otp - OTP verification
  • POST /api/auth/admin/login - Admin login

Users

  • GET /api/users/profile - Get user profile
  • PUT /api/users/profile - Update user profile
  • POST /api/users/upload-profile - Upload profile picture

Licenses

  • POST /api/license/apply - Apply for license
  • GET /api/license/:licenseNumber - Get license details
  • PUT /api/license/renew - Renew license
  • GET /api/license/verify/:licenseNumber - Verify license

Exams

  • GET /api/exams/schedule - Get exam schedule
  • POST /api/exams/apply - Apply for exam
  • GET /api/exams/results - Get exam results

Payments

  • POST /api/payments/create - Create payment
  • GET /api/payments/history - Get payment history
  • POST /api/payments/verify - Verify payment

Admin

  • GET /api/admin/dashboard - Admin dashboard data
  • GET /api/admin/users - Get all users
  • GET /api/admin/applications - Get license applications
  • GET /api/admin/reports - Generate reports

πŸ“ Project Structure

DLMS--Driving-license-management-system/
β”œβ”€β”€ backend/
β”‚   β”œβ”€β”€ config/
β”‚   β”‚   └── db.js              # Database configuration
β”‚   β”œβ”€β”€ controllers/           # Request handlers
β”‚   β”œβ”€β”€ middleware/            # Custom middleware
β”‚   β”œβ”€β”€ models/               # Database models
β”‚   β”œβ”€β”€ routes/               # API route definitions
β”‚   β”œβ”€β”€ services/             # Business logic
β”‚   β”œβ”€β”€ utils/                # Utility functions
β”‚   β”œβ”€β”€ uploads/              # File uploads directory
β”‚   β”œβ”€β”€ .env                  # Environment variables
β”‚   β”œβ”€β”€ server.js             # Main server file
β”‚   └── package.json
β”œβ”€β”€ frontend/
β”‚   β”œβ”€β”€ public/               # Static assets
β”‚   β”œβ”€β”€ src/
β”‚   β”‚   β”œβ”€β”€ components/       # React components
β”‚   β”‚   β”œβ”€β”€ contexts/         # React contexts
β”‚   β”‚   β”œβ”€β”€ hooks/            # Custom hooks
β”‚   β”‚   β”œβ”€β”€ pages/            # Page components
β”‚   β”‚   β”œβ”€β”€ router/           # Routing configuration
β”‚   β”‚   β”œβ”€β”€ services/         # API services
β”‚   β”‚   β”œβ”€β”€ styles/           # CSS/SCSS files
β”‚   β”‚   β”œβ”€β”€ theme/            # MUI theme configuration
β”‚   β”‚   β”œβ”€β”€ utils/            # Utility functions
β”‚   β”‚   β”œβ”€β”€ App.jsx           # Main application component
β”‚   β”‚   └── main.jsx          # Application entry point
β”‚   β”œβ”€β”€ .env                  # Environment variables
β”‚   β”œβ”€β”€ package.json
β”‚   └── vite.config.mjs       # Vite configuration
β”œβ”€β”€ .gitignore
β”œβ”€β”€ README.md
└── LICENSE

πŸ”§ Environment Variables

Backend (.env)

# Server
PORT=5004
NODE_ENV=development

# Database
MONGODB_URI=mongodb+srv://<username>:<password>@<cluster-host>/<database>?retryWrites=true&w=majority

# JWT
JWT_SECRET=your_jwt_secret_key

# Email Configuration
EMAIL_SERVICE=gmail
EMAIL_USER=your_email@gmail.com
EMAIL_PASSWORD=your_app_password
SMTP_HOST=smtp.gmail.com
SMTP_PORT=587

# Frontend URL (for email verification links)
FRONTEND_URL=http://localhost:5173

Frontend (.env)

# API URL
VITE_API_URL=http://localhost:5004/api

🀝 Contributing

We welcome contributions to the DLMS project! Here's how you can help:

  1. Fork the repository
  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

Guidelines

  • Follow the existing code style
  • Write clear commit messages
  • Add tests if applicable
  • Update documentation as needed

πŸ“„ License

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

πŸ‘¨β€πŸ’» Author

Dawit S.

πŸ“ž Support

For support, please contact:

πŸ”„ Changelog

v1.1.0

  • βœ… Initial release
  • βœ… User authentication system
  • βœ… License application process
  • βœ… Exam management system
  • βœ… Payment integration
  • βœ… Admin dashboard
  • βœ… Responsive design
  • βœ… Multi-language support
  • βœ… Dark/Light mode
  • βœ… Codebase optimization and comment cleanup

v1.0.0

  • βœ… Initial release
  • βœ… User authentication system
  • βœ… License application process
  • βœ… Exam management system
  • βœ… Payment integration
  • βœ… Admin dashboard
  • βœ… Responsive design
  • βœ… Multi-language support
  • βœ… Dark/Light mode

🌟 Acknowledgments

  • Special thanks to the open-source community
  • Inspired by modern driving license systems worldwide
  • Built by Dawit S. for better user experience

⭐ Star this repo if you found it helpful! ⭐

Live Demo

About

A comprehensive digital platform for managing driving license applications, renewals, examinations, and verifications. Features include user authentication, license management, exam scheduling, payment processing, admin dashboards, and traffic police integration. Built with React, Node.js, and MongoDB for a seamless user experience.

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors