How matthewzegarra/quadra works
Quadra is an offline-first neighborhood app. Residents browse nearby services, publish listings or favors (including by voice), and coordinate emergency aid; local SQLite remains usable offline, with queued changes synchronized to Supabase when connectivity returns. In emergencies, reports can also be relayed phone-to-phone. The graph preserves the documented day-to-day and emergency branches. Some subsystem links rely on README architecture statements; unsampled route details are not inferred beyond indexed references.
Main entry points: base.ts Write and outbox · index.tsx Nearby home · [tipo].tsx Publish flow · emergency.ts Aid reports
Components 34
Resident experience
- Nearby home
src/app/(tabs)/index.tsx - Publish flow
src/app/publicar/[tipo].tsx - Profile
src/app/(tabs)/perfil.tsx - Emergency screens
src/app/emergencia/(tabs)/index.tsx - Voice input
src/features/voice/useVoiceInput.ts - Shared UI controls
src/components/ui.tsx - Accessible text
src/components/AppText.tsx - Action button
src/components/BigButton.tsx - Design tokens
src/theme/tokens.ts
Neighborhood exchange
- Service directory
src/data/repositories/listings.ts - Favor exchange
src/data/repositories/favors.ts - Domain catalog
src/features/catalog.ts - Neighbor endorsements
src/data/repositories/moderation.ts
Emergency coordination
- Aid reports
src/data/repositories/emergency.ts - Mesh routing
src/mesh/MeshRouter.ts - Mesh transport
src/mesh/MeshTransport.ts - Nearby links
src/mesh/NearbyTransport.ts
Offline data
- Local query hooks
src/data/useLocalQuery.ts - SQLite database
src/data/db.ts - Write and outbox
src/data/repositories/base.ts - Sync engine
src/data/sync/SyncEngine.ts - Data state
src/data/store.ts - Session state
src/features/session/store.ts - Profile records
src/data/repositories/profiles.ts
Connectivity and services
- Voice parser
supabase/functions/parse-voice/index.ts - Offline parser
src/features/voice/parseVoiceOffline.ts - Supabase
src/lib/supabase.ts - Connectivity
src/lib/connectivity.ts - GPS location
src/lib/location.ts - Distance utilities
src/lib/geo.ts - Location privacy
src/lib/privacy.ts - Notifications
src/lib/notify.ts - Offline neighborhood map
src/features/map/offlineMap.ts
Other components
- Resident
Connections 39
- Resident → Nearby home: browses
README.md - Resident → Publish flow: publishes
README.md - Resident → Emergency screens: requests aid
README.md - Nearby home → Service directory: loads listings
src/app/(tabs)/index.tsx - Nearby home → Domain catalog: uses categories
src/app/(tabs)/index.tsx - Publish flow → Service directory: saves listings
src/app/publicar/[tipo].tsx - Publish flow → Favor exchange: saves favors
src/app/publicar/[tipo].tsx - Publish flow → Voice input: captures speech
- Voice input → Offline parser: parses offline
README.md - Voice input → Voice parser: parses online
README.md - Emergency screens → Aid reports: loads reports
src/app/emergencia/(tabs)/index.tsx - Aid reports → Mesh routing: uses mesh reports
src/data/repositories/emergency.ts - Mesh routing → SQLite database: reads and writes
src/mesh/MeshRouter.ts - Mesh routing → Write and outbox: queues relayed reports
src/mesh/MeshRouter.ts - Mesh routing → Mesh transport: dispatches messages
README.md - Mesh transport → Nearby links: uses nearby links
README.md - Nearby links → Resident: relays to neighbor phones
README.md - Nearby home → Offline neighborhood map: shows neighborhood map
README.md - Service directory → Write and outbox: writes through
src/data/repositories/listings.ts - Favor exchange → Write and outbox: writes through
src/data/repositories/favors.ts - Aid reports → Write and outbox: writes through
src/data/repositories/emergency.ts - Write and outbox → SQLite database: writes locally
src/data/repositories/base.ts - Write and outbox → Data state: bumps table versions
src/data/repositories/base.ts - Local query hooks → SQLite database: reads locally
src/data/useLocalQuery.ts - Sync engine → SQLite database: pulls local data
README.md - Sync engine → Write and outbox: pushes outbox
README.md - Sync engine → Supabase: syncs over HTTPS
README.md - Connectivity → Sync engine: triggers sync
src/data/sync/SyncEngine.ts - Profile → Profile records: updates profile
- Profile records → Session state: uses session identity
src/data/repositories/profiles.ts - GPS location → Distance utilities: uses coordinates
src/lib/location.ts - Nearby home → Service directory: filters nearby
src/app/(tabs)/index.tsx - Shared UI controls → Accessible text: renders text
src/components/ui.tsx - Action button → Accessible text: renders text
src/components/BigButton.tsx - Accessible text → Session state: reads easy mode
src/components/AppText.tsx - Accessible text → Design tokens: uses typography tokens
src/components/AppText.tsx - Neighbor endorsements → Supabase: validates endorsements
- Aid reports → Notifications: notifies neighbors
src/data/repositories/emergency.ts - Location privacy → Distance utilities: uses distance rules
src/lib/privacy.ts