A modern, full-stack CRM application built with the MERN stack for managing marketing campaigns and customer relationships.
Visit the deployed application: Mini CRM
-
🛡️ Secure Authentication
- Google OAuth integration
- JWT-based authentication
- Protected routes
-
📈 Campaign Management
- Create and manage marketing campaigns
- Track campaign status and performance
- Campaign history and analytics
-
👥 Customer Management
- Add and manage customer profiles
- Track customer interactions
- Communication history
-
📊 Dashboard Analytics
- Real-time campaign statistics
- Customer engagement metrics
- Performance insights
-
📱 Responsive Design
- Mobile-first approach
- Optimized for all devices
- Modern UI/UX
- React.js
- TypeScript
- Material-UI
- React Router
- Axios
- Context API for state management
- Node.js
- Express.js
- MongoDB with Mongoose
- Passport.js for authentication
- JWT for session management
- Frontend: Vercel
- Backend: Render
- Database: MongoDB Atlas
The application follows a standard client-server architecture:
- Frontend (Client): A React application built with TypeScript and Material-UI, running in the user's browser. It interacts with the backend API to send and receive data.
- Backend (Server): A Node.js/Express.js API that handles business logic, authentication, and data persistence. It connects to the MongoDB database.
- Database: MongoDB stores all application data, including user information, campaigns, and customers.
The frontend communicates with the backend via RESTful API endpoints. Authentication is managed using JWTs issued by the backend upon successful login (including Google OAuth).
This project was developed with the assistance of AI tools, which aided in areas such as:
- Code generation and completion
- Debugging and error resolution
- Refactoring and code optimization
- Suggesting best practices and implementation strategies
Other key technologies used in the development lifecycle include Git for version control and npm/yarn for package management.
- Analytics: The dashboard and campaign analytics are currently basic and can be expanded with more detailed reporting and visualization.
- Customer Segmentation: The 'Target Audience' field in campaign creation is currently a text input; advanced segmentation logic is not implemented.
- Error Handling: While core error handling is in place, comprehensive error management and user feedback for all potential issues can be improved.
- Input Validation: Additional server-side input validation might be necessary for certain data points.
- Testing: Comprehensive unit and integration tests have not been fully implemented.
- Node.js (v14 or higher)
- MongoDB
- npm or yarn
- Google OAuth credentials
-
Clone the repository:
git clone https://github.com/ItsYash1421/Mini-Crm.git cd mini-crm -
Install backend dependencies:
cd backend npm install -
Install frontend dependencies:
cd ../frontend npm install -
Create a
.envfile in the backend directory:MONGODB_URI=your_mongodb_uri JWT_SECRET=your_jwt_secret GOOGLE_CLIENT_ID=your_google_client_id GOOGLE_CLIENT_SECRET=your_google_client_secret -
Create a
.envfile in the frontend directory:VITE_API_URL=your_backend_url
-
Start the backend server:
cd backend npm run dev -
Start the frontend development server:
cd frontend npm run dev -
Access the application at
http://localhost:3000
MONGODB_URI: MongoDB connection stringJWT_SECRET: Secret key for JWTGOOGLE_CLIENT_ID: Google OAuth client IDGOOGLE_CLIENT_SECRET: Google OAuth client secretPORT: Server port (default: 8000)
VITE_API_URL: Backend API URL
POST /api/auth/google: Google OAuth loginGET /api/auth/google/callback: Google OAuth callbackGET /api/auth/me: Get current user info
GET /api/campaigns: Get all campaignsPOST /api/campaigns: Create new campaignPUT /api/campaigns/:id: Update campaignDELETE /api/campaigns/:id: Delete campaign
GET /api/customers: Get all customersPOST /api/customers: Add new customerPUT /api/customers/:id: Update customerDELETE /api/customers/:id: Delete customer
- Connect your GitHub repository to Vercel
- Configure environment variables
- Deploy
- Create a new Web Service
- Connect your GitHub repository
- Configure environment variables
- Deploy
Yash Kumar Meena - yashamanmeena2@gmail.com
Project Link: https://github.com/ItsYash1421/Mini-Crm
