Requirement Analysis/Gathering Requirements of Splitwise

Prioritized Requirements:

  • Users can add expenses.
  • Users can edit expenses.
  • Users can delete an existing expense.
  • Users can settle their expenses.
  • Users should be allowed to make groups and add, edit, and settle expenses in the group.
  • Users can list all the expenses that he has done with a specific friend.
  • All involved users in an expense should be notified when the expense is created, edited, or deleted.

Design Requirements:

  • User: Every individual will have an ID, name, email, and phone number. 
  • Expense: This could be outside the group and within the group. 
    • EQUAL: Expense is distributed among all users. Example: Rent among users.
    • EXACT: Expense is distributed among specific users but certainly not all. 
    • PERCENTAGE: Expense is distributed in accordance with proportions among users. Example: Road trip expense.

Listing out non-required system Gatherings

Non-required system requirements are as follows:

  • No need to maintain records for the activity: We do not need to maintain an activity log for every event as we are making sure consistency is achieved throughout while one user is adding expenses another activity for the same time instance is stopped, hence we do not need to maintain a log for the same.
  • Comments for records
  • Authentication service: Nor do we require authentication to add a user to a group/outside the group.  

System Design of Backend for Expense Sharing Apps like Splitwise

In this post, we will look into the System Design of Expense Sharing Applications such as Splitiwse. We will deep dive into the LLD of Splitwise, the Happy Flow of Splitwise, and also how to design the backend for Splitwise or such Expense Sharing Applications.

Table of Content

  • About Expense-Sharing Applications
  • System Design of Splitwise
  • Step 1: Defining Happy Flow for Splitwise
  • Step 2: Requirement Analysis/Gathering Requirements of Splitwise
  • Step 3: Low-Level Design (LLD) of Splitwise
  • Scaling Splitwise- How It Is Achievable Invoking Caching

Similar Reads

About Expense-Sharing Applications

...

System Design of Splitwise

Expense-sharing applications are used to log, track, and monitor the expenses of users with each other or in a group. The most famous example of such an application is Splitwise....

Step 1: Defining Happy Flow for Splitwise

Step 1: Defining Happy Flow for Splitwise...

Step 2: Requirement Analysis/Gathering Requirements of Splitwise

Let us first define a happy flow corresponding to which we will easily be able to plot out requirement gathering:...

Step 3: Low-Level Design (LLD) of Splitwise

Prioritized Requirements:...

Scaling Splitwise- How It Is Achievable Invoking Caching

3.1: Defining Objects | Splitwise LLD...