User Journey¶
Version 2.0 Β· Last updated May 2026 (revised β journey order enforced: Mind & Body + Money Plan required before Life Design; Growth Loop requires all four foundation steps; navigation group renamed to "Your Foundation"; full report now free β all report sections visible without payment)
User Types at a Glance¶
| Type | How they get it | Platform access | Notes |
|---|---|---|---|
| Free user | Self-register | Assessment + full Report (read-only) | PDF/print/AI chat locked; action tools (Life Design etc.) locked |
| Explorer | Pays RM 99 via Stripe | Full platform (all 3 stages) | 1-year access; planExpiresAt set by Stripe webhook |
| Explorer (complimentary) | Admin grants it | Full platform (permanent) | plan: 'explorer' with no planExpiresAt |
| Coach | Full application + Stripe payment + admin activation | Full platform + Coach Portal | plan: 'coach' β never expires; managed via Stripe Subscription Schedule |
| Org Member | Joins via org invite link | Full platform (while org plan active) | Covered by the organisation's subscription |
| Org Admin | Designated by Platform Admin | Manages their org's members + coaches | orgRole: 'admin' β not a platform-wide admin |
| Platform Admin | Set in MongoDB (role: 'admin') |
Every feature, no gates | Can manage users, orgs, coaches, workshops, promo codes |
1. Individual User Journey¶
1a. Free User¶
Register
ββ Complete profile
ββ Take assessment (`DiscoveryPage.tsx`)
ββ View basic Report
ββ [Gate] Life Design, Growth Loop, Coach/Workshop CTAs
ββ Upgrade prompt β /pricing
What a free user can do:
- Register and complete their profile
- Take the 47-question personality assessment
- View the full report β all three layer sections (Layer 1 Β· Your Archetype, Layer 2 Β· Your Force, Layer 3 Β· Secondary Voice), Blueprint Decoded, Know Before You Start summary, and Insight panels
- See "Find a Coach" and "Workshops" CTAs β locked with an "Upgrade" prompt
- Cannot export to PDF, print, or use the AI Report Chat
- Cannot access Life Design, Growth Loop, Financial Plan, Wellness Profile, or Compatibility Compare
- Sees an upgrade banner at the bottom of the report listing the paid action tools
1b. Explorer (Paid)¶
/pricing page
ββ Enter promo code (optional) or pay RM 99 via Stripe
ββ Stripe webhook sets plan: 'explorer' + planExpiresAt (1 year)
ββ Full platform unlocked:
ββ Stage 2 β Life Design (requires Discovery first)
ββ Stage 3 β Growth Loop (requires Discovery + Life Design first)
ββ Financial Plan, Wellness Profile, Life Design
ββ Self Mastery (`SelfMasteryPage.tsx`) β 5-phase AI-guided self-coaching (requires Discovery)
ββ People Blueprint (`PeopleBlueprintPage.tsx`) β workplace relationship guides + AI team coach (requires Discovery + Life Design)
ββ Find a Coach (direct request to coaches in our network)
ββ Workshops
Access expiry: planExpiresAt is checked on every gate. When expired, the user is downgraded to free-tier experience until they renew.
Promo code paths:
free_accesstype β skips Stripe entirely; admin grants plan directlypercent_off/fixed_offβ Stripe coupon applied at checkout; payment still processed
1c. Explorer (Complimentary β Admin Granted)¶
Admin Dashboard β Users tab
ββ Grant Full Access button (sets plan: 'explorer', no planExpiresAt)
ββ User gets permanent Explorer access β never expires
This is the correct path for beta testers, partners, or staff. Do not use Stripe coupons for this.
1d. Coach User¶
The coach onboarding flow has five distinct stages. The portal is not automatically activated on payment β it requires admin review and activation after payment is confirmed.
Note:
/coach-applyrequires a paid Explorer or Coach plan and a completed assessment. Coaches must have personally used the platform before applying.
Anyone fills in /coach-apply (public form)
ββ coachApplications doc created (status: 'pending')
ββ Admin reviews in AdminDashboard β Coaches tab β Applications
ββ Admin clicks "Pre-Approve"
ββ coachApplications β status: 'approved_pending_payment'
user doc: coachAppStatus = 'approved_pending_payment'
ββ "Coach Portal" nav link appears for this user
ββ CoachPortal shows Payment Gate (RM 599 Stripe button + promo option)
ββ Coach pays via Stripe Checkout
ββ Stripe Webhook (checkout.session.completed):
coachApplications β status: 'payment_received'
user doc: coachAppStatus = 'payment_received'
Subscription Schedule created (RM 599 β RM 199/year)
ββ CoachPortal shows "Payment Confirmed!" screen
ββ Admin sees "Activate Coach" button (only on payment_received)
ββ Admin activates:
coaches doc created/reactivated
user: plan = 'coach', coachAppStatus cleared
ββ Full Coach Portal unlocked
CoachPortal state machine when no coaches doc exists:
coachAppStatus |
Screen shown |
|---|---|
'approved_pending_payment' |
Payment gate (RM 599 + promo code option) |
'payment_received' |
"Payment Confirmed!" β waiting for admin activation |
(none, but plan === 'coach') |
"Activating portalβ¦" fallback |
| (none) | "Not a registered coach" + Apply link |
Coach pricing: RM 599 first year, RM 199/year from year 2 onwards (auto-managed via Stripe Subscription Schedule).
Annual renewal reminder: CoachPortal shows an amber banner within 30 days of the annual anniversary, red if overdue. Based on coach.createdAt in Firestore.
Referral system: Every coach gets a unique referralCode. New users who register via /register?ref=CODE are linked to the coach. 20% referral commission tracked in Admin.
2. The 5-Stage Learning Journey (Explorer + Coach users)¶
Stage 1 β DISCOVER
DiscoveryPage β ArchetypeReveal β Report
[47-question assessment β animated archetype reveal screen β 13-phase personalised report]
XP earned: +500 (assessment complete) β π Blueprint Unlocked badge β reaches βοΈ Comet level
β (requires Stage 1 complete + paid plan)
Stage 2a β KNOW SELF (Mind & Body)
MindBodyPage (`MindBodyPage.tsx`)
[Holistic wellness check-in β dosha, sleep, energy, exercise, nutrition]
XP earned: +200 (completion) β π§ Self Aware badge
β (requires Stage 2a complete + paid plan)
Stage 2b β FUND (Money Plan)
MoneyPlanPage (`MoneyPlanPage.tsx`)
Money Personality β Financial Snapshot β Budget Blueprint β Financial Goals β Health Score
[Financial baseline grounding before Life Design]
XP earned: +300 (completion)
β (requires Stage 1 + Stage 2a + Stage 2b complete + paid plan)
Stage 3 β DESIGN
LifeDesignPage (`DesignMyLifePage.tsx`) (Life Design β 5 steps)
Assessment Status β Future Path β Life Wheel β Guided Ikigai β Life Blueprint β Strategic Audit
[Life Wheel Focus Zones β Ikigai Statement β Vision β Mission β SMART Goals across 6 life areas]
XP earned: +400 (completion) β ποΈ Life Designer badge β typically reaches π« Nova level
β (requires Stage 1 + Stage 2a + Stage 2b + Stage 3 complete + paid plan)
Stage 4 β DO
GrowthLoop
Overview β Weekly Reflection β Habit Tracker β Cycle Reviews
[30 / 60 / 90 day review cycles with per-habit mastery tracking and 7-day consistency chart]
XP earned per reflection: +100 β βοΈ Week 1 Warrior badge (first reflection)
XP earned at streak milestones: +150 (7/14/21/30/60/90 days) β π₯ Habit Builder badge (7-day streak)
XP earned per weekly challenge: +75
Streak system: consecutive daily habit completions; streak freeze earned per weekly reflection
All 5 stages complete β π Full Spectrum badge + potential π Supernova level (2,100 XP total).
Gates are enforced in ProtectedRoute.tsx using helper functions from src/utils/journeyGates.ts:
| Gate function | What it checks | Controls access to |
|---|---|---|
hasPaidAccess(profile) |
role === 'admin', plan === 'coach', or plan === 'explorer' with valid/no expiry |
All paid modules |
canAccessWellnessProfile(profile) |
discoveryCompleted && hasPaidAccess |
Mind & Body (MindBodyPage.tsx) |
canAccessFinancialPlan(profile) |
discoveryCompleted && hasPaidAccess |
Money Plan (MoneyPlanPage.tsx) |
canAccessFutureStudio(profile) |
discoveryCompleted && wellnessProfile && financialPlan |
Life Design (DesignMyLifePage.tsx) |
canAccessGrowthLoop(profile) |
discoveryCompleted && wellnessProfile && financialPlan && lifeDesignCompleted |
Growth Loop (DailyGrowthPage.tsx) |
canAccessSelfInquiry(profile) |
discoveryCompleted === true AND hasPaidAccess === true |
Self Mastery (SelfMasteryPage.tsx) |
canAccessCorporate(profile) |
discoveryCompleted === true AND lifeDesignCompleted === true AND hasPaidAccess === true |
People Blueprint (PeopleBlueprintPage.tsx) |
3. Organisation (Corporate) Journey¶
3a. Platform Admin sets up the org¶
AdminDashboard β Organisations tab
ββ Create organisation (name)
ββ Unique inviteCode generated (e.g. "ACME2026")
ββ Invite link: https://yourapp.com/register?org=ACME2026
ββ Assign coaches to the org (updateOrgCoaches)
ββ Activate org plan (activateOrgPlan)
ββ Sets plan: 'explorer' on the org doc
ββ Batch-updates ALL members to plan: 'explorer'
3b. Org Admin journey¶
An Org Admin is a regular user with orgRole: 'admin' (not a platform-wide admin). They are designated manually or via a future invite-admin flow.
What an Org Admin can do:
- View all members in their organisation
- Assign members to coaches (from the org's whitelisted coach list)
- Monitor member progress (report summaries, growth loop activity)
- Cannot access platform-wide admin features (user management, promo codes, etc.)
3c. Org Member journey¶
Employee receives invite link from Org Admin or HR
ββ /register?org=ACME2026
ββ Registers normally β orgId and orgRole: 'member' auto-assigned
ββ If org has an active plan β plan: 'explorer' auto-set on their account
ββ Full platform access immediately
ββ Org Admin can assign them to a specific coach
Key rule: When the org's plan is deactivated, all members are automatically reverted to plan: 'free'. Their data is preserved.
4. Platform Admin Journey¶
The Platform Admin has role: 'admin' set directly in MongoDB. This bypasses all gates.
Admin capabilities (via /admin):
| Tab | What they can do |
|---|---|
| Overview | Platform-wide stats (users, assessments, revenue, coaching) |
| Analytics | Archetype distribution charts |
| Engagement | Active user tracking |
| Users | Search users, reset cooldown, grant/change plan, view any user's report |
| Profiles | Browse completed profiles |
| Coaches | Manage full coach lifecycle: Pre-Approve / Reject applications; view Payment Received status; Activate Coach; Delete Coach; Grant / Revoke portal access per active coach |
| Workshops | Create, edit, delete workshop events |
| Promo Codes | Create free-access / percent-off / fixed-off codes; toggle; delete |
| Feedback | View all post-report ratings and written notes |
| Organisations | Create orgs, manage invite codes, activate/deactivate org plans |
5. How Access Gates Work (Summary)¶
hasPaidAccess(profile) returns true if ANY of:
ββ profile.role === 'admin'
ββ profile.plan === 'coach'
ββ profile.plan === 'explorer'
ββ AND no planExpiresAt (admin-granted permanent access)
ββ AND planExpiresAt is in the future (active paid/org subscription)
The gate logic lives entirely in src/utils/journeyGates.ts. Both ProtectedRoute.tsx (page-level blocking) and Layout.tsx (nav lock icons) import from this single source of truth.
6. Coaching Request Flow (Client β Coach)¶
Client (Explorer/Coach plan) browses /coaching
ββ Finds a coach β clicks "Request to Work Together"
ββ Sends message β CoachRequest created (status: 'pending')
ββ Coach sees request in Coach Portal β Requests tab
ββ Coach sends a Proposal (price, format, payment details)
ββ Client reviews proposal β Accepts (agrees to T&Cs)
ββ Client sends payment (outside platform) β uploads receipt
ββ Coach confirms payment received
ββ Coaching relationship begins
ββ Shared conversation thread opened (conv ID embedded in notification link as `?conv=<uuid>`)
Request statuses: pending β proposed β accepted β awaiting_payment β payment_submitted β active
7. Retake Cooldown¶
Users are locked from retaking the assessment for 6 months after their first submission. This prevents mood-based score drift β meaningful archetype shifts take at least 6 months of new life experience.
- Locked screen shows last assessment date + next unlock date
- Admin can override: set
responses/{uid}.createdAtto a date 6+ months ago in MongoDB (e.g. viamongoshor the AdminDashboard user panel)
8. XP System & Progression¶
The XP system rewards completion and consistency across all stages:
| Action | XP Earned | Badge |
|---|---|---|
| Assessment complete | +500 | π Blueprint Unlocked |
| Wellness Profile complete | +200 | π§ Self Aware |
| Life Design complete | +400 | ποΈ Life Designer |
| Weekly reflection | +100 | βοΈ Week 1 Warrior (first) |
| Streak milestone (7d) | +150 | π₯ Habit Builder |
| Self Mastery session | +XP_REWARDS.selfInquiryComplete | π Inner Mirror (first) |
| Financial Plan complete | +300 | β |
Levels (based on cumulative XP): - βοΈ Comet β reaches ~500 XP (after assessment) - π« Nova β reaches ~900 XP (after Life Design) - π Supernova β reaches ~2,100 XP (all stages complete)
9. Platform Access Summary¶
| Feature | Free | Explorer | Coach |
|---|---|---|---|
| Personality Assessment | β | β | β |
| Core Identity Report | β | β | β |
| Phases 02β13 | Locked | β | β |
| Life Design | Locked | β | β |
| Growth Loop | Locked | β | β |
| Self Mastery | Locked | β | β |
| People Blueprint | Locked | β | β |
| Find a Coach | Locked | β | β |
| Workshops | Locked | β | β |
| Coach Portal | β | β | β |
10. Glossary¶
| Term | Definition |
|---|---|---|
| Explorer | Paid plan (RM 99/year) β unlocks all platform features |
| Plan expires | When planExpiresAt is in the past β user reverts to free-tier experience |
| Discovery complete | discoveryCompleted = true β required gate for all Stage 2+ modules |
| Life Design complete | lifeDesignCompleted = true β required gate for Growth Loop |
| Cooldown period | 6-month lockout preventing assessment retake |
| Org Member | User who joined via org invite β access covered by org plan |
| Org Admin | User with orgRole: 'admin' β manages their org, not platform-wide |
| Platform Admin | User with role: 'admin' in MongoDB β full system access |
π Content Backlog (documentation edits only)¶
- [ ] Add visual flow diagram for the 5-stage journey
- [ ] Document the full coach portal activation state machine
- [ ] Translate to Bahasa Malaysia
π οΈ Product Roadmap (features to build)¶
- [ ] Push notifications for weekly reflection reminders
- [ ] Mobile app with offline-capable journey tracking
- [ ] Coach dashboard with client progress analytics