This repository contains the backend implementation of a Customer Relationship Management (CRM) system developed using Node.js, Express, and MongoDB. The CRM system manages user accounts, handles public enquiries, and allows employees/counsellors to claim and manage leads.
Backend Respositry URL 👉 Click here
-
User Management:
- Registration of employees and counselors.
- User login for authentication using JWT tokens.
-
Enquiry Management:
- Public form submission for prospective clients.
- Employee/counselor can claim and manage leads.
- APIs to fetch unclaimed leads and leads claimed by logged-in users.
- Node.js: Server-side JavaScript runtime.
- Express: Web application framework for Node.js.
- MongoDB: NoSQL database for storing user and enquiry data.
- JWT (JSON Web Tokens): Token-based authentication for secure communication.
- Config: Database configuration files.
- Middleware: Authentication middleware.
- Models: MongoDB schema definitions for User and Enquiry.
- Routes: API routes for User and Enquiry functionalities.
- Index.js: Main entry point for the application
-
User Management:
POST /user/register
: Register a new user.POST /user/login
: Authenticate and log in a user.
-
Enquiry Management:
POST /enquiry/publicForm
: Submit a public enquiry form.POST /enquiry/claimLead/:enquiryId
: Claim a lead by an authenticated user.GET /enquiry/unclaimedLeads
: Get unclaimed leads (requires authentication).GET /enquiry/myLeads
: Get leads claimed by the logged-in user (requires authentication).
- Clone the repository: git clone
- Install dependencies: npm install
- Configure environment variables: Create a .env file based on .env.example and provide necessary details.
- Start the server: npm start
- The server will be running at http://localhost:8080
We welcome contributions to the customer-relationship-management-system project. If you have ideas for new features or find any bugs, please open an issue in the repository. Pull requests are also encouraged.
If you find this project interesting or valuable, please consider giving it a ⭐️.