# Marketplace Roadmap — Simple → Advanced Expand the existing Tecvico Django site into a freelance/project marketplace (Upwork / Fiverr style). --- ## Is This Doable on the Current Stack? **Yes.** Django is a standard choice for marketplaces (e.g. early Instacart, Disqus patterns). Your repo already has the right foundation: | Already in place | Reuse for marketplace | | -------------------------------------------------- | --------------------------------------- | | Django + PostgreSQL + Docker | Core backend — no rewrite needed | | `apps.core` (branding, site settings) | Global config, fees, categories | | `apps.pages` (CMS, hero, sections) | Marketing pages + marketplace landing | | File uploads (`contact_uploads`, product releases) | Proposals, deliverables, gig media | | Admin panel | Moderation, disputes, user management | | Templates + static CSS/JS | Extend UI; add dashboards incrementally | **New apps to add** (keeps existing code intact): - `apps.accounts` — profiles, roles, verification - `apps.marketplace` — projects, gigs, proposals, contracts - `apps.messaging` — threads (Plan 1: polling/refresh; Plan 3: Channels/WebSockets) - `apps.payments` — Stripe from Plan 2 onward **What gets harder later (not blockers now):** real-time chat, escrow/payouts, dispute automation, high traffic (Redis, Celery, CDN). None require leaving Django. **Verdict:** Plan 1–2 are a natural extension. Plan 3 adds services (Stripe Connect, WebSockets, background jobs) but stays on the same project. --- ## Plan 1 — Simple (MVP) · 3–5 weeks **Goal:** List projects, apply, message. Off-platform payment OK. | Milestone | Weeks | Deliverable | | ------------------ | ----- | ----------------------------------------------------------- | | M1 Auth & profiles | 1–2 | Registration, login, password reset, client/freelancer role | | M2 Listings | 3–4 | Project CRUD, categories, search/filters | | M3 Proposals | 5–6 | Apply, withdraw, client shortlist | | M4 Comms & admin | 7–8 | Messaging, emails, moderation | ### Feature detail **Accounts** - Email/password signup; role pick (client, freelancer, or both) - Profile: display name, avatar, bio, location, hourly rate (optional), skills (tags), portfolio URLs - Public profile URL (`/u/username/`) **Projects** - Fields: title, rich description, category, budget type (fixed/hourly/range), amount, deadline, attachments - Status: draft → open → closed → archived - Client dashboard: my projects, applicant count, close/reopen **Discovery** - List page with filters: category, budget range, posted date - Full-text search on title + description - Sort: newest, budget high/low **Proposals** - Cover letter, bid amount, estimated delivery days - One proposal per freelancer per project; edit until client views - Client view: compare proposals, mark shortlisted/rejected **Messaging** - Thread per project between client and applicant (after apply or invite) - Attach files (reuse existing upload patterns) - Email on new message/proposal (Django email backend) **Admin** - Approve/suspend users and listings; view contact-style audit trail **Out of scope:** payments, contracts, reviews, gigs. --- ## Plan 2 — Medium (Transactional) · 2–3 months **Goal:** Hire and pay on-platform. Gigs (Fiverr) + custom projects (Upwork). | Milestone | Weeks | Deliverable | | ------------- | ----- | ----------------------------------------------------------- | | M1 Foundation | 1–4 | Plan 1 + email verify, profile completeness, S3/local media | | M2 Gigs | 5–8 | Service listings with 3 tiers | | M3 Contracts | 9–12 | Award, milestones, deliverables | | M4 Payments | 13–16 | Stripe escrow, release, platform fee | | M5 Trust | 17–20 | Reviews, dashboards, manual disputes | ### Feature detail **Gigs (Fiverr-style)** - Gig: title, gallery (images/video), category, FAQ, requirements form - Packages: Basic / Standard / Premium — price, delivery days, revision count, feature bullet list - Extras: add-ons (e.g. +$50 rush delivery) - Order flow: client picks package → answers requirements → pays → freelancer accepts **Contracts (Upwork-style)** - Client awards proposal → contract generated (scope, total, deadline) - Milestones: name, amount, due date; client funds each before work starts - Deliverable upload per milestone; client approve or request revision (limited rounds) - Order states: `pending_payment` → `active` → `delivered` → `revision` → `completed` / `cancelled` **Payments (Stripe)** - Checkout Session on award/order; funds held (platform balance or Stripe separate charges) - Release to freelancer on milestone approval minus commission (e.g. 10–20%) - Refund rules: cancelled before start; partial on dispute - PDF invoice/receipt per transaction **Trust** - Double-blind reviews after completion (1–5 stars + text) - Public rating on profile; aggregate on gig - Dispute form: reason, evidence files → admin resolves manually **Dashboards** - Client: spend, active orders, past hires - Freelancer: earnings, pending clearance, gig analytics (views, orders) **Out of scope:** hourly time tracker, OAuth, multi-currency, automated disputes. --- ## Plan 3 — Advanced (Full Platform) · 4–6 months **Goal:** Production marketplace with discovery, compliance, and scale. | Milestone | Months | Deliverable | | ----------------- | ------ | ----------------------------------------- | | M1 Core hardening | 1–2 | Plan 2 + 2FA, OAuth, rate limits | | M2 Discovery | 3–4 | Search, recommendations, skill tests | | M3 Collaboration | 5–6 | Time tracking, workspace, real-time chat | | M4 Payments+ | 7–8 | Stripe Connect, multi-currency, KYC hooks | | M5 Trust & safety | 9–10 | Auto disputes, moderation, fraud signals | | M6 Growth | 11–12 | API, referrals, analytics, PWA | ### Feature detail **Auth & identity** - Google / LinkedIn OAuth; TOTP 2FA - Identity verification hook (Stripe Identity or manual) - Verified badge on profile **Discovery & matching** - Elasticsearch/PostgreSQL full-text: skills, rate, location, availability - Saved searches + email alerts for new matching projects/gigs - Skill tests (quiz → badge on pass) - “Recommended for you” (rules-based first; ML optional later) **Collaboration** - Hourly contracts: weekly hour cap, manual or screenshot time log - Shared order workspace: brief, files, milestone checklist - Real-time chat (Django Channels + Redis): typing, read receipts, file drag-drop - Video intro on profile; calendar link for intro calls **Payments & compliance** - Stripe Connect Express: freelancer onboarding, automatic payouts - Multi-currency display; platform fee per region - Tax form collection hook (W-9 / W-8BEN — integrate when legally required) - Chargebacks and refund automation with audit log **Trust & safety** - Dispute pipeline: open → evidence window → mediator → verdict → auto payout split - Content moderation queue (profiles, gigs, messages flagged by users or keywords) - Fraud heuristics: duplicate accounts, velocity limits, payment anomalies **Growth & ops** - Freelancer subscriptions: featured gig, lower commission tier - Referral codes (credit for referrer/referee) - Public REST API + webhooks (`order.completed`, `payment.released`) - Admin analytics: GMV, take rate, conversion funnel, dispute rate, cohort retention - SEO pages for categories and top gigs; structured data (JSON-LD) **Out of scope:** native iOS/Android (PWA first). --- ## Comparison | | Simple | Medium | Advanced | | -------------------- | ------- | ------------- | ------------------------ | | Projects + proposals | ✓ | ✓ | ✓ | | Gigs / packages | — | ✓ | ✓ | | Messaging | refresh | refresh | real-time | | Stripe / escrow | — | ✓ | Connect + multi-currency | | Milestones + hourly | — | milestones | both | | Reviews | — | ✓ | ✓ + badges + tests | | Disputes | — | manual | automated | | API / analytics | — | basic reports | full | --- ## Recommended Path 1. **Plan 1 on this repo** — add `apps.accounts` + `apps.marketplace`; keep marketing site live. 2. **Plan 2 when volume justifies escrow** — biggest lift is payments + order state machine. 3. **Plan 3 when GMV supports ops** — disputes, compliance, and real-time infra need people, not just code. *Timelines assume extending the current codebase; full UI redesign adds ~20%.*