Fixly is a modern service marketplace platform connecting customers with service providers. This repository contains both the backend (Node.js/Express) and frontend (React/Vite) codebase.
- User authentication with JWT and secure cookie sessions
- Service provider registration and profile management
- Service listings with categories and search functionality
- Booking and scheduling system
- Review and rating system
- Secure payment processing
- Admin dashboard for platform management
- Email notifications using Nodemailer
- Cloud-based image storage with Cloudinary
- Node.js (Latest LTS version)
- MongoDB database
- Cloudinary account for image storage
- SMTP server for email notifications
- Navigate to the server directory:
cd server- Install dependencies:
npm install- Create a
.envfile with the following variables:
MONGODB_URI=your_mongodb_connection_string
JWT_SECRET=your_jwt_secret
CLOUDINARY_CLOUD_NAME=your_cloudinary_cloud_name
CLOUDINARY_API_KEY=your_cloudinary_api_key
CLOUDINARY_API_SECRET=your_cloudinary_api_secret
SMTP_HOST=your_smtp_host
SMTP_PORT=your_smtp_port
SMTP_USER=your_smtp_username
SMTP_PASS=your_smtp_password- Start the development server:
npm run dev- Navigate to the client directory:
cd client- Install dependencies:
npm install- Start the development server:
npm run dev- Node.js with Express (^4.18.2)
- MongoDB with Mongoose (^7.0.3)
- JWT Authentication (^9.0.0)
- Cloudinary for image upload (^1.41.3)
- Nodemailer for emails (^6.9.1)
- Express Middleware:
- cors (^2.8.5)
- cookie-parser (^1.4.6)
- multer (^1.4.5-lts.2)
- React (^19.0.0)
- Vite (^6.2.0)
- React Router DOM (^7.5.3)
- Tailwind CSS (^4.1.3)
- Axios (^1.8.2)
- React-Toastify (^11.0.5)
- Framer Motion (^12.6.3)
- React Chart.js 2 (^5.3.0)
API documentation is available in the docs folder:
A Postman collection and environment are available in the docs folder for testing:
fixly/
├── client/ # React frontend
├── server/ # Node.js backend
│ ├── config/ # Configuration files
│ ├── controllers/ # Route controllers
│ ├── middleware/ # Custom middleware
│ ├── models/ # Mongoose models
│ ├── routes/ # API routes
│ └── utils/ # Utility functions
└── docs/ # API documentation
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request