How kdevs-developer/spendly works
Spendly is an offline-first Android expense tracker with Firebase-backed accounts and data. A user signs in, enters the app’s money-management screens, and records or reviews transactions; reports, insights, exports, recurring items, bill reminders, and shared-expense/chat features extend that workflow. Navigation coordinates screens, while Repo centralizes cloud data access. The README documents the broader feature set; some screens and integrations are represented by their exact tree paths but were not sampled, so uncertain connections are omitted.
Main entry points: Repo.kt Firebase repository · Nav.kt Screen navigation · ConversationScreen.kt Chat and friends · MainActivity.kt Android activity
Components 23
App entry
- Android activity
app/src/main/java/com/kdevs/spendly/MainActivity.kt - Screen navigation
app/src/main/java/com/kdevs/spendly/nav/Nav.kt
Money management
- Home and activity
app/src/main/java/com/kdevs/spendly/ui/screens/home/HomeScreen.kt - Transactions
app/src/main/java/com/kdevs/spendly/ui/screens/money/TxnFormScreen.kt - Filters and pickers
app/src/main/java/com/kdevs/spendly/ui/screens/pickers/FilterScreen.kt - Reports and insights
app/src/main/java/com/kdevs/spendly/ui/screens/home/ReportsScreen.kt - Budgets and goals
app/src/main/java/com/kdevs/spendly/ui/screens/money - Recurring and bills
app/src/main/java/com/kdevs/spendly/ui/screens/money/RecurringScreens.kt
Sharing and chat
- Shared expenses
app/src/main/java/com/kdevs/spendly/ui/screens/splits/SplitsScreen.kt - Chat and friends
app/src/main/java/com/kdevs/spendly/ui/screens/chat/ConversationScreen.kt
Data and services
- Firebase repository
app/src/main/java/com/kdevs/spendly/data/Repo.kt - Insight calculations
app/src/main/java/com/kdevs/spendly/data/Insights.kt - Recurring worker
app/src/main/java/com/kdevs/spendly/data/RecurringWorker.kt - Message notifications
app/src/main/java/com/kdevs/spendly/data/Inbox.kt - Push function
functions/index.js - Home-screen widget
app/src/main/java/com/kdevs/spendly/data/SpendlyWidget.kt
Account and utilities
- Sign-in screens
app/src/main/java/com/kdevs/spendly/ui/screens/auth/AuthScreen.kt - Data export
app/src/main/java/com/kdevs/spendly/ui/screens/export/ExportScreen.kt - Settings and backup
app/src/main/java/com/kdevs/spendly/ui/screens/settings/SettingsScreen.kt - Biometric lock
app/src/main/java/com/kdevs/spendly/ui/screens/settings/Lock.kt - Device preferences
app/src/main/java/com/kdevs/spendly/data/Prefs.kt
Other components
- User
- Firebase services
Connections 25
- User → Android activity: opens app
README.md - Android activity → Screen navigation: shows app
app/src/main/java/com/kdevs/spendly/MainActivity.kt - Screen navigation → Sign-in screens: routes to
app/src/main/java/com/kdevs/spendly/nav/Nav.kt - Screen navigation → Home and activity: routes to
app/src/main/java/com/kdevs/spendly/nav/Nav.kt - Screen navigation → Transactions: routes to
app/src/main/java/com/kdevs/spendly/nav/Nav.kt - Screen navigation → Chat and friends: routes to
app/src/main/java/com/kdevs/spendly/nav/Nav.kt - Screen navigation → Shared expenses: routes to
app/src/main/java/com/kdevs/spendly/nav/Nav.kt - Sign-in screens → Firebase repository: authenticates with
app/src/main/java/com/kdevs/spendly/ui/screens/auth/AuthScreen.kt - Home and activity → Firebase repository: reads data
app/src/main/java/com/kdevs/spendly/ui/screens/home/HomeScreen.kt - Transactions → Firebase repository: saves transactions
app/src/main/java/com/kdevs/spendly/ui/screens/money/TxnFormScreen.kt - Filters and pickers → Firebase repository: loads options
app/src/main/java/com/kdevs/spendly/ui/screens/pickers/FilterScreen.kt - Reports and insights → Firebase repository: reads data
app/src/main/java/com/kdevs/spendly/ui/screens/home/ReportsScreen.kt - Reports and insights → Insight calculations: uses calculations
app/src/main/java/com/kdevs/spendly/ui/screens/home/ReportsScreen.kt - Data export → Firebase repository: gets transactions
app/src/main/java/com/kdevs/spendly/ui/screens/export/ExportScreen.kt - Data export → User: saves chosen file
app/src/main/java/com/kdevs/spendly/ui/screens/export/ExportScreen.kt - Firebase repository → Firebase services: accesses services
README.md - Recurring worker → Firebase repository: processes recurring
app/src/main/java/com/kdevs/spendly/data/RecurringWorker.kt - Recurring worker → Message notifications: uses reminders
app/src/main/java/com/kdevs/spendly/data/RecurringWorker.kt - Settings and backup → Device preferences: updates settings
app/src/main/java/com/kdevs/spendly/ui/screens/settings/SettingsScreen.kt - Biometric lock → Device preferences: reads lock setting
app/src/main/java/com/kdevs/spendly/ui/screens/settings/Lock.kt - Biometric lock → Android activity: prompts unlock
- Chat and friends → Firebase repository: loads messages
app/src/main/java/com/kdevs/spendly/ui/screens/chat/ConversationScreen.kt - Chat and friends → Message notifications: updates inbox
app/src/main/java/com/kdevs/spendly/ui/screens/chat/ConversationScreen.kt - Shared expenses → Firebase repository: stores splits
app/src/main/java/com/kdevs/spendly/ui/screens/splits/SplitsScreen.kt - Push function → Firebase services: sends pushes