- Space : Can consider it as a group where user can put multiple transactions
- Transaction: Transaction is the reason for which user does the money related transfer
- Transaction Details: It the original amount which the user pays or owes from someone
-
User lands on Authentication Selector Screen , gets to choose between login or register
-
Once the user registers/logs in , user lands on the All Spaces screen
-
All spaces screen
- The user will see total balance of transactions, total in and out amount . User will also get a list of all spaces which he is a part of .
- On Clicking any of the space, it will navigate the user to Space Detail screen, where the user can see space name, description, creator, and get a list of members and all transactions
-
All Transaction screen
- The user will see total balance of transactions, total in and out amount . User will also get a list of all transactions which he is a part of .
- on clicking on any of the transaction, gets the transaction description and money related details to it
-
Create New Transaction Screen
- User creates a new transaction and selects the space related to it
- Once the transaction is created , the user gets the option to select how to split the bills , User can manually split the bills on the bill split screen
UI: Jetpack Compose, Compose Navigation
Network: Retrofit, Kotlin Flows
Dependency Injection: Hilt
Server: Spring boot application deployed on Railway with MySQL
Screenshots
Start Screen | Transactions Loading Screen | Space Loading Screen |
---|---|---|
Select Contacts Screen | Space Details Screen | Home Screen |
---|---|---|
Empty Transactions Screen | Manual Bill Split Screen | Transaction Detail Screen |
---|---|---|
Transaction Home Screen | Create New Space Screen | Create Transaction Screen |
---|---|---|
Profile Screen | Image Picker Screen |
---|---|
-
Multi-modular architecture with Jetpack Compose
-
Network calls using Kotlin Flow and Retrofit
-
Each module is following Clean Architecture with MVVM
-
Use SharedPreference to store user auth token
-
Contact Picker library to pick multiple contacts from device
-
Image Picker [Instagram style]
-
Replace Shared Preference with Data Store
-
Use caching with Room DB to have offline support
-
Add Profile Screen for user -
Create Media Picker -
Add Home Screen
-
Add Transactions Graph Module
-
Add Dark Mode support
-
Add Caching with Room
Screen.Recording.2022-12-20.at.6.01.04.PM.1.1.mp4
Figma - https://www.figma.com/file/1ALLsJ6F4cvegH2y2LOAdo/Split-Your-Bills?node-id=0%3A1
Using Placeholder images from - Image by storyset on Freepik