How naaturel/gamehistory works
GameHistory is an Android app for recording board-game sessions and reviewing a searchable history. Users can add game definitions, record parties with scores and optional thumbnails, browse and filter past parties, inspect score details, and open a statistics screen. The sampled repository code shows the UI-to-viewmodel-to-repository path and Room-backed data access; the statistics implementation and several viewmodels/DAOs were not sampled, so their internal wiring is left unspecified.
Main entry points: Repo.kt Repository · AddGameFragment.kt Add game · BarFragment.kt Navigation bar · TakePhotoActivity.kt Photo capture
Components 21
App navigation
- Main screen
app/src/main/java/be/laurent/gamehistory/MainActivity.kt - Navigation bar
app/src/main/java/be/laurent/gamehistory/fragments/BarFragment.kt
Game and party entry
- Add game
app/src/main/java/be/laurent/gamehistory/fragments/AddGameFragment.kt - Game viewmodel
app/src/main/java/be/laurent/gamehistory/viewmodels/AddGameViewModel.kt - Add party
app/src/main/java/be/laurent/gamehistory/fragments/AddPartyFragment.kt - Party viewmodel
app/src/main/java/be/laurent/gamehistory/viewmodels/AddPartyViewModel.kt - Photo capture
app/src/main/java/be/laurent/gamehistory/TakePhotoActivity.kt
History and review
- Party history
app/src/main/java/be/laurent/gamehistory/fragments/HomeFragment.kt - Home viewmodel
app/src/main/java/be/laurent/gamehistory/viewmodels/HomeViewModel.kt - Party list adapter
app/src/main/java/be/laurent/gamehistory/adapter/PartyAdapter.kt - Score details adapter
app/src/main/java/be/laurent/gamehistory/adapter/ScoreDetailsAdapter.kt - Statistics screen
app/src/main/java/be/laurent/gamehistory/ViewStatsActivity.kt - Statistics view
app/src/main/java/be/laurent/gamehistory/fragments/BarFragment.kt
Persistence
- Repository
app/src/main/java/be/laurent/gamehistory/repository/Repo.kt - Room database
app/src/main/java/be/laurent/gamehistory/repository/RoomDB.kt - Game DAO
app/src/main/java/be/laurent/gamehistory/daos/GameDao.kt - Party DAO
app/src/main/java/be/laurent/gamehistory/daos/PartyDao.kt - Score DAO
app/src/main/java/be/laurent/gamehistory/daos/ScoreDao.kt
Other components
- User
- Android camera
- MediaStore
Connections 25
- User → Main screen: opens app
- Main screen → Home viewmodel: loads and filters
- Main screen → Navigation bar: displays
- Navigation bar → Add game: opens
- Navigation bar → Add party: opens
- Navigation bar → Statistics screen: opens
- Statistics screen → Statistics view: displays
- User → Add game: enters game
- Add game → Game viewmodel: creates game
- Game viewmodel → Repository: saves game
- User → Add party: enters party
- Add party → Party viewmodel: loads games and creates party
- Party viewmodel → Repository: reads games and saves party
- Add game → Photo capture: requests photo
- Photo capture → Android camera: captures image
- Photo capture → MediaStore: saves image
- Photo capture → Add game: returns image URI
- Party history → Home viewmodel: observes and requests details
- Home viewmodel → Repository: reads parties and scores
- Party history → Party list adapter: displays parties
- Party history → Score details adapter: displays scores
- Repository → Room database: builds database
- Repository → Game DAO: reads and writes games
- Repository → Party DAO: reads and writes parties
- Repository → Score DAO: reads and writes scores