2.2 KiB
2.2 KiB
TPB App Checklist (Flutter Scope)
This checklist tracks only the Flutter app implementation against TPB.md.
Backend infrastructure (RLS, triggers, storage bucket settings, SQL policies) is intentionally out of scope here.
1) Authentication & Onboarding
- Forgot-password entry from login
- Password-recovery dialog on auth recovery event
- Ensure default collection on first login
- Add user as owner/member when creating collection
2) Lightning Add (Scanner & Active Collection)
- Persist and restore active collection
- Scanner supports active collection selection
- Lookup scanned
hw_idinglobal_cars - Found branch uses bottom sheet + add action
- New discovery branch captures Name/Series/Year in bottom sheet
- Insert into
hotwheelswith active collection - Insert validation vote flow in app (
car_votes) - Continuous scanner loop / fast next-scan UX
3) Private Photo Upload & Processing
- Car detail supports camera capture / update photo
- Upload path format in app:
uid/entryid.jpg - In-app compression/resizing target (1080px, <=500KB)
- Save path into
hotwheels.user_image_url
4) Garage Display
- Query cars by active collection
- Generate signed URLs for private images
- Fallback to
assets/img/icon_bg_removed.pngwhen no image - Pagination / lazy loading
- Multi-select move between collections
- Single-car move action
5) Sharing & Collaboration UX
- Invite member by email
- Remove member flow
- Leave collection flow (non-owner)
- Owner guardrails in manage collection flow
6) Community Validation & Reporting (App UX)
- Show verification status and confirmation count
- Confirm catalog entry action from car detail
- Report catalog issue action with reason + optional note
- Prevent duplicate open report submission per user/car in app flow
- My Reports screen with status display (open/reviewed/resolved/dismissed)
Current App-Only Verdict
- App-side TPB implementation is complete for the defined Flutter workflows.
- Any further remaining TPB work should now be treated as either backend operations or new product scope.