hwhub/README.md

2.9 KiB

car64 logo

car64

A modern Flutter + Supabase app for tracking and managing die-cast car collections.


Overview

car64 helps collectors scan model IDs, organize personal and shared collections, and keep a clean catalog with community validation/reporting flows.

Features

  • Fast scan workflow (camera OCR + manual entry fallback)
  • Multi-collection support with member roles (owner/member/viewer)
  • Private image storage with signed URL access
  • Collection collaboration and member management
  • Community validation and issue reporting for catalog entries
  • Profile/settings flows including password updates and report tracking

Tech Stack

  • Flutter (Material 3)
  • Supabase (Auth, PostgREST, Storage, RPC)
  • Shared Preferences (local settings)
  • Google ML Kit Text Recognition (scanner)

Prerequisites

  • Flutter SDK (stable)
  • A Supabase project
  • For iOS builds: macOS + Xcode

Configuration

Supabase config is required at runtime/build time (no embedded fallback values).

Use:

  • .env/flutter_defines.json (local, ignored by git)
  • .env/flutter_defines.example.json (tracked template)

Expected shape:

{
  "SUPABASE_URL": "https://your-project.supabase.co",
  "SUPABASE_ANON_KEY": "your_anon_key",
  "SUPABASE_USE_PKCE": "true"
}

Option B: direct dart-define flags

flutter run \
  --dart-define=SUPABASE_URL=https://your-project.supabase.co \
  --dart-define=SUPABASE_ANON_KEY=your_anon_key \
  --dart-define=SUPABASE_USE_PKCE=true

Getting Started

  1. Install dependencies
flutter pub get
  1. Run analyze
flutter analyze
  1. Launch app
flutter run

VS Code Workflows

Run / Debug (launch.json)

Use Run and Debug with:

  • Flutter (Supabase Local - Debug)
  • Flutter (Supabase Local - Profile)
  • Flutter (Supabase Local - Release)

These configurations read:

--dart-define-from-file=.env/flutter_defines.json

Build Tasks (tasks.json)

Use Terminal → Run Task:

  • Flutter Build APK (Release)
  • Flutter Build App Bundle (Release)
  • Flutter Build iOS IPA (Release)

Project Structure (high level)

  • lib/screens/ UI screens and flows
  • lib/services/ Supabase integration/services
  • lib/widgets/ reusable UI components
  • lib/utils/ helpers and formatting utilities
  • lib/theme/ app theme and colors

Security Notes

  • Supabase anon keys are intentionally client-side, but RLS and RPC permissions must be strict.
  • Sensitive local config files are git-ignored.
  • User-facing errors are sanitized and shown via global overlays.

License

License file is not included in this repository yet. Add your preferred license in the GitHub repo when ready.

Reference

  • Product/backend notes: TPB.md