An Android app for managing your board game collection. Scan your game shelf with AI-powered detection, enrich with BoardGameGeek data, and track what you own and play.
Coming soon
| Category | Technology |
|---|---|
| UI | Jetpack Compose, Material 3 |
| Navigation | Navigation Compose |
| Database | Room (SQLite) |
| DI | Hilt |
| Networking | Ktor Client |
| Images | Coil, CameraX |
| Serialization | Kotlinx Serialization |
| Security | EncryptedSharedPreferences |
# Clone the repository
git clone https://github.com/yourusername/board-game-categorizer.git
cd board-game-categorizer
# Build debug APK
./gradlew assembleDebug
# Install on connected device
adb install -r app/build/outputs/apk/debug/app-debug.apk
The app supports two AI vision providers for shelf scanning:
Claude (Anthropic)
OpenAI
The app follows Clean Architecture principles:
┌─────────────────────────────────────┐
│ UI Layer │
│ (Compose Screens + ViewModels) │
├─────────────────────────────────────┤
│ Domain Layer │
│ (Models, Business Logic) │
├─────────────────────────────────────┤
│ Data Layer │
│ (Room, AI Providers, BGG Client) │
└─────────────────────────────────────┘
app/src/main/java/ch/sbebe/boardgames/
├── ai/ # AI vision provider abstractions
├── bgg/ # BoardGameGeek API client
├── data/
│ ├── backup/ # Backup/restore functionality
│ ├── local/ # Room database, DAOs, entities
│ ├── repository/ # Data repositories
│ └── settings/ # App preferences
├── di/ # Hilt dependency injection modules
├── domain/
│ └── model/ # Domain models
├── navigation/ # Navigation graph
├── ui/
│ ├── components/ # Reusable Compose components
│ ├── detail/ # Game detail screen
│ ├── inventory/ # Main inventory list
│ ├── scan/ # Camera and scan results
│ ├── settings/ # Settings screen
│ ├── stats/ # Statistics screen
│ └── theme/ # Material theme
└── util/ # Utilities and helpers
Contributions are welcome!