Design Splitwise

Design and implement a low-level design for a financial tracking application similar to Splitwise that allows users to keep track of shared expenses between friends and family. The application should provide features such as user registration, login, adding expenses, splitting expenses, viewing a summary of expenses, and settling debts between users. The goal is to create a simple and efficient platform for users to keep track of their shared expenses and settle debts in an organized manner.

https://firebasestorage.googleapis.com/v0/b/techprimer-fbfe6.appspot.com/o/lld%2Fsplitwise.png?alt=media&token=9f810513-79df-4c94-95e5-42f514c54a81

Requirements:

  1. User registration and login
  2. Adding expenses with details such as description, amount, and participants
  3. Splitting expenses between multiple participants
  4. Viewing a summary of expenses and settling debts between users

Sample Input/Output: