Experience flows
Experience flows (CAP RPL)
Section titled “Experience flows (CAP RPL)”Audience: ux, frontend, qa, writing
Status: specced
Owns: UI/UX
Depends on: Lifecycle, Personas, Domain entities
Screen names marked (TBD) are placeholders until UX inventory is complete.
Candidate — account & identity
Section titled “Candidate — account & identity”| Step | Stage / status | Screen |
|---|---|---|
| Create account | — | Create account |
| Verify via OTP | — | OTP verify |
| Login (password / Google) | — | Login, then CAP GET /me + GET /onboarding/mine |
| Forgot / reset password via OTP | — | Forgot password → OTP → reset |
| Change password | — | Orchestrator PATCH /auth/change-password |
| Edit personal contact / address / occupation / accessibility / photo | — | CAP GET/PATCH /me/profile (identity-linked names/DOB/gender/nationality lock after NIN; occupation and accessibility write the candidate onboarding blob; photo is photoAssetId on CapUser — GET also returns resolved photo.url) |
| Notification channels | — | Orchestrator GET/PUT /notifications/preferences (not nested on CAP profile) |
| Delete account | — | CAP GET /me/deletion-eligibility then OL POST /auth/delete-account |
| Complete profile; start NIN verify | DRAFT / IN_PROGRESS |
Profile · Identity verify (TBD) |
| NIN verified; can submit | DRAFT / AWAITING_ACTION |
Application draft |
Candidate — application happy path
Section titled “Candidate — application happy path”| Step | Stage / status | Screen |
|---|---|---|
| Select trade / centre; create draft | DRAFT / IN_PROGRESS |
Application create |
Fill wizard (personal SoT, experience preference units, identity, declarations); GET …/progress |
DRAFT / IN_PROGRESS |
Application form |
| Submit (blocked if NIN not verified) | → CENTRE_REVIEW |
Submit confirmation (TBD) |
| Await centre decision | CENTRE_REVIEW / AWAITING_ACTION |
Application status |
| Amend on feedback | CENTRE_REVIEW / ATTENTION_REQUIRED |
Feedback / chat (TBD) |
| Pay centre | PAYMENT / AWAITING_ACTION |
Payment (TBD) |
| Evidence with facilitator | EVIDENCE |
Evidence folder (TBD) |
| Interview scheduled / attend | INTERVIEW / SCHEDULED |
Interview (TBD) |
| Consent or appeal | INTERVIEW / APPEAL_OPEN |
Results / appeal chat (TBD) |
| Track verification & certificate | later stages → CERTIFICATION |
Status · Certificate (TBD) |
Candidate — gap training path
Section titled “Candidate — gap training path”| Step | Stage / status | Screen |
|---|---|---|
| Unsuccessful interview with gaps | CLOSED + GAP_TRAINING |
Outcome (TBD) |
| View LMS course recommendations | — | Recommendations (TBD) |
Refs: Recommendations, LMS.
Centre admin / staff
Section titled “Centre admin / staff”| Step | Persona | Notes |
|---|---|---|
| Onboard centre (name, address, payout) | Centre admin | Before reviewing applications |
| Invite staff | Centre admin | POST /centre/staff; OL ProvisionAccount (generated password mail for new users; “added to centre” for existing). Staff onboarding once (variant: staff). Headers X-CAP-PERSONA + X-CAP-CENTRE-ID. |
| Assign reviewer / facilitator / IQA / panel | Centre staff | During CENTRE_REVIEW → EVIDENCE → INTERVIEW |
| Accept, request changes, or reject application | Reviewer | Statuses: APPROVED, ATTENTION_REQUIRED, REJECTED |
| Open centre dashboard | Centre staff | KPIs / UTC-year charts; revenue hidden without wallet read |
| Payments page | Centre super_admin |
GET /centre/payments/summary (all-time net credits; pending = unpaid or failed); GET /centre/payments; GET /centre/wallet; withdraw is a ledger debit. Receipt: GET /applications/{id}/receipt |
| Centre settings (org) | Centre super_admin |
GET/PATCH /centre/profile (PATCH still logoAssetId after OL POST /storage/upload; GET returns logoAssetId and resolved logo; nested organisation onboarding; registrationNo locked); GET/PUT /centre/pricing (PUT { items[] } atomic) |
| Personal settings | Any persona | CAP /me/profile (contact, address, occupation, accessibility, photo); OL prefs / change-password / delete-account |
| Review applications queue | Centre staff | GET /centre/applications/summary cards; GET /applications with X-CAP-PERSONA: centre (q, tradeId, type, status, stage, ivApproved, sort submittedAt) |
| Share application dossier | Centre staff (after IV APPROVED) | POST /applications/{id}/share-token; viewer GET /shared/applications/{token} (no Bearer). DELETE revokes |
| Mark certified (off-platform AB) | Centre staff when CAP_CENTRE_CERTIFY_BYPASS |
PATCH /centre/applications/bulk { ids, action: "certify" } — 404 if flag off |
| Schedule interview | Centre staff | POST /applications/{id}/interview/schedule (mode, link / useCentreAddress); GET the same path for the current booking |
| Publish / close job listings | Centre admin | POST /centre/job-postings; close { status: "closed" } (no “mark as filled”). Shortlist → accepted; server sets filled when occupancy ≥ slot. Delete only if zero applicants |
| Review retained assessor requests | Centre admin | Enriched list/detail (sectors, not trade); bulk or single approve/reject (pending only); revoke approved. IV/panel picker: GET /centre/assessors (default approved) |
| Open Assessors page | Centre staff | Summary cards + roster (GET /centre/assessors, /summary, /{id}, /{id}/applications). No invite; New Assessor → job postings. Profile read-only |
| Search directory; start or reply to chat | Any authenticated user | CAP GET /directory then Orchestrator conversations; UI may hide broadcast for non-admins |
| Review staff activity | Centre staff | CAP-local activity cards (name, role, action, UTC time) |
Assessor (QAA / IQA / EV)
Section titled “Assessor (QAA / IQA / EV)”| Step | Notes |
|---|---|
| Select assessor persona after signup | Credentials vetted by platform staff |
| Open assessor console | Summary, assigned apps, calendar (GET /assessor/events), centres |
| Work assigned applications | Facilitator vault review; lead PUT …/interview/forms/{formType}; panel evaluate (+ lead decision/outcome) — Lifecycle |
| Assigned to centre (one type per centre) | POL-09 |
| EV verifies applications (not at own centre) | POL-10 · EXTERNAL_VERIFICATION |
Awarding body
Section titled “Awarding body”| Step | Stage | Notes |
|---|---|---|
| Assign EV | EXTERNAL_VERIFICATION |
|
| Issue / record certificate | CERTIFICATION |
POL-06 open |
Platform admin / staff
Section titled “Platform admin / staff”| Step | Notes |
|---|---|
| Invite-only onboarding | Set password on invite |
| Vet assessors; assign to centres | Before centre work |
See also
Section titled “See also”- API contract groups: API overview
- Acceptance coverage: Test cases