π FreelanceHub β MERN Freelancing Marketplace Platform
FreelanceHub is a full-stack freelancing marketplace inspired by Fiverr & Upwork. It enables clients to post projects, freelancers to bid, and both parties to collaborate through a structured workflow. Built using the MERN stack, this platform focuses on real-world functionality like secure authentication, OTP email verification, MongoDB transactions, and automated email notifications.
π Live Demo
Frontend: https://freelance-hub-hmju.vercel.app/
Backend: Hosted on Render
π― Features π Authentication & Security
JWT + HTTP-only cookies
Secure login & registration
Email-based OTP verification (Brevo API)
Protected routes & middleware authentication
π© Email System
OTP verification email
Bid acceptance notifications
Beautiful HTML templates
Uses Brevo HTTP API (no SMTP issues)
π€ Client Features
Post projects
View & manage bids
Accept a freelancer (auto-updates all bids)
Track assignment status
π§βπ» Freelancer Features
Browse available projects
Place bids with proposal + amount
Receive email when bid is accepted
Track assigned projects
π Project Management
Project workflow (open β in-progress)
MongoDB session transactions ensure safe state updates
Clean bid rejection + acceptance logic
π¨ UI & UX
Clean, modern UI
Responsive, smooth user experience
Inspired by Fiverr marketplace design patterns
π§ What I Learned
Building FreelanceHub helped me dive deep into:
Authentication & JWT best practices
OTP workflows + email API integration
MongoDB transactions for safe updates
Production debugging (SMTP issues, CORS, deployments)
Deploying MERN apps on Vercel + Render
Writing scalable backend controllers
Designing clean, intuitive UI
π§ Future Enhancements
Coming soon:
π Pagination for projects & bids
π¬ Real-time chat system between clients & freelancers
π Freelancer & client dashboards
π Push notifications
β Profile pages with ratings & reviews
π Tech Stack
Frontend
React Context API / Hooks React Router Axios CSS (Responsive design)
Backend
Node.js Express.js MongoDB + Mongoose JSON Web Tokens (JWT) Brevo Email API Render (Deployment) Tools Git & GitHub Vercel Render Postman
π Project Structure FreelanceHub/ β βββ frontend/ # React frontend β βββ components/ β βββ pages/ β βββ context/ β βββ styles/ β βββ backend/ β βββ controllers/ # User, Project, Bid controllers β βββ routes/ # API routes β βββ models/ # MongoDB schemas β βββ middlewares/ # Auth middleware β βββ index.js # Server entry β βββ README.md
βοΈ Installation & Setup 1οΈβ£ Clone the repo git clone cd FreelanceHub
2οΈβ£ Install backend dependencies cd backend npm install
3οΈβ£ Install frontend dependencies cd ../frontend npm install
4οΈβ£ Environment Variables
Create a .env inside backend:
MONGO_URI=your_database_url JWT_SECRET_KEY=your_jwt_secret BREVO_API_KEY=your_brevo_key
5οΈβ£ Run backend npm run dev
6οΈβ£ Run frontend npm start
π‘ API Highlights POST /register
User signup
POST /sendOtp
Sends OTP email
POST /verifyEmail
Verifies email using OTP
POST /login
User login
POST /placeBid/:id
Freelancer places a bid
POST /acceptBid/:id
Client accepts a bid (email notification sent)
β Support This Project
If you found this project helpful or inspiring, please consider giving it a β on GitHub! It motivates me to keep building and improving.
π€ Author
Dev Desai Full Stack Web Developer (MERN) LinkedIn: https://www.linkedin.com/in/dev-desai-8bb22331b?utm_source=share&utm_campaign=share_via&utm_content=profile&utm_medium=android_app