How thisissadeghi/kickoff26 works
Kickoff26 is a shared Kotlin Multiplatform World Cup companion. Users navigate Today, Matches, Groups, Teams, and Settings; feature repositories assemble tournament data into the daily digest, filtered fixtures/bracket, standings, roster, and preferences. The README documents the live tournament API and shared favorites; sampled repository code confirms those data dependencies and time-zone conversion. UI-to-view-model and feature navigation wiring is represented at module entry points; implementation details not present in the excerpts are not expanded.
Main entry points: App.kt App navigation · TournamentRemoteDataSourceImpl.kt Tournament data source · TodayRepositoryImpl.kt Today assembly · TimeZoneRepositoryImpl.kt Time-zone state
Components 20
App shell
- App navigation
composeApp/src/commonMain/kotlin/thisissadeghi/kickoff/App.kt
Tournament views
- Today digest
feature/today/src/commonMain/kotlin/thisissadeghi/kickoff/today/presentation/TodayViewModel.kt - Today assembly
feature/today/src/commonMain/kotlin/thisissadeghi/kickoff/today/data/repository/TodayRepositoryImpl.kt - Matches browser
feature/matches/src/commonMain/kotlin/thisissadeghi/kickoff/matches/presentation/MatchesViewModel.kt - Fixtures and bracket
feature/matches/src/commonMain/kotlin/thisissadeghi/kickoff/matches/data/repository/MatchesRepositoryImpl.kt - Group standings
feature/groups/src/commonMain/kotlin/thisissadeghi/kickoff/groups/presentation/GroupsViewModel.kt - Standings assembly
feature/groups/src/commonMain/kotlin/thisissadeghi/kickoff/groups/data/repository/GroupsRepositoryImpl.kt - Team roster
feature/teams/src/commonMain/kotlin/thisissadeghi/kickoff/teams/presentation/TeamsViewModel.kt - Team grouping
feature/teams/src/commonMain/kotlin/thisissadeghi/kickoff/teams/data/repository/TeamsRepositoryImpl.kt
Preferences
- App settings
feature/settings/src/commonMain/kotlin/thisissadeghi/kickoff/settings/presentation/SettingsViewModel.kt - Settings storage
feature/settings/src/commonMain/kotlin/thisissadeghi/kickoff/settings/data/repository/SettingsRepositoryImpl.kt
Data services
- Favorite teams
core/data/src/commonMain/kotlin/thisissadeghi/kickoff/data/app/repository/favorites/FavoriteTeamsRepositoryImpl.kt - Favorites local source
core/data/src/commonMain/kotlin/thisissadeghi/kickoff/data/app/datasource/local/favorites/FavoriteTeamsLocalDataSourceImpl.kt - Time-zone state
core/data/src/commonMain/kotlin/thisissadeghi/kickoff/data/app/timezone/TimeZoneRepositoryImpl.kt - Tournament data source
core/data/src/commonMain/kotlin/thisissadeghi/kickoff/data/app/remote/datasource/TournamentRemoteDataSourceImpl.kt - Ktor API client
core/data/src/commonMain/kotlin/thisissadeghi/kickoff/data/remote/network/ktor/ApiClient.kt - Preferences manager
core/data/src/commonMain/kotlin/thisissadeghi/kickoff/data/local/pref/PreferencesManager.kt
Shared UI
- Compose design system
core/designsystem/src/commonMain/kotlin/thisissadeghi/kickoff/designsystem/XTheme.kt
Other components
- App user
- World Cup API
Connections 26
- App user → App navigation: opens
- App navigation → Today digest: navigates
- App navigation → Matches browser: navigates
- App navigation → Group standings: navigates
- App navigation → Team roster: navigates
- App navigation → App settings: navigates
- Today digest → Today assembly: requests digest
- Matches browser → Fixtures and bracket: requests fixtures
- Group standings → Standings assembly: requests standings
- Team roster → Team grouping: requests roster
- App settings → Settings storage: updates preferences
- Today assembly → Tournament data source: loads tournament data
- Fixtures and bracket → Tournament data source: loads tournament data
- Standings assembly → Tournament data source: loads tournament data
- Team grouping → Tournament data source: loads tournament data
- Tournament data source → Ktor API client: makes requests
- Ktor API client → World Cup API: fetches data
- Today assembly → Favorite teams: reads followed teams
- Team grouping → Favorite teams: reads and toggles
- Favorite teams → Favorites local source: persists favorites
- Today assembly → Time-zone state: reads time zone
- Fixtures and bracket → Time-zone state: reads time zone
- Standings assembly → Time-zone state: reads time zone
- Settings storage → Time-zone state: sets time zone
- Settings storage → Preferences manager: persists settings
- App navigation → Compose design system: renders with