Lead Management System
Full-stack CRM application for enterprise lead routing, assignment, and SLA monitoring. Built for sales operations teams to reduce manual effort, enforce routing policy, and improve queue visibility.
Problem Solved
Sales teams lose valuable hours manually assigning leads and tracking ownership transitions across spreadsheets, chats, and disconnected tools. This creates delayed follow-ups, uneven agent load, and poor SLA accountability.
The Lead Management System automates lead intake, assignment, and queue dispatch while preserving full auditability. Teams get real-time visibility into queue health, unassigned inventory, and SLA risk.
Technical Architecture
Frontend Stack
React 19 functional components, React Router v7, Axios integration, Recharts analytics, and protected routes with JWT validation for role-aware navigation.
Backend Stack
Node.js/Express REST API with Mongoose ODM, JWT + bcrypt auth, Joi request validation, and middleware hardening via Helmet, CORS, and rate limiting.
Assignment Engine Strategies
// Routing strategy selection
switch (rule.strategy) {
case "direct":
return assignDirect(lead, rule.userId);
case "round_robin":
return assignRoundRobin(lead, rule.queueId);
case "queue":
return assignToQueue(lead, rule.queueId);
default:
throw new Error("Unsupported routing strategy");
}
Core Features
Lead Management
Full CRUD, advanced search/filter/sort, lead scoring, bulk actions, and assignment history.
Assignment Engine
Direct, round-robin, and queue-based routing with priority evaluation and capacity awareness.
Queue Management
Multi-queue SLA controls, workload balancing, dispatch automation, and claim/auto-claim worklists.
Operational Dashboards
KPIs for queue-owned, agent-owned, unassigned, SLA risk, plus trend analysis with Recharts.
Security and Audit
Role-based access control, JWT auth, complete audit logging, and secure password handling.
Production Readiness
Structured validation, rate-limited APIs, and operational workflow coverage across 8+ modules.
How to Run Locally
# Backend
cd LMS-Server
npm install
# .env
PORT=3000
MONGODB_URI=mongodb://localhost:27017/lms-server
JWT_SECRET=your-secret-key
ALLOWED_ORIGINS=http://localhost:3002
npm run dev
# API: http://localhost:3000/api
# Frontend
cd LMS-Admin
npm install
# .env
REACT_APP_API_URL=http://localhost:3000/api
npm start
# App: http://localhost:3002