Hermes Wiki
LocalzDocs/MVP-Development

MVP Development

Prove MVP locally (SQLite/Postgres, Docker, single FastAPI app + Next.js UI), then worry about infra.

8-Week Local MVP Roadmap (10 hrs/week)


Week 1 — Project Setup & Skeleton

Goal: Have a clean repo skeleton, running locally.

  • Setup monorepo (or 2 repos: backend/, frontend/).
  • Backend: FastAPI project with Pydantic models + routers (users, providers, services, bookings).
  • Database: Start with SQLite (swap to Postgres later). Use SQLAlchemy.
  • Auth: JWT-based login/signup (users + providers).
  • Frontend: Next.js + TailwindCSS starter; "Hello World" page.
  • Dockerfiles (backend + frontend).
  • Deliverable: Run docker-compose up → hit /api/health & view frontend page.

Week 2 — Providers & Services

Goal: Providers can onboard and list services.

  • Backend:
    • Providers CRUD (register, update profile, upload docs placeholder).
    • Services CRUD (title, description, price, availability).
  • Frontend:
    • Provider dashboard (add/edit service).
    • Simple service listing view.
  • Store media locally (later move to S3).
  • Deliverable: A provider can sign up and add at least one service.

Week 3 — Consumer Journey (Search + Bookings)

Goal: Consumers can search and request a service.

  • Backend:
    • Service search (basic SQL filter: keyword, price, availability).
    • Bookings table (status = requested, accepted, completed).
  • Frontend:
    • Consumer search UI (list services).
    • Booking form (select provider + time).
  • Add background "booking lifecycle" states in DB.
  • Deliverable: Consumer can search → request → provider sees booking.

Week 4 — Payments (Stub)

Goal: Introduce payments, at least mock version.

  • Backend:
    • Integrate Stripe test mode (create checkout session).
    • Store transaction in DB.
  • Frontend:
    • Checkout button → redirect to Stripe test page.
    • Return success/fail page.
  • Add "cash option" (just mark payment_type = cash, no actual gateway).
  • Deliverable: Consumer can pay via Stripe test or select cash option.

Week 5 — Booking Lifecycle + OTP

Goal: Providers/consumers confirm service start/end.

  • Backend:
    • Generate OTP codes (start/end).
    • Update booking status accordingly.
  • Frontend:
    • Provider dashboard: see bookings, mark as started/completed via OTP.
    • Consumer: see OTP code, give to provider.
  • Email/SMS stub (just console log locally).
  • Deliverable: Service can move from requested → in-progress → completed with OTP check.

Week 6 — Reviews & Ratings

Goal: Feedback loop.

  • Backend:
    • Reviews table (rating, comment, booking_id).
    • Providers get average rating computed.
  • Frontend:
    • Post-review form after booking completion.
    • Display provider rating in search results.
  • Deliverable: After completion, consumer can leave review.

Week 7 — Chat (Local Only)

Goal: Simple in-app messaging tied to bookings.

  • Backend:
    • Messages table (booking_id, sender_id, text).
    • WebSocket endpoint in FastAPI.
  • Frontend:
    • Booking detail page → chat window (basic).
    • Auto-refresh (polling or socket).
  • Deliverable: Consumer & provider can chat on booking page.

Week 8 — Polish & Demo

Goal: Functional MVP demo-ready.

  • Add basic analytics endpoints (total bookings, total revenue, top services).
  • Seed some fake data (providers + services).
  • Frontend: Add landing page + navigation.
  • Docker Compose runs everything locally with volume-mounted DB.
  • Deliverable: You can walk through demo: sign up → search service → book → pay → OTP flow → chat → review.

By the end of 8 weeks (~80 hrs), you'll have a working local MVP you can demo to providers/consumers and start validating. Infra scaling (Redis, SQS, S3, EKS, Terraform) comes later once this loop feels solid.

Hermes Wiki