Design Splitwise
Requirements
- User shall be able to add an expense and split with someone from contacts if required
- User shall be able to see the net balance
- user has multiple groups with his contacts
- Splits can be done in multiple ways
Translation into Objects
- User has an shared expense
- user has multiple groups
- groups has users
- expense has an amount either credit/debit
- expense has payers
- expense has borrowers
- expense has a date
- expense has splitting strategy
- expense has payers-split ratio and borrowers split-ratio map.
Expected Queries
- User Dashboard showing the net balance
- User Dashboard showing net balance in each group
- User Group expense History
- user transactions History
Class Diagram Walk Through
To be added
ClassDiagram
Design Trade Offs
To be added