How alexalkhatib/quizzler-android-app works
Quizzler is an Android trivia game. The main flow is choosing a player and quiz configuration, loading questions from Open Trivia DB with an offline fallback, playing through timed questions with scoring and lifelines, then reviewing, sharing, replaying, or saving results to local history. The README documents the broader capabilities; source excerpts and the SOURCE INDEX support specific wiring, while unsampled implementations are represented at their existing paths without asserting unshown calls.
Main entry points: QuizViewModel.kt Quiz coordinator · HomeActivity.kt Quiz setup · AppContainer.kt Dependency container · ResultActivity.kt Result screen
Components 25
Quiz experience
- App launch
app/src/main/java/com/quizzler/app/ui/splash/SplashActivity.kt - Quiz setup
app/src/main/java/com/quizzler/app/ui/home/HomeActivity.kt - Setup state
app/src/main/java/com/quizzler/app/ui/home/HomeViewModel.kt - Quiz screen
app/src/main/java/com/quizzler/app/ui/quiz/QuizActivity.kt - Quiz coordinator
app/src/main/java/com/quizzler/app/ui/quiz/QuizViewModel.kt - Sound feedback
app/src/main/java/com/quizzler/app/util/FeedbackPlayer.kt - Quiz configuration
app/src/main/java/com/quizzler/app/data/model/QuizConfig.kt
Question sourcing
- Question repository
app/src/main/java/com/quizzler/app/data/remote/TriviaRepository.kt - Trivia API
app/src/main/java/com/quizzler/app/data/remote/TriviaApi.kt - Open Trivia DB
- Offline question bank
app/src/main/java/com/quizzler/app/data/local/OfflineQuestionBank.kt - Question model
app/src/main/java/com/quizzler/app/data/model/Question.kt
Game rules
- Quiz state engine
app/src/main/java/com/quizzler/app/domain/QuizEngine.kt - Score calculation
app/src/main/java/com/quizzler/app/domain/Scoring.kt
Local data
- Session database
app/src/main/java/com/quizzler/app/data/local/QuizDatabase.kt - User preferences
app/src/main/java/com/quizzler/app/data/local/UserPreferences.kt - Dependency container
app/src/main/java/com/quizzler/app/core/AppContainer.kt
Results and history
- Result model
app/src/main/java/com/quizzler/app/data/model/QuizResult.kt - Result screen
app/src/main/java/com/quizzler/app/ui/result/ResultActivity.kt - Best score state
app/src/main/java/com/quizzler/app/ui/result/ResultViewModel.kt - Answer review
app/src/main/java/com/quizzler/app/ui/result/ReviewAdapter.kt - History screen
app/src/main/java/com/quizzler/app/ui/history/HistoryActivity.kt - History state
app/src/main/java/com/quizzler/app/ui/history/HistoryViewModel.kt
Other components
- Player
- Share target
Connections 32
- Player → App launch: launches
README.md - App launch → Quiz setup: opens
app/src/main/java/com/quizzler/app/ui/splash/SplashActivity.kt - Player → Quiz setup: configures
README.md - Quiz setup → Setup state: observes settings
app/src/main/java/com/quizzler/app/ui/home/HomeActivity.kt - Setup state → User preferences: reads and saves
app/src/main/java/com/quizzler/app/ui/home/HomeViewModel.kt - Quiz setup → Quiz configuration: creates
app/src/main/java/com/quizzler/app/ui/home/HomeActivity.kt - Quiz setup → Quiz screen: starts quiz
app/src/main/java/com/quizzler/app/ui/home/HomeActivity.kt - Quiz screen → Quiz coordinator: sends actions
app/src/main/java/com/quizzler/app/ui/quiz/QuizActivity.kt - Quiz coordinator → Question repository: loads questions
app/src/main/java/com/quizzler/app/ui/quiz/QuizViewModel.kt - Question repository → Trivia API: requests questions
app/src/main/java/com/quizzler/app/data/remote/TriviaRepository.kt - Trivia API → Open Trivia DB: fetches trivia
README.md - Question repository → Offline question bank: fills shortfall
app/src/main/java/com/quizzler/app/data/remote/TriviaRepository.kt - Question repository → Question model: returns questions
app/src/main/java/com/quizzler/app/data/remote/TriviaRepository.kt - Quiz coordinator → Quiz state engine: drives quiz
app/src/main/java/com/quizzler/app/ui/quiz/QuizViewModel.kt - Quiz state engine → Score calculation: calculates points
app/src/main/java/com/quizzler/app/domain/QuizEngine.kt - Quiz coordinator → Sound feedback: plays cues
app/src/main/java/com/quizzler/app/ui/quiz/QuizViewModel.kt - Quiz coordinator → Result model: builds result
- Quiz coordinator → Result screen: opens on finish
README.md - Result screen → Best score state: loads best score
app/src/main/java/com/quizzler/app/ui/result/ResultActivity.kt - Result screen → Answer review: shows answers
app/src/main/java/com/quizzler/app/ui/result/ResultActivity.kt - Best score state → Session database: queries record
README.md - Quiz coordinator → Session database: saves session
README.md - Quiz setup → History screen: opens history
app/src/main/java/com/quizzler/app/ui/home/HomeActivity.kt - History screen → History state: observes history
app/src/main/java/com/quizzler/app/ui/history/HistoryActivity.kt - History state → Session database: reads and clears
README.md - Result screen → Share target: shares score
app/src/main/java/com/quizzler/app/ui/result/ResultActivity.kt - Result screen → Quiz screen: replays config
app/src/main/java/com/quizzler/app/ui/result/ResultActivity.kt - Dependency container → Question repository: provides
app/src/main/java/com/quizzler/app/core/AppContainer.kt - Dependency container → Trivia API: constructs client
app/src/main/java/com/quizzler/app/core/AppContainer.kt - Dependency container → Offline question bank: provides
app/src/main/java/com/quizzler/app/core/AppContainer.kt - Dependency container → Session database: provides database
app/src/main/java/com/quizzler/app/core/AppContainer.kt - Dependency container → User preferences: provides
app/src/main/java/com/quizzler/app/core/AppContainer.kt