mobile

Collectra: Collection Tracker

Catalog collections, track value, tags, loans, and backups in one app.

Collectra: Collection Tracker Logo

Collection Tracker is an offline-first Flutter app for organizing personal collections (books, movies, games, and custom categories), with optional cloud sync and Firebase-powered observability.

Current State#

This repository is actively developed and already includes:

  • Collection and item management (list/grid views, create/edit/delete)
  • Tag system (assign tags, rename/merge/delete tags, bulk tag actions)
  • Favorites and wishlist flows
  • Item detail with price tracking and value history
  • Statistics dashboard with valuation and distribution insights
  • Import/export (JSON and CSV)
  • Barcode scanner flow
  • Localization support for 7 languages
  • Custom design system and glass bottom navigation
  • Firebase Crashlytics, Analytics (consent-based), Performance, Remote Config, App Check, FCM
  • Optional backend auth and sync (feature-flag gated)

Tech Stack#

  • Flutter + Dart (workspace/monorepo)
  • Riverpod (with code generation)
  • Drift (local database)
  • GoRouter (navigation)
  • Firebase (Core, Analytics, Crashlytics, Performance, Remote Config)
  • Dio (backend/sync transport)

Workspace Layout#

apps/mobile/                  Flutter app
packages/core/domain/         Domain contracts/entities
packages/core/data/           Repository implementations
packages/common/ui/           Shared design system components
packages/common/utils/        Shared utilities
packages/common/env/          Compile-time env access (Envied)
packages/integrations/*       Database, analytics, auth session, backend API, sync API, etc.
documentation/                Project documentation hub

Quick Start#

  1. Install dependencies:
dart pub get
  1. Create API env file used by metadata integrations:
cat > packages/common/env/.env <<'ENV'
GOOGLE_BOOKS_API_KEY=...
TMDB_API_KEY=...
TMDB_READ_ACCESS_TOKEN=...
IGDB_CLIENT_ID=...
IGDB_CLIENT_SECRET=...
ENV
  1. Materialize Firebase files (recommended, especially for CI/local parity):
./scripts/setup_firebase.sh --require dart
  1. Generate code:
./scripts/build_all.sh
  1. Run app:
cd apps/mobile
flutter run

Cloud Sync Flags (Important)#

Cloud Sync is enabled only when all required Remote Config flags are true:

  • app_backend_integration_enabled
  • app_auth_feature_enabled
  • app_sync_feature_enabled

If either is false, sync UI/actions are disabled.

License#

MIT.