A modern freelance marketplace connecting students with businesses for project collaboration.
- User Authentication: Secure JWT-based authentication
- Job Management: Create, browse, and manage freelance jobs
- Proposal System: Students can submit proposals for jobs
- Contract Management: Full contract lifecycle with e-signatures
- Payment Integration: Razorpay payment gateway integration
- Real-time Updates: Auto-refresh and status tracking
npm install
Create a .env.local
file in the root directory:
# Database
MONGODB_URI=your_mongodb_connection_string
# JWT
JWT_SECRET=your_jwt_secret_key
# Razorpay (Optional - for production payments)
RAZORPAY_KEY_ID=your_razorpay_key_id
RAZORPAY_KEY_SECRET=your_razorpay_key_secret
# OpenAI (Optional - for AI contract generation)
OPENAI_API_KEY=your_openai_api_key
- Sign up for a Razorpay account
- Get your API keys from the dashboard
- Add them to
.env.local
- No setup required
- The system will automatically use test payments when Razorpay is not configured
- Perfect for development and testing
# Development
npm run dev
# Production
npm run build
npm start
- Proposal Submission: Student submits proposal for a job
- Proposal Review: Business reviews and accepts/rejects proposals
- Contract Creation: Business creates contract for accepted proposals
- Student Review: Student reviews and approves contract
- Payment: Business makes payment through Razorpay
- E-Signatures: Both parties sign the contract digitally
- Project Execution: Work begins with signed contract
POST /api/contracts
- Create new contractGET /api/contracts
- List contractsGET /api/contracts/[id]
- Get contract detailsPUT /api/contracts/[id]
- Update contractPOST /api/contracts/[id]/payment
- Process paymentPOST /api/contracts/[id]/sign
- Save e-signature
GET /api/proposals
- List proposalsPUT /api/proposals/[id]
- Update proposal status
- The system automatically detects if Razorpay is configured
- Test payments are available in development mode
- E-signatures are stored as base64 encoded images
- Real-time updates every 30 seconds
- Responsive design with Tailwind CSS
- Check if Razorpay keys are properly configured
- Verify contract status is 'approved' before payment
- Ensure user has proper authorization
- Payment must be completed before signing
- Both parties must sign for contract completion
- Check browser console for any JavaScript errors
MIT License - see LICENSE file for details