How allylearning/eicoach works
EIcoach is a browser-based emotional-intelligence coaching experience. A user works through a sequence of athlete-focused reflection prompts, submits a response for AI-generated feedback, then proceeds or retries. The page owns that interaction and calls the server feedback flow; the flow builds the coaching prompt and uses the configured Genkit/Gemini model, with a fallback response on failure. The graph also preserves substantial shared UI modules. Evidence is limited to the README and sampled source/SOURCE INDEX references; unsampled modules are not assigned unverified runtime relationships.
Main entry points: page.tsx Prompt session · sidebar.tsx Sidebar components · button.tsx Button · utils.ts Class utilities
Components 20
Coaching experience
- Prompt session
src/app/page.tsx - App layout
src/app/layout.tsx
AI feedback
- Feedback flow
src/ai/flows/generate-feedback.ts - Genkit model setup
src/ai/ai-instance.ts
Shared interface
- Button
src/components/ui/button.tsx - Card
src/components/ui/card.tsx - Input
src/components/ui/input.tsx - Textarea
src/components/ui/textarea.tsx - Chart components
src/components/ui/chart.tsx - Sidebar components
src/components/ui/sidebar.tsx - Mobile detection
src/hooks/use-mobile.tsx - Sheet components
src/components/ui/sheet.tsx - Tooltip components
src/components/ui/tooltip.tsx - Skeleton
src/components/ui/skeleton.tsx - Separator
src/components/ui/separator.tsx - Toast primitives
src/components/ui/toast.tsx - Toast state
src/hooks/use-toast.ts - Class utilities
src/lib/utils.ts
Other components
- Athlete
- Google Gemini
Connections 16
- Athlete → Prompt session: uses
- Prompt session → Feedback flow: requests feedback
src/app/page.tsx - Feedback flow → Genkit model setup: generates with
src/ai/flows/generate-feedback.ts - Genkit model setup → Google Gemini: configures model
src/ai/ai-instance.ts - Prompt session → Button: renders
src/app/page.tsx - Prompt session → Card: renders
src/app/page.tsx - Prompt session → Input: renders
src/app/page.tsx - Prompt session → Textarea: renders
src/app/page.tsx - Sidebar components → Mobile detection: checks viewport
src/components/ui/sidebar.tsx - Sidebar components → Sheet components: uses on mobile
src/components/ui/sidebar.tsx - Sidebar components → Tooltip components: renders
src/components/ui/sidebar.tsx - Sidebar components → Button: uses
src/components/ui/sidebar.tsx - Toast state → Toast primitives: manages toast state
src/hooks/use-toast.ts - Chart components → Class utilities: merges classes
src/components/ui/chart.tsx - Sidebar components → Class utilities: merges classes
src/components/ui/sidebar.tsx - Button → Class utilities: merges classes
src/components/ui/button.tsx