How mohammad-soyeb/messmate works
MessMate is a browser-based mess workspace manager. Users register or sign in, create or join a mess, then manage members, record meals and bazaar purchases, and review balances and reports. The app’s route tree protects workspace features; domain services handle workspace setup and data operations through Supabase. The README also documents private receipt storage, signed image URLs, permissions, and RLS. Those capabilities are represented at the service boundary, but their full implementation and database schema were not sampled.
Main entry points: dataService.js Mess data service · App.jsx App routes · messService.js Workspace service · supabase.js Supabase client
Components 27
Application and access
- App routes
src/App.jsx - Route guards
src/components/ProtectedRoute.jsx - Workspace guard
src/components/WorkspaceRoute.jsx
Workspace and identity
- Sign-in and registration
src/pages/Login.jsx - Authentication state
src/context/AuthContext.jsx - Create or join mess
src/pages/MessSetup.jsx - Workspace service
src/services/messService.js - Account profile
src/pages/Profile.jsx
Mess operations
- Workspace dashboard
src/pages/Dashboard.jsx - Member management
src/pages/Members.jsx - Manager controls
src/pages/members/ManagerControl.jsx - Meal records
src/pages/Meals.jsx - Meal history
src/pages/meals/MealHistory.jsx - Meal report
src/pages/meals/MealReport.jsx - Bazaar entries
src/pages/Bazaar.jsx - Bazaar history
src/pages/bazaar/BazaarHistory.jsx - Bazaar summary
src/pages/bazaar/BazaarSummary.jsx
Reports and settings
- Monthly reports
src/pages/Reports.jsx - Member balances
src/pages/reports/MemberBalance.jsx - Report export
src/pages/reports/ExportReport.jsx - Workspace settings
src/pages/Settings.jsx - Data management
src/pages/settings/DataManagement.jsx - Destructive actions
src/pages/settings/DangerZone.jsx
Supabase data layer
- Mess data service
src/services/dataService.js - Supabase client
src/lib/supabase.js
Other components
- Mess user
- Supabase platform
Connections 35
- Mess user → App routes: opens
- App routes → Sign-in and registration: routes to
src/App.jsx - App routes → Create or join mess: routes to
src/App.jsx - App routes → Workspace dashboard: routes to
src/App.jsx - App routes → Meal records: routes to
src/App.jsx - App routes → Member management: routes to
src/App.jsx - App routes → Bazaar entries: routes to
src/App.jsx - App routes → Monthly reports: routes to
src/App.jsx - App routes → Workspace settings: routes to
src/App.jsx - App routes → Route guards: wraps routes
src/App.jsx - App routes → Workspace guard: gates workspace
src/App.jsx - Sign-in and registration → Authentication state: uses auth
src/pages/Login.jsx - Authentication state → Supabase client: reads auth and profiles
src/context/AuthContext.jsx - Create or join mess → Workspace service: creates or joins
src/pages/MessSetup.jsx - Workspace guard → Workspace service: checks workspace
src/components/WorkspaceRoute.jsx - Workspace service → Supabase client: calls workspace APIs
src/services/messService.js - Account profile → Mess data service: uses data operations
src/pages/Profile.jsx - Workspace dashboard → Mess data service: loads workspace data
src/pages/Dashboard.jsx - Member management → Mess data service: manages members
src/pages/Members.jsx - Manager controls → Mess data service: updates member roles
src/pages/members/ManagerControl.jsx - Meal records → Mess data service: uses data operations
- Meal history → Mess data service: loads meal history
src/pages/meals/MealHistory.jsx - Meal report → Mess data service: loads meal data
src/pages/meals/MealReport.jsx - Bazaar entries → Mess data service: records purchases
src/pages/Bazaar.jsx - Bazaar history → Mess data service: loads purchase history
src/pages/bazaar/BazaarHistory.jsx - Bazaar summary → Mess data service: loads summaries
src/pages/bazaar/BazaarSummary.jsx - Monthly reports → Mess data service: uses report data
- Member balances → Mess data service: loads balances
src/pages/reports/MemberBalance.jsx - Report export → Mess data service: loads export data
src/pages/reports/ExportReport.jsx - Data management → Mess data service: uses data operations
src/pages/settings/DataManagement.jsx - Destructive actions → Mess data service: uses data operations
src/pages/settings/DangerZone.jsx - Mess data service → Workspace service: resolves workspace
src/services/dataService.js - Mess data service → Supabase client: reads and writes records
src/services/dataService.js - Supabase client → Supabase platform: connects to
src/lib/supabase.js - Supabase platform → Mess user: authenticates and stores workspace data
README.md