A modern full-stack CRM system with contact management, deal tracking, and email integration.
- 📇 Contact Management: Store and manage customer information
- 💼 Deal Tracking: Track sales opportunities and pipeline
- 📧 Email Integration: Communicate with contacts directly from the CRM
- 🔐 Authentication: Secure user authentication and authorization
- 📊 Dashboard: Visual overview of sales metrics and activities
- Node.js & Express.js
- MongoDB/PostgreSQL (database)
- JWT Authentication
- RESTful API
- React 18
- React Router for navigation
- Axios for API calls
- Tailwind CSS for styling
crm-mvp/
├── backend/ # Node.js/Express backend
│ ├── src/
│ │ ├── config/ # Configuration files
│ │ ├── controllers/ # Route controllers
│ │ ├── models/ # Database models
│ │ ├── routes/ # API routes
│ │ ├── middleware/ # Custom middleware
│ │ ├── services/ # Business logic
│ │ └── utils/ # Utility functions
│ ├── package.json
│ └── server.js # Entry point
│
├── frontend/ # React frontend
│ ├── public/
│ ├── src/
│ │ ├── components/ # Reusable components
│ │ ├── pages/ # Page components
│ │ ├── services/ # API services
│ │ ├── utils/ # Utility functions
│ │ ├── App.js
│ │ └── index.js
│ └── package.json
│
└── README.md
- Node.js (v18 or higher)
- npm or yarn
- MongoDB or PostgreSQL
- Clone the repository:
git clone https://github.com/G9Pedro/crm-mvp.git
cd crm-mvp- Install backend dependencies:
cd backend
npm install- Install frontend dependencies:
cd ../frontend
npm install- Set up environment variables:
- Copy
.env.exampleto.envin both backend and frontend directories - Update the variables with your configuration
- Start the development servers:
Backend:
cd backend
npm run devFrontend:
cd frontend
npm startPOST /api/auth/register- Register new userPOST /api/auth/login- Login userPOST /api/auth/logout- Logout user
GET /api/contacts- Get all contactsPOST /api/contacts- Create new contactGET /api/contacts/:id- Get contact by IDPUT /api/contacts/:id- Update contactDELETE /api/contacts/:id- Delete contact
GET /api/deals- Get all dealsPOST /api/deals- Create new dealGET /api/deals/:id- Get deal by IDPUT /api/deals/:id- Update dealDELETE /api/deals/:id- Delete deal
GET /api/emails- Get email historyPOST /api/emails/send- Send email to contact
Contributions are welcome! Please feel free to submit a Pull Request.
MIT License - feel free to use this project for your own purposes.
Pedro Sobral