How roihanafh/linechip works
Linechip is a math-learning web app with interactive number-line and chip-model lessons, games, accounts, rankings, and an admin panel. The main learner flow is to enter a learning activity or game, work through its visual math interaction, and build a score that can appear on the leaderboard. The tree identifies the major product areas; sampled sources confirm the chip-animation logic, authentication/session flow, and several admin data operations. Wiring between unsampled pages, game scoring, and leaderboard services is therefore left out where it cannot be established.
Main entry points: firebase.admin.ts Firebase Admin · page.tsx Admin Panel · authService.ts Authentication Service · route.ts User Management API
Components 26
Math Activities
- Home
app/page.tsx - Learning Materials
app/materi/page.tsx - Number Line
app/garis-bilangan/page.tsx - Chip Model
app/model-chip/page.tsx - Chip State
hooks/model-chip/useModelChipState.ts - Chip Animation
hooks/model-chip/useAnimationOrchestrator.ts - Chip Subtraction
hooks/model-chip/useSubtractionOrchestrator.ts
Games and Scores
- Number Line Game
app/intline-run/page.tsx - Virus Game
app/game-virus/page.tsx - Game Scoring
features/game/scoreService.ts
Accounts
- Login and Registration
app/login/LoginClient.tsx - Authentication Service
features/auth/services/authService.ts - Session API
app/api/auth/session/route.ts - Profile
app/profile/ProfileClient.tsx - Profile Service
features/profile/services/profileService.ts
Rankings
- Leaderboard
app/leaderboard/page.tsx - Leaderboard Service
features/leaderboard/leaderboardService.ts
Administration
- Admin Panel
app/admin/page.tsx - User Management API
app/api/admin/users/route.ts - User Detail API
app/api/admin/users/[uid]/route.ts - Admin Statistics API
app/api/admin/stats/route.ts - Leaderboard Reset API
app/api/admin/leaderboard/reset/route.ts
Other components
- Learner
- Firebase Authentication
- Firebase Admin
features/auth/services/firebase.admin.ts - Firestore
Connections 31
- Learner → Home: opens
- Learner → Learning Materials: studies
- Learner → Number Line: practices
- Learner → Chip Model: practices
- Learner → Number Line Game: plays
- Learner → Virus Game: plays
- Learner → Login and Registration: signs in
- Learner → Profile: views
- Learner → Leaderboard: checks
- Chip Model → Chip State: uses state
- Chip Animation → Chip State: updates state
- Chip Animation → Firebase Admin: builds battle plan
- Chip Subtraction → Chip Animation: delegates battle
- Login and Registration → Authentication Service: submits credentials
- Authentication Service → Firebase Authentication: authenticates
- Authentication Service → Session API: creates session
- Session API → Firebase Admin: verifies token
- Profile → Profile Service: loads profile
- Leaderboard → Leaderboard Service: loads rankings
- Admin Panel → User Management API: manages users
- Admin Panel → User Detail API: edits user
- Admin Panel → Admin Statistics API: requests statistics
- Admin Panel → Leaderboard Reset API: resets scores
- User Management API → Firebase Admin: uses admin access
- User Detail API → Firebase Admin: uses admin access
- Admin Statistics API → Firebase Admin: uses admin access
- Leaderboard Reset API → Firebase Admin: uses admin access
- User Management API → Firestore: reads and writes users
- User Detail API → Firestore: reads and updates users
- Admin Statistics API → Firestore: queries users
- Leaderboard Reset API → Firestore: resets scores