Skip to content

mnroptions/RTO-Management-System-RMS

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

100 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🚦 RTO Management System

Status Node.js React TypeScript PostgreSQL

🌐 A Modern Full-Stack Solution for Regional Transport Office Operations

Digitizing citizen services • Streamlining workflows • Empowering authorities


FeaturesTech StackInstallationAPI DocsContributing


✨ What is RTO Management System?

A comprehensive digital platform that transforms how Regional Transport Offices operate. From license applications to vehicle registrations, challans to appointments — everything managed through an intuitive, role-based system.

┌─────────────────────────────────────────────────────────────────┐
│                    🎯 KEY HIGHLIGHTS                            │
├─────────────────────────────────────────────────────────────────┤
│  🔐 Secure JWT Authentication    │  📊 Real-time Analytics     │
│  👥 Multi-Role Access Control    │  💳 Integrated Payments     │
│  📱 Responsive Modern UI         │  🔔 Smart Notifications     │
│  ⚡ Lightning Fast Performance   │  🛡️ Enterprise Security     │
└─────────────────────────────────────────────────────────────────┘

👥 User Roles & Capabilities

👤 Citizen

Self-Service Portal

👮 Police

Enforcement Tools

🏢 RTO Officer

Processing Hub

🛡️ Admin

System Control

  • Apply for DL
  • Register vehicles
  • View challans
  • Book appointments
  • Track applications
  • Make payments
  • Issue challans
  • Verify licenses
  • Check vehicle info
  • Update violations
  • Access reports
  • Approve/reject DL
  • Process registrations
  • Issue licenses
  • Schedule tests
  • Monitor queues
  • Manage users
  • Assign roles
  • View analytics
  • System config
  • Audit logs

🛠️ Tech Stack

Backend

Node.js Express TypeScript PostgreSQL JWT

Frontend

React Vite TailwindCSS Shadcn


🎯 Features

✅ Implemented 🚧 Coming Soon
🔐 JWT Authentication 📧 Email Notifications
👥 Role-Based Access (6 Roles) 📱 SMS Alerts
🪪 DL Application & Management 📊 Advanced Analytics
🚗 Vehicle Registration 📄 Document Verification
🎫 Challan Management 🤖 AI-Powered Insights
📅 Appointment Booking 🌐 Multi-language Support
💳 Payment Processing
🔔 Notifications System
📈 Analytics Dashboard
🏢 RTO Office Management

🚀 Quick Start

Prerequisites

Node.js 18+  •  PostgreSQL 15+  •  npm/yarn

⚡ One-Minute Setup

📦 Backend Setup
# Navigate to backend
cd backend

# Install dependencies
npm install

# Configure environment
cp .env.example .env
# Edit .env with your database credentials
# Required Environment Variables
# Create a .env file in the backend directory with:
# - PORT=5000
# - DATABASE_URL=postgresql://user:pass@host:port/dbname
# - JWT_SECRET=your_jwt_secret
# - JWT_REFRESH_SECRET=your_refresh_secret
# - EMAIL_HOST=smtp.gmail.com (or other provider)
# - EMAIL_USER=your_email@gmail.com
# - EMAIL_PASSWORD=your_app_password

# Run database setup
psql -U postgres -f database_setup.sql

# Start development server
npm run dev

🟢 Backend runs at http://localhost:5000

🎨 Frontend Setup
# Navigate to frontend
cd frontend

# Install dependencies
npm install

# Start development server
npm run dev

🟢 Frontend runs at http://localhost:5173


📝 Developer Notes

  • Ensure PostgreSQL service is running before starting the backend server.
  • Double-check .env variables to avoid database connection issues.
  • Run backend and frontend in separate terminals during development.
  • Use Node.js version 18 or above for best compatibility.

📁 Project Structure

📦 rto-management-system
├── 🔧 backend/
│   ├── 📂 src/
│   │   ├── 🎮 controllers/     # Request handlers
│   │   ├── 📊 models/          # Database models
│   │   ├── 🛣️ routes/          # API routes
│   │   ├── 🛡️ middlewares/     # Auth & validation
│   │   ├── 🔧 utils/           # Helper functions
│   │   ├── 💾 db.ts            # Database connection
│   │   └── 🚀 index.ts         # Entry point
│   └── 📋 package.json
│
├── 🎨 frontend/
│   ├── 📂 src/
│   │   ├── 🧩 components/      # Reusable UI components
│   │   ├── 🌐 contexts/        # React contexts
│   │   ├── 🪝 hooks/           # Custom hooks
│   │   ├── 📄 pages/           # Page components
│   │   ├── 🔌 services/        # API services
│   │   ├── 📝 types/           # TypeScript types
│   │   └── 📱 App.tsx          # Root component
│   └── 📋 package.json
│
└── 📖 README.md

🔌 API Endpoints

🔐 Authentication
Method Endpoint Description
POST /api/auth/register Register new user
POST /api/auth/login User login
POST /api/auth/logout User logout
POST /api/auth/forgot-password Password reset
👤 User Management
Method Endpoint Description
GET /api/users/profile Get user profile
PUT /api/users/profile Update profile
GET /api/users List all users (Admin)
🪪 Driving License
Method Endpoint Description
POST /api/dl-applications Apply for DL
GET /api/dl-applications View applications
PUT /api/dl-applications/:id/approve Approve DL
GET /api/driving-license View license
🚗 Vehicles
Method Endpoint Description
POST /api/vehicles Register vehicle
GET /api/vehicles List vehicles
GET /api/vehicles/:id Vehicle details
🎫 Challans
Method Endpoint Description
POST /api/challans Issue challan
GET /api/challans List challans
PUT /api/challans/:id/pay Pay challan

🔒 Security Features

Feature Description
🔐 JWT Tokens Secure authentication with access & refresh tokens
🛡️ RBAC Role-Based Access Control for 6 different user types
🔑 Bcrypt Industry-standard password hashing
🚫 Rate Limiting Protection against brute force attacks
Input Validation Comprehensive request validation
🔒 CORS Configured Cross-Origin Resource Sharing

🧪 Testing

# Import Postman collection from backend/postman_collection.json
# Refer to backend/API_TESTING_GUIDE.md for detailed instructions

🤝 Contributing

Contributions are welcome! Here's how you can help:

  1. 🍴 Fork the repository
  2. 🌿 Create a feature branch (git checkout -b feature/amazing-feature)
  3. 💾 Commit your changes (git commit -m 'Add amazing feature')
  4. 📤 Push to the branch (git push origin feature/amazing-feature)
  5. 🎉 Open a Pull Request

📄 License

This project is developed for educational and demonstration purposes.



⭐ If you found this project helpful, please give it a star!


Made with ❤️ and ☕

About

A comprehensive RTO Management System designed to digitize and automate Regional Transport Office operations such as Driving License management, Vehicle Registration, Appointments, Payments, Violations, and Reporting using Agile/Scrum methodology.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • TypeScript 94.6%
  • JavaScript 4.4%
  • Other 1.0%