🌐 A Modern Full-Stack Solution for Regional Transport Office Operations
Digitizing citizen services • Streamlining workflows • Empowering authorities
Features • Tech Stack • Installation • API Docs • Contributing
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 │
└─────────────────────────────────────────────────────────────────┘
|
Self-Service Portal |
Enforcement Tools |
Processing Hub |
System Control |
|
|
|
|
| ✅ 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 |
Node.js 18+ • PostgreSQL 15+ • npm/yarn📦 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
- Ensure PostgreSQL service is running before starting the backend server.
- Double-check
.envvariables to avoid database connection issues. - Run backend and frontend in separate terminals during development.
- Use Node.js version 18 or above for best compatibility.
📦 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
🔐 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 |
| 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 |
# Import Postman collection from backend/postman_collection.json
# Refer to backend/API_TESTING_GUIDE.md for detailed instructionsContributions are welcome! Here's how you can help:
- 🍴 Fork the repository
- 🌿 Create a feature branch (
git checkout -b feature/amazing-feature) - 💾 Commit your changes (
git commit -m 'Add amazing feature') - 📤 Push to the branch (
git push origin feature/amazing-feature) - 🎉 Open a Pull Request
This project is developed for educational and demonstration purposes.
⭐ If you found this project helpful, please give it a star!
Made with ❤️ and ☕