My Personal Projects

← Back to home

Game Vault

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.

Features

AI-Powered Shelf Scanning

BoardGameGeek Integration

Collection Management

Smart Filtering

Statistics

Privacy-Focused

Screenshots

Coming soon

Tech Stack

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

Requirements

Building

# 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

Configuration

AI Provider Setup

The app supports two AI vision providers for shelf scanning:

  1. Claude (Anthropic)

    • Get an API key from Anthropic Console
    • Enter in Settings > AI Provider > Claude API Key
  2. OpenAI

    • Get an API key from OpenAI Platform
    • Enter in Settings > AI Provider > OpenAI API Key

Backup & Restore

Architecture

The app follows Clean Architecture principles:

┌─────────────────────────────────────┐
│              UI Layer               │
│  (Compose Screens + ViewModels)     │
├─────────────────────────────────────┤
│           Domain Layer              │
│   (Models, Business Logic)          │
├─────────────────────────────────────┤
│            Data Layer               │
│  (Room, AI Providers, BGG Client)   │
└─────────────────────────────────────┘

Project Structure

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

Contributing

Contributions are welcome!

Acknowledgments

← Back to home