A Power Rangers themed Issue Tracking & Engineer Assignment System
A web-based issue management system where users (Rangers) can raise issues, admins can assign engineers, and engineers can track and resolve issues with SLA compliance. Each department is themed after Power Rangers colors (RED, BLUE, GREEN, YELLOW, PINK, BLACK).
- ๐ Authentication - JWT-based auth with role-based access (Ranger, Engineer, Admin)
- ๐ Issue Management - Create, view, update, delete issues with priority levels
- ๐ท Engineer Assignment - Admin assigns issues to engineers with workload balancing
- โฑ๏ธ SLA Timers - Automatic due date calculation with breach detection
- ๐ฌ Real-time Comments - Socket.io powered discussion on tickets
- ๐ Role-based Dashboards - Unique dashboards for each role with statistics
- ๐จ Department Theming - Dynamic Power Rangers color themes
- ๐ Real-time updates with Socket.io
- ๐ช Secure httpOnly cookie authentication
- ๐ Automatic token refresh (access: 15min, refresh: 7 days)
- ๐ฑ Fully responsive design
- ๐ก๏ธ Protected routes with role-based access control
- ๐พ Session persistence with Redux Persist
| Technology | Purpose |
|---|---|
| React 19 | UI Framework |
| Vite | Build Tool |
| Redux Toolkit | State Management |
| Redux Persist | Session Persistence |
| React Router v7 | Routing |
| Socket.io Client | Real-time Communication |
| Tailwind CSS v4 | Styling |
| Axios | HTTP Client |
| Recharts | Dashboard Charts |
| Technology | Purpose |
|---|---|
| Node.js | Runtime |
| Express | Web Framework |
| MongoDB + Mongoose | Database |
| Socket.io | Real-time Server |
| JWT | Authentication |
| bcryptjs | Password Hashing |
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ CLIENT (React) โ
โ โโโโโโโโโโโโ โโโโโโโโโโโโ โโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโโโ
โ โ Ranger โ โ Engineer โ โ Admin โ โ Profile Drawer โโ
โ โDashboard โ โDashboard โ โDashboard โ โ (All Roles) โโ
โ โโโโโโโโโโโโ โโโโโโโโโโโโ โโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโโโ
โ โ โ โ โ โ
โ โโโโโโโโโโโโโโดโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโ โ
โ โ โ
โ โโโโโโโโโโโโโโโดโโโโโโโโโโโโโโ โ
โ โ Redux Store + Persist โ โ
โ โ (Auth, Tickets, Comments) โ โ
โ โโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโ โ
โ โ โ
โ โโโโโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโ โ
โ โ Axios + Socket.io โ โ
โ โ (Auto token refresh interceptor) โ โ
โ โโโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ
โโโโโโโโโชโโโโโโโโ HTTP + WebSocket
โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ SERVER (Express) โ
โ โโโโโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโ โ
โ โ Express + Socket.io โ โ
โ โโโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโ โ
โ โ โ
โ โโโโโโโโโโโโโฌโโโโโโโโโโโโผโโโโโโโโโโโโฌโโโโโโโโโโโโ โ
โ โ โ โ โ โ โ
โ โโโโดโโโ โโโโดโโโ โโโโดโโโ โโโโดโโโ โโโโดโโโ โ
โ โAuth โ โTicketโ โUser โ โCommentโ โSLA โ โ
โ โRouteโ โRoute โ โRouteโ โRoute โ โLogicโ โ
โ โโโโฌโโโ โโโโฌโโโ โโโโฌโโโ โโโโฌโโโ โโโโฌโโโ โ
โ โ โ โ โ โ โ
โ โโโโโโโโโโโโดโโโโโโโโโโโดโโโโโโโโโโโดโโโโโโโโโโโ โ
โ โ โ
โ โโโโโโโโโโโโโดโโโโโโโโโโโโ โ
โ โ MongoDB (Mongoose) โ โ
โ โ Users, Tickets, Commentsโ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
| Method | Endpoint | Description |
|---|---|---|
| POST | /api/v1/user/signup |
Register new user |
| POST | /api/v1/user/login |
Login user |
| POST | /api/v1/user/logout |
Logout user |
| POST | /api/v1/user/refresh |
Refresh access token |
| GET | /api/v1/user/profile |
Get current user profile |
| Method | Endpoint | Description |
|---|---|---|
| GET | /api/v1/tickets |
Get all tickets (Admin) |
| GET | /api/v1/tickets/my-tickets |
Get user's tickets |
| GET | /api/v1/tickets/assigned |
Get engineer's assigned tickets |
| GET | /api/v1/tickets/:id |
Get single ticket |
| POST | /api/v1/tickets |
Create new ticket |
| PATCH | /api/v1/tickets/:id/status |
Update ticket status |
| PATCH | /api/v1/tickets/:id/assign |
Assign ticket to engineer |
| DELETE | /api/v1/tickets/:id |
Delete ticket |
| Method | Endpoint | Description |
|---|---|---|
| GET | /api/v1/tickets/:ticketId/comments |
Get all comments for ticket |
| POST | /api/v1/tickets/:ticketId/comments |
Add comment |
| PATCH | /api/v1/comments/:commentId |
Edit comment |
| DELETE | /api/v1/comments/:commentId |
Delete comment |
| Method | Endpoint | Description |
|---|---|---|
| GET | /api/v1/user/engineers |
Get all engineers with workload |
| GET | /api/v1/user/users |
Get all users |
| GET | /api/v1/user/dashboard-stats |
Get admin statistics |
- Node.js 18+
- MongoDB Atlas account (or local MongoDB)
- Git
git clone https://github.com/chetan-coder5486/IssueDesk-Engineer-Assignment-System.git
cd IssueDesk-Engineer-Assignment-Systemcd backend
npm installCreate .env file:
PORT=8000
MONGO_URI=mongodb+srv://your-connection-string
ACCESS_TOKEN_SECRET=your-access-secret-key
REFRESH_TOKEN_SECRET=your-refresh-secret-key
NODE_ENV=developmentStart backend:
npm run devcd frontend
npm installCreate .env file:
VITE_API_URL=http://localhost:8000Start frontend:
npm run dev- Frontend:
http://localhost:5173 - Backend:
http://localhost:8000
| Role | Permissions |
|---|---|
| RANGER | Create tickets, view own tickets, add comments |
| ENGINEER | View assigned tickets, update status, add comments |
| ADMIN | All permissions + assign engineers + view all users |
OPEN โ ASSIGNED โ IN_PROGRESS โ PENDING_PARTS โ RESOLVED โ CLOSED
| Status | Description |
|---|---|
| OPEN | Newly created, awaiting assignment |
| ASSIGNED | Assigned to engineer |
| IN_PROGRESS | Engineer working on it |
| PENDING_PARTS | Waiting for resources/info |
| RESOLVED | Issue fixed |
| CLOSED | Ticket closed |
| Priority | SLA Duration |
|---|---|
| CRITICAL | 4 hours |
| HIGH | 8 hours |
| MEDIUM | 24 hours |
| LOW | 72 hours |
SLA timers automatically calculate due dates and track breaches.
- โ JWT token expiration with automatic refresh
- โ API error responses with user-friendly messages
- โ Form validation on client and server
- โ Protected routes for unauthorized access
- โ Socket.io reconnection handling
- โ Session persistence across browser refreshes
- โ Workload balancing for engineer assignments
IssueDesk-Engineer-Assignment-System/
โโโ backend/
โ โโโ controllers/
โ โ โโโ user.controller.js
โ โ โโโ ticket.controller.js
โ โ โโโ comment.controller.js
โ โโโ models/
โ โ โโโ user.model.js
โ โ โโโ ticket.model.js
โ โ โโโ comment.model.js
โ โโโ routes/
โ โ โโโ user.route.js
โ โ โโโ ticket.route.js
โ โ โโโ comment.route.js
โ โโโ utils/
โ โ โโโ db.js
โ โโโ main.js
โ
โโโ frontend/
โ โโโ src/
โ โ โโโ components/
โ โ โ โโโ ProtectedRoute.jsx
โ โ โ โโโ ProfileDrawer.jsx
โ โ โ โโโ SLATimer.jsx
โ โ โโโ pages/
โ โ โ โโโ Login.jsx
โ โ โ โโโ Signup.jsx
โ โ โ โโโ Navbar.jsx
โ โ โ โโโ UserDashboard.jsx
โ โ โ โโโ EngineerDashboard.jsx
โ โ โ โโโ AdminDashboard.jsx
โ โ โโโ store/
โ โ โ โโโ store.js
โ โ โ โโโ authSlice.js
โ โ โ โโโ ticketSlice.js
โ โ โโโ utils/
โ โ โ โโโ axios.js
โ โ โ โโโ socket.js
โ โ โโโ App.jsx
โ โ โโโ main.jsx
โ โโโ index.html
โ
โโโ README.md
| Name | Role | Responsibilities |
| Chetan | Full Stack Developer | Authentication, Dashboards, Real-time Features, API Development |
| Pawan |Frontend Developer | Dashboards, nodemailer, Forgot Password |
| Jivit |UI Designer | Designed login,signup and dashboard and profile pages|
| Amit |Frontend Developer | Navbar, UserDashboard |
- Email/SMS notifications for SLA breaches
- Bulk ticket operations
- Advanced analytics dashboard
- Mobile app (React Native)
- AI-powered ticket categorization
- Export tickets to CSV/PDF
- Dark/Light theme toggle
MIT License
- Power Rangers theme inspiration
- MongoDB Atlas for free database hosting
- Socket.io for real-time capabilities