Production-style full-stack support desk application built with the MEAN ecosystem and real-time updates.
This project helps teams manage customer and IT support workflows with role-based access, ticket lifecycle tracking, comments, admin controls, and live updates.
- Frontend: Angular 21, Angular Material, RxJS, Socket.IO client
- Backend: Node.js, Express 5, Mongoose, Socket.IO
- Database: MongoDB
- Auth/Security: JWT, bcrypt, HTTP-only cookies, CORS, Helmet, rate limiting, XSS sanitization
- Authentication: register, login, logout, current user profile
- RBAC: user, agent, admin permissions
- Ticket management: create, list, filter, update, close
- Comment threads per ticket
- Status history tracking
- Real-time events: ticket created/updated, comment created
- Admin user management: list, update role/status, disable accounts
- Dashboard metrics and queue visibility
Support Ticket System Project/
backend/
src/
config/
controllers/
middlewares/
models/
routes/
services/
utils/
app.js
server.js
frontend/
src/
app/
components/
core/
models/
environments/
- Node.js 20+
- MongoDB instance (local or cloud)
cd backend
npm install
cp .env.example .envUpdate backend/.env:
MONGO_URIJWT_SECRET- optional:
CORS_ORIGIN,TRUST_PROXY,PORT
Run backend:
npm run devBackend default URL: http://127.0.0.1:5001
cd frontend
npm install
npm start -- --host 127.0.0.1 --port 4200Frontend URL: http://127.0.0.1:4200
/api
Main route groups:
POST /auth/registerPOST /auth/loginPOST /auth/logoutGET /auth/meGET /ticketsPOST /ticketsGET /tickets/:idPUT /tickets/:idGET /tickets/:id/commentsPOST /tickets/:id/commentsGET /users(admin)PUT /users/:id(admin)DELETE /users/:id(admin)
- Route lazy loading with preloading for faster navigation
- API pagination support for ticket/user/comment listing
- Realtime-driven UI refreshes are throttled to reduce request bursts
- Centralized error handling and secure middleware defaults
cd frontend
npm run buildcd backend
npm start- Set production-safe
JWT_SECRETandMONGO_URI - Configure
CORS_ORIGINto your deployed frontend URL - Set
NODE_ENV=production - Enable secure transport (HTTPS)
GitHub: https://github.com/ravithakur776/Support-Ticket-Management