How savitp/spotshare works
SpotShare is a map-based community app for discovering and contributing public amenities and group-only spots, including scheduled group events. The main flow is sign-in, select a public or member group map, browse and filter markers, then place and submit a spot; App coordinates Supabase reads and writes. Group management separately supports creating groups, joining them with optional join codes, and choosing the active map. The map uses OpenStreetMap tiles through Leaflet. The README is empty and some App.tsx sections are omitted, so the graph limits links to behavior evidenced by sampled source.
Main entry points: App.tsx App state · supabaseClient.ts Supabase client · MapUI.tsx Map and markers · GroupManager.tsx Group management
Components 12
App coordination
- React mount
index.tsx - App state
App.tsx
Spot mapping
- Spot filters
components/FilterBar.tsx - Map and markers
components/MapUI.tsx - Spot entry
components/AddAmenityForm.tsx - Spot and group models
types.ts - OpenStreetMap tiles
Group spaces
- Group management
components/GroupManager.tsx
Identity and data
- Sign-in UI
components/AuthUI.tsx - Supabase client
supabaseClient.ts - Supabase service
Other components
- Map user
Connections 18
- Map user → React mount: opens app
- React mount → App state: mounts
- App state → Sign-in UI: shows signed out
- Sign-in UI → Supabase client: authenticates
- App state → Supabase client: loads and saves spots
- App state → Supabase client: loads memberships
- App state → Spot filters: sets filter
- Spot filters → App state: selects type
- App state → Map and markers: renders filtered spots
- Map and markers → App state: reports map clicks
- Map and markers → App state: requests deletion
- App state → Spot entry: opens at location
- Spot entry → App state: submits spot
- App state → Group management: opens group panel
- Group management → App state: selects active group
- Group management → Supabase client: reads and updates groups
- Supabase client → Supabase service: queries and writes
- Map and markers → OpenStreetMap tiles: loads map tiles