TradeForce migration docs

#Module map — tradeforce-50323

Source bundle: bubble-ir · content_hash 0730383603a0811b9314f2c6bb54e9b40d7f25e134c9fd1fdbc9d3a68d0a2259

Capability modules are primary user journeys (vertical slices). Stub page 404 (AAU / /pages/AAX) is excluded. Open assess risks (especially MON-MARKETPLACE) bound module scope; they are not invented product features.

Shared reusables have a sole implement owner: MOD-COMPANY-SHIFTS owns DetailedViewJob (bTIgC), EndJobPopup (bTHkx), and RGaction (bTHTn). Contractor and time-tracking modules cite those catalog ids in evidence segments only.

Module Size Evidence roots Primary journeys Surfaces (ui / api / rules) Purpose
MOD-AUTH — Sign-in and account access medium bTGYf, AAL open index → Sign In / Sign Up / Reset → authenticate → role home; reset password → return to sign-in; request reset email → complete on reset_pw ui: index, reset_pw; api: auth session; rules: role option after signup Register, verify, sign in, and reset passwords (ACC-AUTH-SURFACE cutover). Header owned by MOD-SHELL.
MOD-SHELL — Workspace chrome and navigation medium bTHOe, bTHMl, bTMyh2 authenticated user → Header / SideBar / SideMenuCompany → open named next journeys ui: Header, SideBar, SideMenuCompany; api: none owned; rules: nav option sets Shared chrome unlocking shift, payment, time-tracking, admin, and chat routes.
MOD-ONBOARDING — Role onboarding and credentials medium bTHDn0 choose Contractor/Company → profile + skills + docs → persist; location → Country State City → save region ui: onboarding; api: Country State City; rules: docs_type, skill_set, role Profile, credentials, and location before marketplace entry.
MOD-COMPANY-SHIFTS — Company shift dashboard large bTITd, bTIgC, bTHkx, bTHTn, bTMBT filter shifts → DetailedViewJob → edit → persist; post job → publish; RGaction approve/cancel; EndJobPopup → update tracking ui: company_dashboard_shifts + sole owner of job/end-job/RG reusables; api: shift backend event; rules: shift_type, rates, money-field writes Company post/manage shifts and applicants (MON-CLIENT-WRITES). Sole owner of DetailedViewJob / EndJobPopup / RGaction.
MOD-CONTRACTOR-SHIFTS — Contractor shifts and profile large bTHMg filter open shifts → job detail; apply / MyShifts → persist; profile docs → persist ui: contractor_shifts_profile; refs DetailedViewJob / RGaction (company-owned); api: shift reads/writes via client→Supabase; rules: filters, sort, skill_set Contractor browse/apply and profile maintenance (shared reusables not dual-rooted).
MOD-TIME-TRACKING — Time tracking and approvals medium bTJFi0, bTLsx, bTMBg, bTKPV edit hours/breaks → persist; submit report → create_list_tracking / send_tracking_approve; email → approve/reject; 15_minuts_delay helper resumes tracking backend ui: contractor_time-tracking; refs EndJobPopup (company-owned); api: tracking backend events (+ recursive approve, delay); rules: break, approve_type, tracking Record and approve hours (LOG-RECURSIVE on approve).
MOD-PAYMENTS — Contractor payments and payouts medium bTIzV0 view upcoming/previous payment cycles; email → open payment page; optional Stripe account fields ui: contractor_payment; api: payment-cycle email (PostMark); rules: status_paid, stripe fields Payment schedules visible in export. MON-MARKETPLACE Connect/payouts programme remains an open scope boundary—not invented KYC/connect journeys.
MOD-ADMIN — Admin verification and ops large bTHun0 AdminTab verify companies/contractors → persist; shift/invoice/payment tabs → edit; set skill rates → persist ui: admin; api: client writes → server authority; rules: adminnav, admintab, rates Platform verification, invoices, schedules, and rates.
MOD-CHAT — Messaging and notifications medium bTJQD0, bTJQB0 open chat → send message → persist; New message email → open thread ui: chat_page + Chat reusable; api: PostMark New message; rules: chat/message privacy Company ↔ contractor messaging. ED root slice is thin—chase inventory/raw at decompose.

#Open risks (scope notes, not features)

Risk Module Note
MON-MARKETPLACE MOD-PAYMENTS Separate Connect/payouts programme; do not invent KYC/connect flows beyond stripe_account_id / stripe_name evidence until blocker answered.
MON-CLIENT-WRITES MOD-COMPANY-SHIFTS (also admin / payment / EndJobPopup) Money-field browser writes need transactional server authority.
LOG-CLIENT-WRITES MOD-COMPANY-SHIFTS (also admin / payments / time-tracking) All persistent client DB writes need server/RLS or edge authority in app/supabase—not only money fields.
LOG-RECURSIVE MOD-TIME-TRACKING send_tracking_approve (bTMBg) must become a real queue/cursor job.
ACC-AUTH-SURFACE MOD-AUTH Auth provider + credential cutover ADR required.

#Excluded

Surface Reason
AAU / 404 Stub/404-only; not a product journey

Generated from the repository at 2026-09-22 15:55 UTC · source of truth is docs/ in the workspace, not this site.