How prajubs7/schemesarthi works
SchemeSarthi is a mobile app for discovering public-benefit schemes. Users authenticate, provide an eligibility profile, receive personalized matches, browse scheme listings and details, and save bookmarks; a separate Q&A feature is also present in the source tree. The sampled code confirms profile submission and the matching function’s profile-read, embedding, eligibility-match, and result-write stages. Other screen/service wiring is inferred only at the subsystem level from filenames; the README is React Native boilerplate and documents no product-specific capabilities.
Main entry points: index.ts Scheme matching function · supabase.ts Supabase client · schemesApi.ts Scheme service · useSchemeMatches.ts Scheme query hooks
Components 26
App navigation
- Root navigator
src/navigation/RootNavigator.tsx - Authentication stack
src/navigation/AuthStack.tsx - Home navigation
src/navigation/HomeStack.tsx - Main tabs
src/navigation/MainTabNavigator.tsx
Identity and profile
- Login and signup
src/screens/auth/LoginScreen.tsx - OTP verification
src/screens/auth/OtpVerifyScreen.tsx - Profile setup
src/screens/profile/ProfileSetupScreen.tsx - Profile screen
src/screens/profile/ProfileScreen.tsx - Auth session hook
src/hooks/useAuth.ts
Scheme discovery
- Personalized home
src/screens/home/HomeScreen.tsx - Matched schemes
src/screens/home/MatchedSchemesScreen.tsx - Scheme browsing
src/screens/schemes/SchemesScreen.tsx - Scheme details
src/screens/home/SchemeDetailScreen.tsx - Saved schemes
src/screens/bookmarks/BookmarksScreen.tsx - Scheme Q&A
src/screens/qa/SchemeQAScreen.tsx - Scheme query hooks
src/hooks/useSchemeMatches.ts - Bookmark query hook
src/hooks/useBookmarks.ts
Backend and matching
- Profile service
src/services/profileApi.ts - Scheme service
src/services/schemesApi.ts - Bookmark service
src/services/bookmarksApi.ts - Q&A service
src/services/qaApi.ts - Supabase client
src/services/supabase.ts - Scheme matching function
supabase/functions/match-schemes/index.ts - Supabase data store
Other components
- App user
- Gemini embeddings
Connections 29
- App user → Root navigator: opens app
- Root navigator → Authentication stack: routes unauthenticated
- Root navigator → Main tabs: routes app
- Authentication stack → Login and signup: presents auth
- Authentication stack → OTP verification: presents verification
- App user → Profile setup: submits profile
- Profile setup → Profile service: saves profile
- Profile setup → Scheme service: starts matching
- Auth session hook → Supabase client: reads session
- Main tabs → Home navigation: routes home
- Home navigation → Personalized home: presents home
- Personalized home → Scheme query hooks: loads matches
- Matched schemes → Scheme query hooks: loads matches
- Scheme browsing → Scheme query hooks: loads schemes
- Personalized home → Bookmark query hook: loads bookmarks
- Saved schemes → Bookmark query hook: manages bookmarks
- Scheme details → Bookmark query hook: manages saved scheme
- Scheme Q&A → Q&A service: requests answers
- Scheme query hooks → Scheme service: requests schemes
- Bookmark query hook → Bookmark service: requests bookmarks
- Profile service → Supabase client: accesses backend
- Scheme service → Supabase client: accesses backend
- Scheme service → Scheme matching function: invokes matching
- Bookmark service → Supabase client: accesses backend
- Q&A service → Supabase client: accesses backend
- Scheme matching function → Supabase data store: reads profile
- Scheme matching function → Gemini embeddings: embeds profile text
- Scheme matching function → Supabase data store: queries eligible schemes
- Scheme matching function → Supabase data store: upserts matches