Build Creator-Centric Freelancing Platform

Job ID: 40180020

Budget: $300 – $500 USD

## Project Overview

**Project Name:** Creator-Focused Freelancing Platform
**Objective:** Build a high-quality, scalable, secure, and user-friendly freelancing platform focused on creative professionals (photographers, videographers, designers, editors). The platform must be visual-first, content-driven, and trust-based, enabling creators to get discovered organically and hired without heavy proposal bidding.

This document is written for developers. Every feature must be implemented exactly as specified. No requirement should be skipped, simplified, or assumed without written approval.

---

## 1. User Roles and Access Control

### User Types

1. Freelancer (Creator)
2. Client (Buyer)
3. Admin (Platform Owner)

### General Rules

* Role-based access control (RBAC) must be implemented
* A user can only act under their selected role
* One account = one role (no switching without admin approval)

---

## 2. Authentication & Security

### Signup & Login

* Email + password authentication
* Secure password hashing
* Social login (Google, Apple) – optional but architecture-ready
* Account email verification
* Rate limiting for login attempts

### Phone Verification (Future-ready)

* Phone number field stored
* OTP verification structure ready (can be disabled in MVP)

### Session & Security

* JWT or secure token-based authentication
* Auto logout on token expiry
* Refresh token handling

---

## 3. Onboarding Flow

### Freelancer Onboarding (Mandatory Steps)

1. Full name
2. Primary role (photographer, videographer, editor, designer)
3. Location (city + country)
4. Skills selection (tag-based, multi-select)
5. Portfolio upload (minimum 3 items required)
6. Short bio (max character limit)
7. Agreement to platform terms
8. Account status set to **Unverified** by default

### Client Onboarding

1. Individual or company selection
2. Name / company name
3. Location
4. Agreement to platform terms
5. Account status set to **Unverified** by default

---

## 4. Freelancer Profile (Public View)

Each freelancer profile must include:

* Profile picture
* Cover image
* Display name
* Role and skill tags
* Location
* Bio section
* Portfolio gallery (images + videos)
* Engagement stats (likes, views, saves)
* Ratings & reviews
* Verification badge (only if approved by admin)
* "Hire Me" CTA button

### Profile Rules

* Profile must be SEO-friendly
* Portfolio items must support captions
* No external contact info allowed

---

## 5. Portfolio Management

* Upload image and video files
* File size validation
* Format validation
* Thumbnail generation for videos
* Reorder portfolio items
* Delete or archive portfolio items

---

## 6. Application Feed (Core Feature)

### Purpose

* Discovery
* Trust building
* Creator visibility

### Post Types

* Image post
* Video post
* Carousel post

### Post Content

* Caption (text)
* Tags (skills / categories)
* Optional location tag

### Feed Interactions

* Like
* Comment
* Save
* Internal share
* Report content

### Feed Algorithm Requirements

* Engagement-based ranking
* Skill relevance matching
* Location-based boost (optional)
* Time-based freshness

---

## 7. Stories (24-Hour Content)

* Image and video stories
* Auto-expire after 24 hours
* View tracking
* Profile CTA from story
* Report and mute options

---

## 8. Search & Discovery System

### Search Filters

* Skill / category
* Location radius
* Budget range
* Availability status
* Rating threshold
* Verified-only toggle

### Search Results

* Freelancer cards
* Portfolio preview
* Quick actions (hire / message)

---

## 9. Chat System

### Rules

* In-app messaging only
* No email or phone sharing before project confirmation
* Media sharing allowed
* Message timestamps
* Read receipts

---

## 10. Project Creation & Hiring

### Project Types

* Fixed-price
* Milestone-based
* Hourly (future phase)

### Project Creation Flow

1. Client creates project
2. Defines scope and requirements
3. Selects freelancer or starts chat
4. Milestones defined (if applicable)
5. Project status set to "Pending Funding"

---

## 11. Milestones & Escrow System

### Escrow Rules

* Client must fund milestone before work starts
* Funds held in platform wallet
* Freelancer submits deliverables
* Client approves or requests revision
* Funds released only on approval

### Dispute Handling

* Admin-controlled dispute resolution
* Evidence upload supported

---

## 12. Wallet & Payments

### Wallet Features

* Available balance
* Pending escrow
* Transaction history

### Payments

* Card payments (Stripe or equivalent)
* Secure webhook handling

### Withdrawals

* Bank transfer
* Third-party payout provider

---

## 13. Reviews & Ratings

* Review allowed only after project completion
* One review per project
* Rating categories:

* Communication
* Quality
* Timeliness
* Admin moderation enabled

---

## 14. Notifications System

* In-app notifications
* Email notifications (basic)
* Events:

* New message
* Project updates
* Payment status

---

## 15. Admin Panel (Mandatory)

### Admin Features

* User management
* Freelancer verification approval
* Content moderation
* Project oversight
* Dispute resolution
* Payment monitoring
* Feature toggles
* Analytics dashboard

---

## 16. Non-Functional Requirements

* Clean, maintainable code
* Scalable architecture
* API documentation required
* Secure data handling
* Proper error handling and logging

---

## 17. Delivery Expectations

* No feature skipping
* No assumptions
* All flows must be tested
* Developer must follow this document strictly