Skip to content

About

A modern full-stack freelancing platform tailored for India. Built with Next.js 16, React 19, Tailwind CSS, Django REST API, and PostgreSQL. Includes role-based access (Client/Freelancer), AI recommendation scoring, proposal management, team creation, real-time messaging, and deliverable tracking.

Topics

Resources

Stars

2 stars

Watchers

0 watching

Forks

Latest commit

ย 

History

2 Commits

Folders and files

NameName
Last commit message
Last commit date
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐Ÿ‡ฎ๐Ÿ‡ณ Indian Freelance Marketplace

Next.js React TypeScript Tailwind CSS Django PostgreSQL License

A high-performance, full-stack freelancing platform tailored for the Indian gig economy. Connecting skilled freelancers with clients, featuring AI-driven job recommendation scoring, team collaboration, direct messaging with media sharing, and structured project milestone delivery.


๐Ÿš€ Key Features

๐Ÿ‘ค Role-Based Profiles & Credibility

  • Dual Role Accounts: Seamless client and freelancer profiles with dedicated dashboards.
  • Credibility Scoring: Dynamic freelancer credibility algorithm ($0-100$ scale) calculated based on reviews, project completions, and rating history.
  • Rich Portfolios: Display projects with live links, image galleries, and skill tags.

๐Ÿ’ผ Smart Job Marketplace

  • Categorized Search & Discovery: Filter projects by categories, skill requirements, and budget ranges.
  • PostgreSQL Full-Text Search: Optimized GinIndex search indexing for fast query matching on job descriptions and titles.
  • Job Attachments: Support for PDF spec sheets, images, and document uploads.

๐Ÿค– AI Job Recommendation Engine

  • Intelligent Job Matching: Custom recommendation engine (/api/recommendations/jobs/) matching freelancers to top jobs based on skill alignment, hourly rates, and credibility scores.

๐Ÿ“ Bidding & Proposal Workflow

  • Custom Proposals: Freelancers can submit cover letters, custom budget bids, and delivery timelines.
  • Proposal Lifecycle Management: Real-time status transitions (Pending, Accepted, Rejected).

๐Ÿ‘ฅ Team & Agency Collaboration

  • Job Teams: Form collaborative teams/agencies for multi-freelancer projects and enterprise task delegation.

๐Ÿ’ฌ Direct Messaging & Chat

  • In-App Messaging: Real-time communication channels between clients and freelancers for ongoing conversations.
  • File Sharing: Attachment upload capabilities built directly into message threads.

๐Ÿ“ฆ Work Submission & Tipping System

  • Deliverable Submissions: Dedicated submission portal supporting project files, links, and detailed completion notes.
  • Client Reviews & Ratings: Post-project rating system updating freelancer credibility scores.
  • Direct Tipping: Clients can send financial bonuses/tips directly to freelancers upon project delivery.

๐Ÿ› ๏ธ Tech Stack & Architecture

Frontend

  • Framework: Next.js 16 (App Router) & React 19
  • Language: TypeScript
  • Styling: Tailwind CSS v4, PostCSS, Cormorant Garamond & Poppins fonts
  • Animations: Framer Motion & AOS (Animate On Scroll)
  • State & Auth: NextAuth, React Context API
  • Icons & UI: Lucide React & React Icons
  • Database Client: Prisma ORM

Backend

  • Framework: Django REST Framework (DRF)
  • Language: Python 3.10+
  • Database: PostgreSQL (with SearchVectorField & GinIndex)
  • Authentication: Token-Based Authentication & Django Auth
  • Media Storage: Cloudinary / Django File Storage

๐Ÿ“ Repository Structure

india-freelance/
โ”œโ”€โ”€ backend/                  # Django REST API Backend
โ”‚   โ”œโ”€โ”€ api/                  # Core Django application app
โ”‚   โ”‚   โ”œโ”€โ”€ models.py         # Database Schemas (Jobs, Proposals, Chat, Submissions)
โ”‚   โ”‚   โ”œโ”€โ”€ views.py          # API ViewSets & AI recommendation logic
โ”‚   โ”‚   โ”œโ”€โ”€ serializers.py    # DRF Serializers
โ”‚   โ”‚   โ”œโ”€โ”€ urls.py           # REST API endpoints & routing
โ”‚   โ”‚   โ””โ”€โ”€ permissions.py    # Role-based access control
โ”‚   โ”œโ”€โ”€ backend_project/      # Django settings and WSGI/ASGI configuration
โ”‚   โ””โ”€โ”€ manage.py             # Django CLI utility
โ”‚
โ”œโ”€โ”€ frontend/                 # Next.js 16 Frontend
โ”‚   โ”œโ”€โ”€ app/                  # Next.js App Router (Pages, Layouts, API Routes)
โ”‚   โ”œโ”€โ”€ components/           # Reusable UI Components (Navbar, Cards, Modals)
โ”‚   โ”œโ”€โ”€ lib/                  # Auth Context, Utilities & API Services
โ”‚   โ”œโ”€โ”€ prisma/               # Prisma Database Schema & Migrations
โ”‚   โ”œโ”€โ”€ public/               # Static assets & public media
โ”‚   โ””โ”€โ”€ tailwind.config.js    # Design System Tokens
โ””โ”€โ”€ README.md                 # Project Documentation

๐Ÿ—„๏ธ Database Architecture

Model Description Key Relationships
User / UserProfile Core authentication & client/freelancer role flags One-to-One with Django User
FreelancerProfile Bio, hourly rate, skills, and credibility score ($0-100$) One-to-One with User
Job Project postings with budget, search vector index, and status ForeignKey to Client User, Many-to-Many Skills
Proposal Freelancer bids with cover letter and bid amount ForeignKey to Job & Freelancer User
JobTeam Collaboration group assigned to multi-freelancer projects ForeignKey to Job, Many-to-Many Freelancers
Conversation / Message Direct chat messaging thread and attachment files Many-to-Many Users, ForeignKey to Sender
WorkSubmission Project work delivery submission with files and URLs ForeignKey to Job & Freelancer
Review Client ratings and written feedback ForeignKey to Job, Client & Freelancer
Tip Optional monetary bonus given to freelancers ForeignKey to Job, Client & Freelancer

๐Ÿ“ก API Reference Overview

Auth & User Management

  • POST /api/register/ - Register new Client or Freelancer user
  • POST /api/login_user/ - Authenticate user & obtain API tokens
  • GET /api/profile/ - Fetch current user's profile details

Job Marketplace

  • GET /api/jobs/ - List all open job opportunities
  • POST /api/jobs/ - Create a new job listing (Client)
  • GET /api/recommendations/jobs/ - Get AI recommended jobs for current freelancer

Proposals & Team

  • GET/POST /api/proposals/ - Manage job proposals & bid submissions
  • GET/POST /api/team/ - Manage project team members and agency structures

Messaging & Delivery

  • GET/POST /api/conversations/ - List or start user chat conversations
  • GET/POST /api/messages/ - Send and view messages with file attachments
  • POST /api/submissions/ - Submit completed project work
  • POST /api/reviews/ - Submit client rating and feedback
  • POST /api/tips/ - Send direct tip to freelancer

โšก Getting Started

Prerequisites

  • Node.js: v18.0.0 or higher
  • Python: 3.10 or higher
  • PostgreSQL: Local or hosted database instance

1. Backend Setup

# Navigate to backend directory
cd backend

# Create a virtual environment
python -m venv venv

# Activate virtual environment
# Windows:
venv\Scripts\activate
# macOS/Linux:
source venv/bin/activate

# Install required dependencies
pip install django djangorestframework django-cors-headers psycopg2-binary pillow cloudinary

# Apply database migrations
python manage.py migrate

# Start the Django development server
python manage.py runserver

2. Frontend Setup

# Navigate to frontend directory
cd frontend

# Install Node dependencies
npm install

# Setup environment variables (.env.local)
# Add backend API URL and NextAuth secrets

# Run Next.js development server
npm run dev

Open http://localhost:3000 in your browser to view the application.


๐Ÿ” Environment Configuration

Backend (backend/.env)

SECRET_KEY=your_django_secret_key
DEBUG=True
DATABASE_URL=postgres://user:password@localhost:5432/india_freelance_db
CLOUDINARY_URL=cloudinary://api_key:api_secret@cloud_name

Frontend (frontend/.env.local)

NEXT_PUBLIC_API_URL=http://localhost:8000/api
NEXTAUTH_SECRET=your_nextauth_secret_key
NEXTAUTH_URL=http://localhost:3000

๐Ÿค Contributing

Contributions are welcome! Follow these steps to contribute:

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/AmazingFeature)
  3. Commit your changes (git commit -m 'Add some AmazingFeature')
  4. Push to the branch (git checkout -b feature/AmazingFeature)
  5. Open a Pull Request

๐Ÿ“„ License

Distributed under the MIT License. See LICENSE for more details.

About

A modern full-stack freelancing platform tailored for India. Built with Next.js 16, React 19, Tailwind CSS, Django REST API, and PostgreSQL. Includes role-based access (Client/Freelancer), AI recommendation scoring, proposal management, team creation, real-time messaging, and deliverable tracking.

Topics

Resources

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages