SHOT Perform — Complete User Journey Map
scroll = zoom · drag = pan · double-click = reset
Download PNG
SHOT Perform — Complete User Journey Map
Every screen · tab · action · navigation path across coach / athlete / parent · event & evaluation lifecycles
Coach
Athlete
Parent
Event lifecycle
Eval lifecycle
Quick sheet
Shared / chrome
A · ENTRY & SHELL
Login
→ /perform
/perform
dispatcher · useCurrentRole()
Coach
Athlete
Parent
Bottom Nav
(StandardFooter)
?tab= · gold active
HOME
/home
PERFORM
?tab=spotlight
EVENTS
?tab=events
HISTORY
?tab=history
CLUB
?tab=club
B · COACH (teal)
C · ATHLETE (purple)
D · PARENT (gold)
SPOTLIGHT (CoachTriage)
FeedbackRAGQueue row
→ [feedback sheet]
NextEventCard
→ [event sheet]
TopMoverCard
→ [improver] → Dev Report
AssessmentList row
→ [assessment sheet]
AnnouncementsDigest
→ [announcement sheet]
QuickAction: Create Event
→ events/create
QuickAction: Announce
→ announcements/create
QuickAction: Eval
→ [evals-outstanding]
EVENTS (CoachEventsTab)
Week | List | Month | Past
mode toggle + filter
Create Event (ghost)
→ events/create ?date
Tap event
→ [event sheet] → full page
HISTORY (CoachHistoryTab)
Team | Athlete toggle
match record · framework gaps
Tap athlete
→ Athlete mode (inline chart)
CLUB (Team + Admin)
ClubTeamSwitcher
switch team context
Roster → tap athlete
→ [sheet] → Dev Report
Invite Athletes
→ modal
Admin: Settings / Intensity
→ ?tab=admin§ion
Admin: Framework
→ FrameworkExplorer
SPOTLIGHT (StoryFeed)
Coach left feedback
→ [feedback sheet] read-only
Self-eval due (48h)
→ [self-eval] → PreEvalTab
Next event
→ [event sheet]
Streak this month
—
My Development (IDP)
→ Development Report
EVENTS (AthleteEventsTab)
Week | Month toggle
Tap event
→ [event sheet]
HISTORY (premium)
Season Summary
Events·AvgScore·Evals·Streak
Framework Performance
category scores
Generate my report
→ Development Report
CLUB (AthleteClubTab)
Team identity + roster
teammates list
SPOTLIGHT (ChildFocused)
Child switcher
multi-child select
ChildIdentityCard
avg score · trend
Child's next event
→ [event-parent sheet]
OwedEvalBanner row
→ [parent-eval] → PreEvalTab
RecentEvaluations row
→ [eval-row sheet]
View development
→ child report
EVENTS (ParentEventsTab)
Week | Month toggle
Tap event
→ [event-parent ?childId]
HISTORY (child)
Child Season Summary
Generate child's report
→ Development Report
CLUB (ParentClubTab)
Child's team roster
E · EVENT LIFECYCLE STATE MACHINE (coach drives)
CREATE
Step1 info → Step2 evals
DRAFT
select players/coaches/positions
PUBLISHED
attendance · RSVP · PRE-EVAL
IN_SESSION
timer · live attendance
EVALUATING
coach scores 1-10 + comment
COMPLETED / REVIEW
share feedback · lock
Create
Publish
Start Session
End Session
Complete
CANCELLED
terminal
Cancel
F · EVALUATION LIFECYCLE (cross-persona sequence)
PRE-EVAL
athlete/parent · published
event runs
in_session
POST-EVAL
athlete/parent · evaluating
COACH SCORES
per area · evaluating
COACH FEEDBACK
compose comments
SHARE TOGGLE
share_with_athlete · review
VIEW FEEDBACK
athlete & parent · gated
SHARE GATE: share=false → "Waiting for coach feedback"
G · QUICK-VIEW SHEETS (QuickViewSheet dispatcher · 11 kinds)
event
→ /events/:id/published
event-parent
→ /events/:id ?childId
feedback
→ /events/:id/review
self-eval
→ /events/:id/published
parent-eval
→ /events/:id/published
eval-row
→ /events/:id (status)
improver
→ Development Report modal
assessment
→ ?tab=events
announcement
→ announcements/:id
team
→ ?tab=club
evals-outstanding
→ nested eval-row sheets
H · CLUB / TEAM / ANNOUNCEMENTS TREE
MyClubsPage
/perform/clubs
ClubDashboardPage
/clubs/:id
ClubCoaches
ClubPlayers
ClubEvents
ClubSettings
CoachInvite
TeamCreate
TeamDashboardPage
/clubs/:id/teams/:id
TeamPlayerInvite
FrameworkExplorer
AnnouncementsPage
/clubs/:id/announcements
CreateAnnouncement
AnnouncementDetail
ModerationDashboard
AnnouncementSettings
NotificationPrefs
sheets
open full → event
Create Event
drives scoring
pre-eval
coach=teal · athlete=purple · parent=gold · event=blue · eval=green · sheet=pink