expense-tracking

byJwalant Mehta

**System Role:** Act as an Expert Android Developer and Software Architect specializing in Kotlin, MVVM, Clean Architecture, and offline-first applications. **Core Task:** Generate the technical blueprint, database schema, and core logic for an offline Android expense tracking app that automates entries via SMS parsing. **Context & Variables:** - Platform: Android (Kotlin). - Primary Trigger: Automated expense/income entry by parsing Indian UPI debit/credit SMS messages (requires `READ_SMS` and `RECEIVE_SMS` permissions). - Secondary Features: Manual CRUD operations for expenses, interactive graph visualizations (e.g., MPAndroidChart or Jetpack Compose Canvas). - UI/UX: Inherited from an existing "AI-Enabled Finance Tracking" design system (assume modern, component-based UI). - Infrastructure: Local Room Database. **Constraints:** - STRICTLY OFFLINE: Zero internet permissions. No login, no cloud sync, no Firebase. - ZERO generic setup code (e.g., do not show me how to start a new Android Studio project). - Focus heavily on the exact Regex patterns needed to extract amounts, dates, and merchant names from standard Indian bank UPI SMS formats (SBI, HDFC, ICICI). - Maintain strict MVVM separation between the SMS Broadcast Receiver (trigger), Repository (data), and UI (graphs/lists). **Output Topology (Format strictly as follows):** 1. **Architecture Blueprint (Bullet Points):** Recommended offline tech stack (e.g., Room, Coroutines, Jetpack Compose vs XML, Charting library). 2. **Room Database Schema (Kotlin Code Block):** The exact Entity data classes required to store parsed and manual expenses. 3. **SMS Parser Regex Engine (Kotlin Code Block):** A utility class containing the specific Regular Expressions to capture standard Indian UPI debit/credit SMS formats. 4. **Implementation Roadmap (Markdown Table):** Columns for [Phase, Component (e.g., BroadcastReceiver, ViewModel), Key Logic to Implement].

No preview

Comments (0)

No comments yet. Be the first!

No completed page designs yet.

Completed design pages will appear here when they are ready to preview.

Landing: Open app to instrument panel
Landing: Grant SMS permissions
Landing: Note capture active
Landing: Note capture off, manual works
Landing: Retry ledger excerpt read
Landing: 1. Proceed to ledger
Landing: Jump to Add Entry
Transactions: 2. Review captured SMS row
Transactions: 3. Read unparsed SMS notice
Transactions: 4. Retry ledger read
Transactions: 5. Open entry details
Transactions: 6. Open Add Entry
Transactions: 7. Open Insights
Add Entry: 8. Enter amount and direction
Add Entry: 9. Assign merchant and category
Add Entry: 10. Save manual entry
Add Entry: 11. Fix invalid amount
Add Entry: 12. Retry failed save
Add Entry: 13. Cancel without saving
Transactions: 14. Confirm manual row visible
Transactions: 15. Acknowledge unparsed notice
Entry Details: 16. Review entry and raw SMS
Entry Details: 17. Correct merchant field
Entry Details: 18. Save edits
Entry Details: 19. Retry failed save
Entry Details: 20. Delete entry and confirm
Entry Details: Return to ledger on not found
Entry Details: 21. Return without changes
Transactions: 22. Confirm corrected row
Transactions: 23. Confirm deleted row gone
Insights: 24. Read category gauge rings
Insights: 25. Switch visualized grouping
Insights: 26. Retry failed aggregation
Insights: Open Add Entry from empty state
Insights: 27. Return to ledger

No completed page designs yet.

Completed design pages will appear here when they are ready to preview.

Landing: Open app to instrument panel
Landing: Grant SMS permissions
Landing: Note capture active
Landing: Note capture off, manual works
Landing: Retry ledger excerpt read
Landing: 1. Proceed to ledger
Landing: Jump to Add Entry
Transactions: 2. Review captured SMS row
Transactions: 3. Read unparsed SMS notice
Transactions: 4. Retry ledger read
Transactions: 5. Open entry details
Transactions: 6. Open Add Entry
Transactions: 7. Open Insights
Add Entry: 8. Enter amount and direction
Add Entry: 9. Assign merchant and category
Add Entry: 10. Save manual entry
Add Entry: 11. Fix invalid amount
Add Entry: 12. Retry failed save
Add Entry: 13. Cancel without saving
Transactions: 14. Confirm manual row visible
Transactions: 15. Acknowledge unparsed notice
Entry Details: 16. Review entry and raw SMS
Entry Details: 17. Correct merchant field
Entry Details: 18. Save edits
Entry Details: 19. Retry failed save
Entry Details: 20. Delete entry and confirm
Entry Details: Return to ledger on not found
Entry Details: 21. Return without changes
Transactions: 22. Confirm corrected row
Transactions: 23. Confirm deleted row gone
Insights: 24. Read category gauge rings
Insights: 25. Switch visualized grouping
Insights: 26. Retry failed aggregation
Insights: Open Add Entry from empty state
Insights: 27. Return to ledger