SHOT Clubhouse · feat/perform-redesign

SHOT Perform — Complete User Journey Map

Every screen, tab, action, and navigation path across coach / athlete / parent, plus the event & evaluation lifecycles, the quick-sheet routing, and the club/team tree. Tap a tab to expand its actions. Source-accurate from feat/perform-redesign.
CoachAthleteParentEvent lifecycleEval lifecycleQuick sheetClub tree
A

Entry & Shell

role-routed single entry
Login
auth
/perform
dispatcher · useCurrentRole()
Coach · CoachPerform
Athlete · PlayerPerform
Parent · ParentPerform
Bottom nav = StandardFooter · query-param driven (?tab=) · single SHOT-gold active indicator on every perform screen.
B·C·D

Persona Surfaces

3 personas × 4 tabs · every action → destination
CoachCoachPerform
SpotlightCoachTriage
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]
EventsCoachEventsTab
Mode toggleWeek · List · Month · Past
Event filterby team / type
Create Event (ghost)/…/events/create?date
Tap event[event sheet] → full page
HistoryCoachHistoryTab
Team | Athlete togglematch record · framework gaps
Tap athleteAthlete mode (inline chart)
Season selectorfilter by season
ClubCoachClubTab (Team+Admin)
ClubTeamSwitcherswitch team context
Roster → tap athlete[sheet] → Generate Dev Report
Invite Athletesmodal
Admin · Settings / Intensity?tab=admin&section
Admin · FrameworkFrameworkExplorer
AthletePlayerPerform
SpotlightAthleteStoryFeed
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
EventsAthleteEventsTab
Mode toggleWeek · Month
Tap event[event sheet]
HistoryPerformanceHistoryViewer ⋆premium
Season SummaryEvents · AvgScore · Evals · Streak
Framework Performancecategory scores
Generate my reportDevelopment Report
ClubAthleteClubTab
Team identity + rosterteammates list
ParentParentPerform
SpotlightParentChildFocused
Child switchermulti-child select
ChildIdentityCardavg score · trend
Child's next event[event-parent sheet]
OwedEvalBanner row[parent-eval] → PreEvalTab
RecentEvaluations row[eval-row sheet]
View developmentchild report
EventsParentEventsTab
Mode toggleWeek · Month
Tap event[event-parent ?childId]
Historychild season
Child Season Summary
Generate child's reportDevelopment Report
ClubParentClubTab
Child's team roster
E

Event Lifecycle

coach-driven state machine
CREATE
events/create
Step 1 basic info → Step 2 evals & assessments
Create
DRAFT
/draft
select players · coaches · positions · assess toggle
Publish
PUBLISHED
/published
attendance · RSVP · pre-eval · invites
Start Session
IN_SESSION
/session
session timer · live attendance
End Session
EVALUATING
/evaluate
coach scores 1-10 + comment per area
Complete
COMPLETED
/review
share-with-athlete toggle · finish
CANCELLED
terminal · from Draft or Published (Cancel / Delete)
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
evaluating
SHARE TOGGLE
share_with_athlete
review
VIEW FEEDBACK
athlete & parent
gated
Share gate — feedback is visible to athlete/parent only when share_coach_feedback = true (coach's "Share with athlete" toggle). Otherwise → "Waiting for coach feedback".
G

Quick-View Sheets

QuickViewSheet dispatcher · 11 kinds
Sheet kindTriggerPrimary destination
eventCoach/Athlete tap event card/events/:id/published
event-parentParent tap event card/events/:id ?childId
feedbackTap feedback row / story/events/:id/review
self-evalAthlete tap self-eval due/events/:id/published
parent-evalParent tap owed-eval/events/:id/published
eval-rowTap row in evals-outstanding/events/:id (status)
improverCoach tap top-moverDevelopment Report modal
assessmentCoach tap category?tab=events
announcementCoach tap announcement/clubs/:id/announcements/:id
teamTeam quick-view (rare)?tab=club
evals-outstandingCoach tap 'Eval' CTAnested eval-row sheets
H

Club / Team / Announcements

management sub-tree
  • MyClubsPage /perform/clubs
    • ClubDashboardPage /clubs/:id
      • ClubCoachesPage
      • ClubPlayersPage
      • ClubEventsPage
      • ClubSettingsPage
      • CoachInvitePage
      • TeamCreatePage
    • TeamDashboardPage /clubs/:id/teams/:id
      • TeamPlayerInvitePage
      • FrameworkExplorerPage
    • AnnouncementsPage /clubs/:id/announcements
      • CreateAnnouncementPage
      • AnnouncementDetailPage
      • ModerationDashboard
      • AnnouncementSettingsPage
      • NotificationPrefsPage

How the clusters connect

Canonical path: /performEVENTSCreate Event → configure (Step 1 info → Step 2 evals) → Publish → Draft becomes Published.