SpendWise is an offline-first expense tracking app built with Jetpack Compose, Kotlin, Room, MVVM, Hilt, WorkManager.
It allows users to add, view, filter, group, and report expenses with support for CSV/PDF export and mock offline sync.
During development, I used ChatGPT as a coding assistant to:
- Scaffold the project structure (MVVM + Clean Architecture).
- Generate Room entities, DAOs, ViewModels, and Composables faster.
- Debug issues like infinite loading in Flow collectors and dependency mismatches.
- Add extra features like validation, export, and WorkManager mock sync.
I also referred to GitHub Copilot occasionally for autocomplete suggestions inside IDE.
All AI-generated code was reviewed, tested, and refactored manually.
Here are some key prompts used with AI tools during development:
- "Guide me through the assignment of creating an Android App with Jetpack Compose and Kotlin, Room, MVVM and WorkManager for Offline-first sync (mock)"
- "Start with just the Expense Entry Screen and test saving to Room"
- "Expense List Screen — view expenses for today (default), previous dates via calendar or filter, group by category or time"
- "Simulate PDF/CSV export"
- "Bar or line chart (mocked)"
- "Validation – enforce non-empty title, amount > 0, category selection"
- Add Expense (Compose UI + Room + MVVM)
- Expense List Screen with date filter, grouping, empty state
- Expense Report Screen with weekly & category summary
- Mock charts (bar & line) for visualization
- Form validation (title, amount, category)
- Offline-first sync using WorkManager (mock upload, mark synced)
- CSV & PDF Export (scoped storage, shareable with FileProvider)
- Navigation with bottom bar (Entry, List, Report)
- Hilt DI setup (Repository, UseCases, Workers)
👉 Download Debug APK here 👉 Download Release APK here
(Add your own screenshots in screenshots/ folder and embed below)
| Add Expense | Expense List | Expense Report | Settings |
|---|---|---|---|
![]() |
![]() |
![]() |
![]() |



