How abdulazeem-10/expenseai works
ExpenseAi is a mobile personal-finance app whose main workflow takes a user from authentication and onboarding to recording income or expenses, then viewing balances, budgets, and spending patterns. Finance hooks fetch and mutate data through Supabase-backed services, while the app also supports AI-assisted receipt, voice, and chat flows. Separate scheduled Edge Functions send budget alerts and weekly recaps. The graph combines sampled source references with README-documented capabilities; unsampled screen and AI wiring is not inferred beyond those documented links.
Main entry points: useFinanceData.ts Finance queries · transactions.ts Transaction service · useTransactionMutations.ts Finance mutations · index.ts Budget alerts
Components 31
Mobile app
- Expo app
app/_layout.tsx - Sign-in and sign-up
app/(auth)/sign-in.tsx - Auth validation
lib/schemas/auth.ts - Onboarding
app/(root)/onboarding.tsx - User sync
hooks/useUserSync.ts - Dashboard
app/(root)/(tabs)/index.tsx - Transactions
app/(root)/(tabs)/transactions.tsx - Transaction entry
app/(root)/(tabs)/add-transaction.tsx - Profile and accounts
app/(root)/(tabs)/profile.tsx - User preferences
store/userStore.ts
Finance data
- Finance queries
hooks/useFinanceData.ts - Finance mutations
hooks/mutations/useTransactionMutations.ts - Query keys
lib/query/keys.ts - Account service
lib/services/accounts.ts - Budget service
lib/services/budgets.ts - Transaction service
lib/services/transactions.ts - Categories and types
constants/categories.ts - Authenticated client
hooks/useSupabase.ts - Supabase Postgres
AI features
- AI assistant
app/(root)/(tabs)/assistant.tsx - Receipt and voice capture
components/ReceiptScannerModal.tsx - Transaction extraction
lib/services/extractTransaction.ts - Gemini API
Scheduled email jobs
- Scheduled trigger
- Budget alerts
supabase/functions/check-budget-alerts/index.ts - Weekly tips
supabase/functions/weekly-tips/index.ts - Admin data client
supabase/functions/_shared/supabaseAdmin.ts - Email rendering and send
supabase/functions/_shared/resend.ts
Other components
- User
- Resend API
- User inbox
Connections 32
- User → Expo app: uses
README.md - Expo app → Sign-in and sign-up: routes to
README.md - Sign-in and sign-up → Auth validation: validates with
app/(auth)/sign-in.tsx - User → Onboarding: sets preferences
README.md - Onboarding → Authenticated client: uses
app/(root)/onboarding.tsx - User sync → Authenticated client: uses
hooks/useUserSync.ts - User sync → User preferences: updates
hooks/useUserSync.ts - Dashboard → Finance queries: loads finance data
app/(root)/(tabs)/index.tsx - Transactions → Finance queries: loads transactions
README.md - Transaction entry → Finance mutations: records transactions
README.md - Profile and accounts → Account service: manages accounts
- Finance queries → Account service: reads
hooks/useFinanceData.ts - Finance queries → Budget service: reads
hooks/useFinanceData.ts - Finance queries → Transaction service: reads
hooks/useFinanceData.ts - Finance mutations → Transaction service: writes
hooks/mutations/useTransactionMutations.ts - Finance mutations → Query keys: invalidates
hooks/mutations/useTransactionMutations.ts - Account service → Supabase Postgres: reads and writes
README.md - Budget service → Supabase Postgres: reads and writes
README.md - Transaction service → Supabase Postgres: reads and writes
lib/services/transactions.ts - Transaction service → Categories and types: uses types
- Finance queries → Authenticated client: uses
hooks/useFinanceData.ts - Receipt and voice capture → Transaction extraction: submits capture
README.md - Transaction extraction → Gemini API: extracts with
README.md - AI assistant → Gemini API: asks finance questions
README.md - Scheduled trigger → Budget alerts: invokes
README.md - Scheduled trigger → Weekly tips: invokes
README.md - Budget alerts → Admin data client: queries data
supabase/functions/check-budget-alerts/index.ts - Weekly tips → Admin data client: queries data
supabase/functions/weekly-tips/index.ts - Budget alerts → Email rendering and send: sends alert
supabase/functions/check-budget-alerts/index.ts - Weekly tips → Email rendering and send: sends recap
supabase/functions/weekly-tips/index.ts - Email rendering and send → Resend API: sends email
README.md - Resend API → User inbox: delivers
README.md