How ahron-gutierrez/fluidia works
Fluidia is a browser-based physics-learning application. Learners enter through the routed app, study fluid concepts in lessons and simulations, then practice through quizzes, sandboxes, and story-driven quests. Gameplay and account activity contribute to saved progress, achievements, and leaderboard views. The graph groups those user-facing domains and includes the shared account/progress layer. Relationships to unsampled feature internals are limited to routing or documented capabilities; the README describes the backend account API but not its implementation.
Main entry points: App.jsx Route application · gameData.js Account progress · pages Quest experiences · quiz Quiz hub and runs
Components 23
Lessons and practice
- Fluid lessons
src/features - Lesson overview
src/features/Overview.jsx - Lesson simulations
src/features/04_archimedes/simulation.jsx - Quiz hub and runs
src/features/quiz - Quiz content
src/features/quiz/quizData.js - Physics sandboxes
src/features/sandbox - Learning chatbot
src/features/chatbot
Story and quests
- Story introduction
src/pages/StoryIntro.jsx - Quest experiences
src/pages - Buoyancy game
src/components/BuoyancyPlatformer.jsx - Endless challenges
src/features/endless
Accounts and progress
- Achievement rules
src/data/achievements.js - Account progress
src/data/gameData.js - Account API client
src/data/api.js - Leaderboard
src/features/leaderboard/Leaderboard.jsx - Account screens
src/pages
Shared experience
- World map
src/components/FluidiaMap.jsx - Avatar animation
src/components/AnimatedAvatar.jsx - Game effects
src/utils/pixelFx.js - Sound effects
src/utils/sfx.js
Other components
- Learner
- Route application
src/App.jsx - Fluidia backend
Connections 31
- Learner → Route application: opens
src/App.jsx - Route application → Fluid lessons: routes to
src/App.jsx - Route application → Lesson overview: routes to
src/App.jsx - Route application → Quiz hub and runs: routes to
src/App.jsx - Route application → Physics sandboxes: routes to
src/App.jsx - Route application → Learning chatbot: mounts
src/App.jsx - Route application → Story introduction: routes to
src/App.jsx - Route application → Quest experiences: routes to
src/App.jsx - Route application → Endless challenges: routes to
src/App.jsx - Route application → Leaderboard: routes to
src/App.jsx - Route application → Account screens: routes to
src/App.jsx - Learner → Lesson simulations: explores
README.md - Learner → Quiz hub and runs: practices
README.md - Learner → Physics sandboxes: experiments
README.md - Lesson simulations → Account progress: records progress
- Quiz hub and runs → Quiz content: uses questions
- Quiz hub and runs → Achievement rules: records results
src/data/achievements.js - Quest experiences → Buoyancy game: uses game
src/pages/LaboratoryQuest.jsx - Quest experiences → Achievement rules: records outcomes
src/pages/PlumberHouse.jsx - Buoyancy game → Game effects: emits particles
src/components/BuoyancyPlatformer.jsx - Buoyancy game → Sound effects: plays effects
src/components/BuoyancyPlatformer.jsx - Endless challenges → Achievement rules: records runs
- Achievement rules → Account progress: reads and updates
src/data/achievements.js - Account progress → Account API client: sends requests
src/data/gameData.js - Account API client → Fluidia backend: calls account API
README.md - Leaderboard → Account progress: reads account data
src/features/leaderboard/Leaderboard.jsx - Account screens → Account progress: uses account state
src/pages/PlumberHouse.jsx - World map → Account progress: reads game state
src/components/FluidiaMap.jsx - Story introduction → Account progress: reads player state
src/pages/StoryIntro.jsx - Story introduction → Avatar animation: renders avatar
src/pages/StoryIntro.jsx - Quest experiences → Avatar animation: renders avatar
src/pages/PlumberHouse.jsx