How mastershiru/gastify-app works
Financial Tracker is an Expo mobile app backed by FastAPI. Users authenticate, add expenses manually or scan receipts, review extracted receipt data, and view combined expense reports; separate app capabilities include savings tracking, local reminders and inbox, and biometric/PIN locking. Receipt parsing and OCR are distinct backend stages before review and confirmation. Source excerpts substantiate the backend receipt/OCR path and app entry-point wiring; several mobile screens and feature implementations are represented from the tree and README, so their internal call details are not inferred.
Main entry points: api.ts API client · receipts.py Receipt API · main.py API entry point · models Financial records
Components 24
Mobile app
- Sign in / register
mobile/app/(auth)/login.tsx - Onboarding
mobile/app/(onboarding)/index.tsx - Dashboard / reports
mobile/app/(tabs)/index.tsx - Manual expense
mobile/app/(tabs)/manual-expense.tsx - Receipt screens
mobile/app/(tabs)/receipts.tsx - Receipt review
mobile/app/(tabs)/receipt-review.tsx - Notification inbox
mobile/app/(tabs)/notifications.tsx - Savings / profile
mobile/app/(tabs)/profile.tsx - API client
mobile/services/api.ts - Auth token storage
mobile/services/authStorage.ts
Backend API
- API entry point
backend/main.py - Authentication
backend/app/api/v1/auth.py - Expense API
backend/app/api/v1/expenses.py
Receipt processing
- Receipt API
backend/app/api/v1/receipts.py - OCR API
backend/app/api/v1/ocr.py - OCR extraction
backend/app/services/ocr_service.py - Receipt parser
backend/app/services/receipt_parser.py
Financial data
- Database session
backend/app/db/session.py - Financial records
backend/app/db/models - Savings records
backend/app/db/models/savings_transaction.py
Device features
- App lock gate
mobile/components/AppLockGate.tsx - Local notifications
mobile/services/notifications.ts
Other components
- App user
- OCR engine
Connections 35
- App user → Sign in / register: signs in
README.md - Sign in / register → API client: sends credentials
- API client → Auth token storage: stores tokens
mobile/services/api.ts - App user → Onboarding: sets up account
README.md - App user → Dashboard / reports: views reports
README.md - App user → Manual expense: enters expense
README.md - App user → Receipt screens: scans receipt
README.md - Receipt screens → API client: uploads receipt
- API client → Receipt API: calls receipt routes
- Receipt API → OCR extraction: extracts text
backend/app/api/v1/receipts.py - OCR extraction → OCR engine: runs OCR
- Receipt API → Receipt parser: parses OCR result
backend/app/api/v1/receipts.py - Receipt API → Receipt review: returns draft
- Receipt review → API client: confirms draft
- Receipt API → Financial records: persists receipt
backend/app/api/v1/receipts.py - App user → Dashboard / reports: reviews totals
README.md - Manual expense → API client: submits expense
- API client → Expense API: calls expense routes
- Expense API → Financial records: reads / writes
backend/app/api/v1/expenses.py - App user → Savings / profile: tracks savings
README.md - Savings / profile → API client: updates savings
- Savings / profile → Savings records: manages separately
- App user → Notification inbox: checks reminders
README.md - Local notifications → Notification inbox: feeds inbox
- App user → App lock gate: unlocks app
README.md - API entry point → Authentication: registers router
backend/main.py - API entry point → Expense API: registers router
backend/main.py - API entry point → OCR API: registers router
backend/main.py - API entry point → Receipt API: registers router
backend/main.py - Authentication → Database session: uses session
backend/app/api/v1/auth.py - Authentication → Financial records: loads user
backend/app/api/v1/auth.py - Receipt API → Database session: uses session
backend/app/api/v1/receipts.py - Database session → Financial records: stores records
- OCR API → OCR extraction: uses OCR
backend/app/api/v1/ocr.py - OCR API → Receipt parser: parses receipt
backend/app/api/v1/ocr.py