How michael0803-coder/-aquasnap works
AQUASNAP is a client-side marine learning platform: users authenticate, enter a screen-based dashboard, choose learning games, and earn progress tracked in user state. Separate screens provide aquarium management, profiles and certificates, and conservation education. The source index confirms the app’s screen imports and game modules’ store/data references; README feature descriptions fill in several unsampled product capabilities. The README mentions SpacetimeDB, but no backend appears in the supplied tree, so it is not mapped as a runtime component.
Main entry points: userStore.ts User progress state · page.tsx Screen router · GameLibrary.tsx Game library · AuthScreen.tsx Authentication
Components 20
App experience
- Screen router
src/app/page.tsx - Authentication
src/components/auth/AuthScreen.tsx - Dashboard
src/components/dashboard/Dashboard.tsx - Profile and awards
src/components/profile/ProfileScreen.tsx - UI components
src/components/ui
Learning games
- Game library
src/components/games/GameLibrary.tsx - Species identification
src/components/games/SpeciesIdentificationGame.tsx - Habitat matching
src/components/games/HabitatMatchingGame.tsx - Conservation status
src/components/games/ConservationStatusGame.tsx - Marine trivia
src/components/games/MarineTriviaGame.tsx - Ecosystem builder
src/components/games/EcosystemBuilderGame.tsx - Ocean currents
src/components/games/OceanCurrentsGame.tsx - Fish rescue
src/components/games/FishRescueGame.tsx
Progress and aquarium
- Virtual aquarium
src/components/FishTank.tsx - User progress state
src/store/userStore.ts - Browser storage
Educational content
- Species catalog
src/data/marineSpecies.ts - Learning hub
src/components/MarineLearningHub.tsx - SDG 14 content
src/components/SDGPurpose.tsx
Other components
- Learner
Connections 33
- Learner → Screen router: opens
src/app/page.tsx - Screen router → Authentication: renders signed out
src/app/page.tsx - Screen router → Dashboard: renders default screen
src/app/page.tsx - Screen router → Game library: renders games screen
src/app/page.tsx - Screen router → Profile and awards: renders profile screen
src/app/page.tsx - Screen router → Virtual aquarium: renders aquarium screen
src/app/page.tsx - Screen router → Learning hub: renders learning screen
src/app/page.tsx - Screen router → SDG 14 content: renders purpose screen
src/app/page.tsx - Screen router → User progress state: loads session
src/app/page.tsx - Authentication → User progress state: uses account state
src/components/auth/AuthScreen.tsx - Dashboard → User progress state: reads progress
src/components/dashboard/Dashboard.tsx - Profile and awards → User progress state: reads progress
src/components/profile/ProfileScreen.tsx - Game library → Species identification: launches
src/components/games/GameLibrary.tsx - Game library → Habitat matching: launches
src/components/games/GameLibrary.tsx - Game library → Conservation status: launches
src/components/games/GameLibrary.tsx - Game library → Marine trivia: launches
src/components/games/GameLibrary.tsx - Game library → Ecosystem builder: launches
src/components/games/GameLibrary.tsx - Game library → Ocean currents: launches
src/components/games/GameLibrary.tsx - Game library → Fish rescue: offers
- Species identification → User progress state: updates progress
src/components/games/SpeciesIdentificationGame.tsx - Habitat matching → User progress state: updates progress
src/components/games/HabitatMatchingGame.tsx - Conservation status → User progress state: updates progress
src/components/games/ConservationStatusGame.tsx - Marine trivia → User progress state: updates progress
src/components/games/MarineTriviaGame.tsx - Ecosystem builder → User progress state: updates progress
src/components/games/EcosystemBuilderGame.tsx - Ocean currents → User progress state: updates progress
src/components/games/OceanCurrentsGame.tsx - Fish rescue → User progress state: updates progress
src/components/games/FishRescueGame.tsx - Species identification → Species catalog: uses catalog
src/components/games/SpeciesIdentificationGame.tsx - Habitat matching → Species catalog: uses catalog
src/components/games/HabitatMatchingGame.tsx - Conservation status → Species catalog: uses catalog
src/components/games/ConservationStatusGame.tsx - Virtual aquarium → User progress state: spends points
src/components/FishTank.tsx - User progress state → Browser storage: persists session
src/store/userStore.ts - Authentication → UI components: uses controls
src/components/auth/AuthScreen.tsx - Game library → UI components: uses controls
src/components/games/GameLibrary.tsx