This is a full-stack CRM (Customer Relationship Management) system built as part of a project assignment. It allows vendors to manage campaigns, customers, orders, and communications in a centralized dashboard...
git clone https://github.com/Harsh1428rao/CRM.git
cd CRMcd backend
npm installCreate a .env file in the backend folder with the following content:
PORT=5000
MONGODB_URI=<Your MongoDB Atlas URI>
SESSION_SECRET=your-secret-keyStart the backend server:
npm startcd ../frontend/xenocrm-frontend
npm install
npm startThis will launch the frontend on http://localhost:3000
┌───────────────────────┐ ┌───────────────────────────────┐
│ Frontend (React) │ │ Backend (Express.js) │
│ Vercel Deployment │ <--►│ Render Deployment (Node.js) │
└───────────────────────┘ └──────────────┬────────────────┘
│
┌────────▼────────┐
│ MongoDB Atlas │
└──────────────────┘
│
┌────────▼───────┐
│ Redis │
└────────────────┘
-
Frontend: React.js, Axios, Bootstrap
-
Backend: Node.js, Express.js, Passport.js
-
Database: MongoDB Atlas (Cloud-hosted)
-
Session Handling: express-session + Redis
-
Deployment:
- Frontend: Vercel
- Backend: Render
-
Authentication: Google OAuth 2.0
- ChatGPT (OpenAI): For code debugging, architectural planning, and solving deployment issues.
- YouTube Tutorials & Blogs: For understanding CRM concepts and MongoDB integration.
- Purpose: Redis is used to manage session storage for authenticated users. This enhances performance and ensures persistent user sessions.
- Local Development: Redis runs on your local machine (default port
6379). Make sure Redis is installed and running when working locally. - Production: Render doesn’t natively support Redis instances. To use Redis in production, a hosted Redis service like Redis Cloud, Upstash, or Render Private Services can be configured and connected using a secure Redis URL.
- Integration: Integrated via the
connect-redispackage to store Express session data.
- ❗ MongoDB Connection Issues: During the demo, MongoDB Atlas wasn't accessible due to IP whitelisting and SSL issues, affecting dynamic functionality like login and dashboard data.
- ❗ Redis Configuration: Redis works locally, but additional steps are required to make it functional in production environments.
- ❗ Single Role Focus: The CRM is currently vendor-focused. Multi-role (admin, customer, etc.) support can be added in future versions.
⚠️ Not Fully Responsive: The UI is optimized for desktop use; mobile responsiveness is minimal.- ✅ Assumes a stable internet connection and modern browser (latest Chrome/Edge/Firefox).
This project was built under tight deadlines during academic schedules. From battling deployment issues to connecting distributed services, it offered a complete practical view of web development. As a student with 2 years of web development experience, this project pushed me further and gave me real-world insight into building and deploying full-stack applications. Most of the learning came from online sources, especially YouTube and documentation.
Harsh Rao – GitHub Feel free to reach out for suggestions, improvements, or collaborations!
