How zaheer-r/visionmate works
VisionMate is an installable, voice-first accessibility web app. Users enter through its browser interface, then request spoken assistance, camera-based image help or text reading, translation, route estimates, or everyday tools; the app returns visual and spoken results. Guest data remains on-device, while configured account and AI features use Firebase/Supabase services. The graph reflects README capabilities and indexed imports/calls; unsampled feature implementations and some dynamic wiring are shown only where documented, so uncertain links are omitted.
Main entry points: app.js VisionMate UI · supabase.js Supabase data client · routes.js Route estimates · index.ts Anuvaadhub function
Components 24
App experience
- VisionMate UI
js/app.js - Route estimates
js/routes.js - Everyday tools
js/app.js
Voice and vision
- Camera capture
js/camera.js - Speech service
js/speech.js - Speech input
js/stt.js - Request intent
js/intent.js
Language and AI
- Translation
js/mt.js - Anuvaadhub client
js/anuvaadhub.js - Gemini function
supabase/functions/gemini-assist/index.ts - Anuvaadhub function
supabase/functions/anuvaadhub-inference/index.ts - Model catalog
supabase/functions/_shared/anuvaadhub-catalog.ts - Bhashini translation
supabase/functions/bhashini-translate/index.ts
Accounts and data
- Supabase data client
js/supabase.js - Auth and guest mode
js/auth.js - Firebase adapter
js/firebase.js - Browser-local data
- Account data
supabase/migrations
Other components
- User
- Gemini API
- Anuvaadhub API
- Destination geocoder
- Pedestrian router
- Firebase Auth
Connections 26
- User → VisionMate UI: uses
README.md - VisionMate UI → Camera capture: requests capture
js/app.js - VisionMate UI → Speech service: uses speech
js/app.js - VisionMate UI → Speech input: uses input
js/app.js - VisionMate UI → Request intent: classifies requests
js/app.js - VisionMate UI → Route estimates: requests estimate
README.md - Route estimates → Destination geocoder: looks up destination
js/routes.js - Route estimates → Pedestrian router: calculates route
js/routes.js - VisionMate UI → Everyday tools: manages tools
README.md - VisionMate UI → Supabase data client: loads and saves
js/app.js - VisionMate UI → Auth and guest mode: manages session
js/app.js - Auth and guest mode → Firebase adapter: signs in
js/auth.js - Firebase adapter → Firebase Auth: authenticates
js/firebase.js - Auth and guest mode → Browser-local data: stores guest profile
js/auth.js - Supabase data client → Firebase adapter: gets user identity
js/supabase.js - Supabase data client → Account data: reads and writes
js/supabase.js - Speech service → Supabase data client: requests cloud speech
js/speech.js - Supabase data client → Gemini function: invokes function
js/supabase.js - Gemini function → Gemini API: generates speech
supabase/functions/gemini-assist/index.ts - VisionMate UI → Translation: translates text
js/app.js - Translation → Anuvaadhub client: uses provider
js/mt.js - Anuvaadhub client → Supabase data client: invokes function
js/anuvaadhub.js - Supabase data client → Anuvaadhub function: invokes function
- Anuvaadhub function → Model catalog: selects model route
supabase/functions/anuvaadhub-inference/index.ts - Anuvaadhub function → Anuvaadhub API: sends inference
supabase/functions/anuvaadhub-inference/index.ts - Bhashini translation → Anuvaadhub API: uses translation