Find a file
2026-03-05 22:04:16 +01:00
.env chore(dev): add local-only launch/define workflow and ignore secret define file 2026-03-05 19:33:25 +01:00
.vscode chore(vscode): add iOS release ipa build task 2026-03-05 19:38:19 +01:00
android feat(ui): apply branded headers and refresh splash/loading icon assets 2026-03-04 17:01:45 +01:00
assets perf(assets): remove unused image files from bundle 2026-03-05 08:17:53 +01:00
ios chore(assets): include splash generation artifacts and background image assets 2026-03-04 17:02:10 +01:00
lib chore(branding): replace Hot Wheels user-facing text with die-cast wording 2026-03-05 20:14:15 +01:00
linux feat: multi-collection support, shared collections, invite by email 2026-02-24 17:28:44 +01:00
macos feat: multi-collection support, shared collections, invite by email 2026-02-24 17:28:44 +01:00
test test: add unit coverage for scanner parsing and reporting utils 2026-03-04 12:25:21 +01:00
tool perf(assets): remove unused image files from bundle 2026-03-05 08:17:53 +01:00
web chore(assets): include splash generation artifacts and background image assets 2026-03-04 17:02:10 +01:00
windows feat: add camera OCR scanner, DB query, and collection dialogs 2026-02-23 07:12:24 +01:00
.gitignore chore(dev): add local-only launch/define workflow and ignore secret define file 2026-03-05 19:33:25 +01:00
.metadata init 2026-02-22 19:03:32 +01:00
analysis_options.yaml init 2026-02-22 19:03:32 +01:00
CONTRIBUTING.md docs: expand repository docs with roadmap, troubleshooting, contributing and security 2026-03-05 22:04:16 +01:00
pubspec.lock feat(ui): apply branded headers and refresh splash/loading icon assets 2026-03-04 17:01:45 +01:00
pubspec.yaml feat(ui): apply branded headers and refresh splash/loading icon assets 2026-03-04 17:01:45 +01:00
README.md docs: expand repository docs with roadmap, troubleshooting, contributing and security 2026-03-05 22:04:16 +01:00
SECURITY.md docs: expand repository docs with roadmap, troubleshooting, contributing and security 2026-03-05 22:04:16 +01:00

car64 logo

car64

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


Table of Contents

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

Troubleshooting

App fails at startup with Supabase config error

  • Ensure .env/flutter_defines.json exists locally.
  • Confirm all required keys are present:
    • SUPABASE_URL
    • SUPABASE_ANON_KEY
    • SUPABASE_USE_PKCE

Build task works but app cannot connect to backend

  • Verify the Supabase URL/key pair belong to the same project.
  • Check Supabase RLS policies and RPC permissions.

iOS IPA task fails on Windows

  • flutter build ipa requires macOS + Xcode.

Release Checklist

  • flutter pub get
  • flutter analyze
  • Manual smoke test on Android
  • Manual smoke test on iOS
  • Confirm .env/flutter_defines.json points to production Supabase
  • Build Android appbundle
  • Build iOS ipa
  • Verify auth, scan flow, collections, and upload flows

Roadmap

  • Optional dark/light theme toggle in settings
  • Extended scanner confidence hints and retry UX
  • Bulk actions and better collection analytics
  • Improved offline behavior for low-connectivity sessions

Contributing

See CONTRIBUTING.md for branching, commit style, and PR guidelines.

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.

For reporting vulnerabilities, see SECURITY.md.

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