Files
tecvico-website/docs/marketplace-roadmap.md
2026-07-19 14:31:28 +03:30

9.2 KiB
Raw Permalink Blame History

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 12 are a natural extension. Plan 3 adds services (Stripe Connect, WebSockets, background jobs) but stays on the same project.


Plan 1 — Simple (MVP) · 35 weeks

Goal: List projects, apply, message. Off-platform payment OK.

Milestone Weeks Deliverable
M1 Auth & profiles 12 Registration, login, password reset, client/freelancer role
M2 Listings 34 Project CRUD, categories, search/filters
M3 Proposals 56 Apply, withdraw, client shortlist
M4 Comms & admin 78 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) · 23 months

Goal: Hire and pay on-platform. Gigs (Fiverr) + custom projects (Upwork).

Milestone Weeks Deliverable
M1 Foundation 14 Plan 1 + email verify, profile completeness, S3/local media
M2 Gigs 58 Service listings with 3 tiers
M3 Contracts 912 Award, milestones, deliverables
M4 Payments 1316 Stripe escrow, release, platform fee
M5 Trust 1720 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_paymentactivedeliveredrevisioncompleted / 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. 1020%)
  • Refund rules: cancelled before start; partial on dispute
  • PDF invoice/receipt per transaction

Trust

  • Double-blind reviews after completion (15 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) · 46 months

Goal: Production marketplace with discovery, compliance, and scale.

Milestone Months Deliverable
M1 Core hardening 12 Plan 2 + 2FA, OAuth, rate limits
M2 Discovery 34 Search, recommendations, skill tests
M3 Collaboration 56 Time tracking, workspace, real-time chat
M4 Payments+ 78 Stripe Connect, multi-currency, KYC hooks
M5 Trust & safety 910 Auto disputes, moderation, fraud signals
M6 Growth 1112 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

  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%.