How ayushshende2679/splitmate works
SplitMate is a cross-platform personal and group expense tracker. Its main user journey is entering personal or shared expenses, with budgets and reports providing tracking and review; offline storage and Firebase sync support that journey. The README documents these capabilities and the app’s main data layers, but the sampled source does not include the Dart implementations, so links between individual screens and services are limited to documented wiring. The callable parent-link function is a separate integration.
Main entry points: main.dart App startup · login_page.dart Sign-in and signup · groups_page.dart Group expenses · budget_provider.dart Budget state
Components 20
App experience
- App startup
lib/main.dart - Home dashboard
lib/SplitMateHomeScreen.dart - Sign-in and signup
lib/screens/login_page.dart - User profile
lib/screens/profile_page.dart - Notifications
lib/screens/notification_page.dart
Expense workflows
- Personal expenses
lib/screens/add_edit_expense_screen.dart - Group expenses
lib/screens/groups_page.dart - Group service
lib/screens/services/group_service.dart - Budget state
lib/presentation/providers/budget_provider.dart - Budget insights
lib/presentation/widgets/budget_insights_card.dart - PDF reports
lib/screens/reports_page.dart
Data and sync
- Budget repository
lib/data/repositories/budget_repository.dart - Local Hive storage
lib/data/datasources/local/hive_service.dart - Firestore sync
lib/screens/services/firestore_sync_service.dart
Firebase services
- Firebase Auth
- Cloud Firestore
- Access rules
firestore.rules - Parent-link function
functions/index.js - Firebase Dynamic Links
Other components
- User
Connections 16
- User → App startup: opens
- App startup → Home dashboard: starts
- App startup → Sign-in and signup: restores session
- Sign-in and signup → Firebase Auth: authenticates
- User → Personal expenses: records expenses
- User → Group expenses: manages splits
- Group expenses → Group service: uses
- User → Budget insights: reviews budgets
- Budget insights → Budget state: reads updates
- Budget state → Budget repository: uses
- Budget repository → Local Hive storage: reads and writes
- User → PDF reports: requests report
- User → Notifications: views
- Firestore sync → Cloud Firestore: syncs data
- Cloud Firestore → Access rules: access governed by
- Parent-link function → Firebase Dynamic Links: creates link