Android project with RoomDB, WorkFlow Api, and Flow-Coroutine to add, edit, and filter expenses of the user. The project has the functionality to back up and restore the database.
- Navigation Component: To navigate between fragments
- Koin: For Dependency Injection
- Room DB: Library for CRUD operations
- Android Lifecycle: Performing threading operation with lifecycle awareness
- Kotlin Coroutines: Library for executing multi-thread operations
- Kotlin FLow
- GSON: Used for converting database table to GSON file
- WorkManger: Used for executing Backup - Restore operations
The database has 3 tables. Users, Categories, and Expenses.
Relation:
- Every category is connected to a user and can be a sub-category for another one
- Every Expense is connected to a category
List All the expenses saved in DB and group them by the month
Filter by user and / or category
You can also filter by selecting a date range
New expense page to add all the pieces of information required to the database
Add a date to the new transaction by selecting a day from the Date Picker Dialog
Add a Category from the list of categories
Settings page where you can modify the user and category table or backup and restore the database.
This page will list the user information. You can edit or delete the user. If there are any users related to it, they will be displayed in the Sub Users table
This page will list the category information. You can edit or delete it. If there are any categories related to it, they will be displayed in the Sub Categories table