How aksharaagarwal21/posturevision works
PostureVision is a browser-based workout planner and webcam coach. Users configure or choose a plan, train through free practice or guided sets, and review saved results. The guided runtime sends webcam pose landmarks into session analysis for rep counting and form feedback, while the runner manages sets and rests; workout results feed history. The README documents additional capabilities such as exercise guides, voice cues, and install support. Edges reflect shown imports/calls or README statements; unshown internal wiring is omitted.
Main entry points: WorkoutPlayer.jsx Guided player · App.jsx App navigation · PlanBuilder.jsx Plan builder · WebcamView.jsx Webcam capture
Components 28
Workout planning
- Plan builder
src/components/PlanBuilder.jsx - Plan templates
src/engine/workoutPlan.js - Exercise catalog
src/engine/exercises.js - Calorie estimates
src/engine/calories.js
Live training
- Free practice
src/components/WorkoutView.jsx - Guided player
src/components/WorkoutPlayer.jsx - Workout runner
src/engine/workoutRunner.js - Webcam capture
src/components/WebcamView.jsx - Video feedback overlay
src/components/overlay.js - Voice coach
src/engine/voiceCoach.js - Workout announcements
src/engine/workoutAnnouncer.js
Pose analysis
- Pose detector
src/pose/poseDetector.js - Workout session
src/engine/workoutSession.js - Pose metrics
src/engine/poseMetrics.js - Rep counter
src/engine/repCounter.js - Form analysis
src/engine/postureAnalyzer.js - Trained classifier
src/engine/poseClassifier.js
Results and history
- Workout history
src/engine/history.js - Workout summary
src/components/WorkoutSummary.jsx - History view
src/components/HistoryView.jsx - History statistics
src/components/StatsPanel.jsx
Guides and install
- Exercise guides
src/content/exerciseGuides.js - Animated demos
src/components/DemoFigure.jsx - Install prompt
src/pwa/installPrompt.js - Install banner
src/components/InstallBanner.jsx
Other components
- User
- App navigation
src/App.jsx - Browser camera and speech
Connections 34
- User → App navigation: chooses workflow
src/App.jsx - App navigation → Plan builder: opens plan
src/App.jsx - App navigation → Free practice: opens practice
src/App.jsx - App navigation → History view: opens history
src/App.jsx - Plan builder → Plan templates: builds plan
src/components/PlanBuilder.jsx - Plan builder → Workout history: saves plans
src/components/PlanBuilder.jsx - Plan builder → Exercise catalog: selects exercises
src/components/PlanBuilder.jsx - Plan templates → Exercise catalog: reads definitions
src/engine/workoutPlan.js - Plan templates → Calorie estimates: estimates calories
src/engine/workoutPlan.js - Plan builder → Guided player: starts plan
src/components/PlanBuilder.jsx - Guided player → Workout runner: runs plan
src/engine/workoutRunner.js - Guided player → Webcam capture: renders camera
src/components/WorkoutPlayer.jsx - Webcam capture → Browser camera and speech: requests video
src/components/WebcamView.jsx - Webcam capture → Pose detector: detects pose
src/components/WebcamView.jsx - Webcam capture → Workout session: processes frames
- Workout session → Pose metrics: computes metrics
src/engine/workoutSession.js - Workout session → Rep counter: counts reps
src/engine/workoutSession.js - Workout session → Form analysis: checks form
src/engine/workoutSession.js - Workout session → Trained classifier: classifies poses
src/engine/workoutSession.js - Guided player → Trained classifier: loads trained model
src/components/WorkoutPlayer.jsx - Webcam capture → Video feedback overlay: draws feedback
src/components/WebcamView.jsx - Guided player → Voice coach: coaches reps
src/components/WorkoutPlayer.jsx - Guided player → Workout announcements: announces sets
src/components/WorkoutPlayer.jsx - Guided player → Exercise guides: shows steps
src/components/WorkoutPlayer.jsx - Guided player → Animated demos: shows demos
src/components/WorkoutPlayer.jsx - Animated demos → Exercise catalog: uses exercise data
src/components/DemoFigure.jsx - App navigation → Workout history: loads and saves results
src/App.jsx - App navigation → Workout summary: shows completion
src/App.jsx - History view → Workout history: reads records
src/components/HistoryView.jsx - History view → Workout summary: shows past workout
src/components/HistoryView.jsx - History view → History statistics: presents totals
- App navigation → Install banner: shows install offer
src/App.jsx - Install banner → Install prompt: checks prompt
src/components/InstallBanner.jsx - Install prompt → Browser camera and speech: captures install event
src/pwa/installPrompt.js