#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 |