How achyuth098/homecart works
HomeCart is a shared apartment grocery-list app. The workflow starts with anonymous phone sign-in, then creating or joining an apartment, managing needed and bought items, and syncing changes across roommates. The graph includes offline caching and queued edits, apartment membership, invitations, and database-enforced access. Runtime wiring is grounded in the sampled React modules; the SQL schema and policies are represented at their documented path, but their details were not sampled.
Main entry points: App.jsx App shell · supabase.js Supabase client · useList.js List operations · ListScreen.jsx Shopping list UI
Components 13
App experience
- App shell
src/App.jsx - Apartment entry
src/Welcome.jsx - Shopping list UI
src/ListScreen.jsx
List and offline sync
- List operations
src/useList.js - Local cache
src/storage.js
Supabase backend
- Supabase client
src/supabase.js - Anonymous auth
- Apartment data
supabase/01_phase1_setup.sql - Realtime events
Install and cache
- App shell cache
public/sw.js - Install metadata
public/manifest.webmanifest
Other components
- Roommate
- Phone browser
Connections 20
- Roommate → App shell: opens
- App shell → Supabase client: checks config
- App shell → Anonymous auth: signs in
- Anonymous auth → Supabase client: uses client
- App shell → Apartment data: loads membership
- App shell → Local cache: loads membership
- App shell → Apartment entry: shows entry
- Apartment entry → Supabase client: creates or joins
- Supabase client → Apartment data: calls apartment RPCs
- App shell → Shopping list UI: shows list
- Shopping list UI → List operations: requests list actions
- List operations → Supabase client: fetches and writes
- List operations → Local cache: caches and queues
- List operations → Realtime events: subscribes
- Realtime events → List operations: dispatches changes
- Supabase client → Apartment data: reads and writes
- Shopping list UI → Roommate: shares invite
- Phone browser → App shell cache: registers
- App shell cache → Phone browser: serves cached shell
- Phone browser → Install metadata: reads install metadata