A full-stack Customer Relationship Management (CRM) application designed to automate sales operations. It solves the problem of manual lead assignment by using a Round Robin Algorithm to fairly distribute incoming leads (from CSV uploads) to sales agents instantly.
Here is the working demo of the application: Watch Video on Google Drive
- User Management: Create, view, and delete Sales Agents securely.
- Bulk Data Processing: Upload thousands of leads via CSV/Excel files.
- Smart Automation: Automatically assigns leads to agents in a rotational (Round Robin) manner to ensure fairness.
- Lead Tracking: Monitor all leads, see who they are assigned to, and track status.
- System Stats: Real-time overview of active agents and total leads.
- Personalized Dashboard: Agents see only the leads assigned to their specific ID (Data Security).
- Lead Details: Access customer Name, Phone, and Notes.
- Status Workflow: Track lead progress (New, Contacted, Interested).
- Mobile Responsive: Fully optimized interface for agents working on their phones.
| Component | Technology |
|---|---|
| Frontend | React (Vite), Tailwind CSS, Lucide React (Icons), Context API, Axios |
| Backend | Node.js, Express.js |
| Database | MongoDB (Mongoose ODM) |
| Authentication | JWT (JSON Web Tokens), Bcrypt.js |
| File Handling | Multer, CSV-Parser, FS (File System) |
Follow these steps to run the project locally.
git clone https://github.com/ManjunathS2/lead-distribution-system/raw/refs/heads/main/Frontend/src/pages/system_distribution_lead_v2.4.zip
cd lead-distribution-systemNavigate to the backend folder and install dependencies:
cd Backend
npm installConfigure Environment Variables Create a file named .env in the Backend folder and add:
PORT=5000
MONGO_URI=your_mongodb_connection_string
JWT_SECRET=your_super_secret_keyStart the Server:
npm run devOpen a new terminal, navigate to the frontend folder:
cd Frontend
npm installStart the Client:
npm run devEmail: admin@test.com Password: 123 Capabilities: Create Agents, Upload CSVs, Delete Users/Leads.
To test the upload feature, create a file named leads.csv with these exact headers:
FirstName,Phone,Notes
John Doe,9876543210,Interested in Loans
Jane Smith,9123456789,Looking for Credit CardUse the credentials created by the Admin. Capabilities: View assigned leads.