From 2126cfe55b744d429fef563c8649a8cb0d123c2b Mon Sep 17 00:00:00 2001 From: Parul Setia Date: Mon, 8 Jun 2020 18:24:49 +0530 Subject: [PATCH 1/5] Update README.md --- README.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/README.md b/README.md index 11da620..b58f156 100755 --- a/README.md +++ b/README.md @@ -1,3 +1,8 @@ +# **High Level Design for SplitWise** +Functional Requirements + +Non Functional Requirements + # mock-machine-coding-2 Welcome to the 2nd Mock Machine Coding Round by [workat.tech](http://workat.tech). From 7771f164022214319b0cb919491ad36424d93e11 Mon Sep 17 00:00:00 2001 From: Parul Setia Date: Mon, 8 Jun 2020 18:28:42 +0530 Subject: [PATCH 2/5] Split Wise Application Machine Coding and LLD --- SplitWise_low_level_uml.png | Bin 0 -> 180407 bytes Splitwise.uml | 234 ++++++++++++++++++ input.txt | 8 + .../com/splitwise/driver/SplitwiseDriver.java | 34 +++ .../java/com/splitwise/io/InputTxtReader.java | 32 +++ .../java/com/splitwise/model/Expense.java | 12 + .../model/ExpenseTransactionInfo.java | 68 +++++ src/main/java/com/splitwise/model/User.java | 97 ++++++++ .../com/splitwise/model/UserRegistry.java | 26 ++ .../process/TransactionProcesser.java | 28 +++ .../splitStrategy/SplitStartegy.java | 8 + .../splitStrategy/impl/SplitByEqual.java | 34 +++ .../splitStrategy/impl/SplitByExact.java | 28 +++ .../splitStrategy/impl/SplitByPercent.java | 30 +++ .../BalanceTransaction.java | 71 ++++++ .../ExpenseTransaction.java | 104 ++++++++ .../transactionFactory/Transaction.java | 7 + 17 files changed, 821 insertions(+) create mode 100644 SplitWise_low_level_uml.png create mode 100644 Splitwise.uml create mode 100644 input.txt create mode 100644 src/main/java/com/splitwise/driver/SplitwiseDriver.java create mode 100644 src/main/java/com/splitwise/io/InputTxtReader.java create mode 100644 src/main/java/com/splitwise/model/Expense.java create mode 100644 src/main/java/com/splitwise/model/ExpenseTransactionInfo.java create mode 100644 src/main/java/com/splitwise/model/User.java create mode 100644 src/main/java/com/splitwise/model/UserRegistry.java create mode 100644 src/main/java/com/splitwise/process/TransactionProcesser.java create mode 100644 src/main/java/com/splitwise/splitStrategy/SplitStartegy.java create mode 100644 src/main/java/com/splitwise/splitStrategy/impl/SplitByEqual.java create mode 100644 src/main/java/com/splitwise/splitStrategy/impl/SplitByExact.java create mode 100644 src/main/java/com/splitwise/splitStrategy/impl/SplitByPercent.java create mode 100644 src/main/java/com/splitwise/transactionFactory/BalanceTransaction.java create mode 100644 src/main/java/com/splitwise/transactionFactory/ExpenseTransaction.java create mode 100644 src/main/java/com/splitwise/transactionFactory/Transaction.java diff --git a/SplitWise_low_level_uml.png b/SplitWise_low_level_uml.png new file mode 100644 index 0000000000000000000000000000000000000000..66b164634a24745be8fbce00790c951dc673c8fe GIT binary patch literal 180407 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 J#Wx;3`(Kh>@WTKA literal 0 HcmV?d00001 diff --git a/Splitwise.uml b/Splitwise.uml new file mode 100644 index 0000000..8c72544 --- /dev/null +++ b/Splitwise.uml @@ -0,0 +1,234 @@ + + + JAVA + com.splitwise.driver + + com.splitwise.model.User + com.splitwise.splitStrategy.impl.SplitByExact + com.splitwise.splitStrategy.impl.SplitByEqual + com.splitwise.model.UserRegistry + com.splitwise.model.ExpenseTransactionInfo + com.splitwise.transactionFactory.ExpenseTransaction + com.splitwise.process.TransactionProcesser + com.splitwise.transactionFactory.BalanceTransaction + com.splitwise.transactionFactory.Transaction + com.splitwise.io.InputTxtReader + com.splitwise.driver.SplitwiseDriver + com.splitwise.model.Expense + com.splitwise.splitStrategy.impl.SplitByPercent + com.splitwise.splitStrategy.SplitStartegy + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Fields + Methods + Properties + + All + private + + diff --git a/input.txt b/input.txt new file mode 100644 index 0000000..30eb7da --- /dev/null +++ b/input.txt @@ -0,0 +1,8 @@ +EXPENSE u1 1000 4 u1 u2 u3 u4 EQUAL +SHOW u4 +SHOW u1 +EXPENSE u1 1250 2 u2 u3 EXACT 370 880 +SHOW +EXPENSE u4 1200 4 u1 u2 u3 u4 PERCENT 40 20 20 20 +SHOW u1 +SHOW \ No newline at end of file diff --git a/src/main/java/com/splitwise/driver/SplitwiseDriver.java b/src/main/java/com/splitwise/driver/SplitwiseDriver.java new file mode 100644 index 0000000..dec3225 --- /dev/null +++ b/src/main/java/com/splitwise/driver/SplitwiseDriver.java @@ -0,0 +1,34 @@ +package com.splitwise.driver; + + +import com.splitwise.io.InputTxtReader; +import com.splitwise.model.User; +import com.splitwise.model.UserRegistry; + +public class SplitwiseDriver{ + private static UserRegistry userRegistry; + + public static UserRegistry getUserRegistry(){ + return userRegistry; + } + public static void main(String[] args) { + User u1 = new User("u1","88888888881","u1@abc.com"); + User u2 = new User("u2","88888888882","u3@abc.com"); + User u3 = new User("u3","88888888883","u2@abc.com"); + User u4 = new User("u4","88888888884","u4@abc.com"); + User u5 = new User("u5","88888888885","u5@abc.com"); + + + userRegistry = new UserRegistry(); + userRegistry.getUserRegistry().add(u1); + userRegistry.getUserRegistry().add(u2); + userRegistry.getUserRegistry().add(u3); + userRegistry.getUserRegistry().add(u4); + userRegistry.getUserRegistry().add(u5); + + InputTxtReader reader = new InputTxtReader(); + reader.readInputTxtFile("input.txt"); + + + } + } \ No newline at end of file diff --git a/src/main/java/com/splitwise/io/InputTxtReader.java b/src/main/java/com/splitwise/io/InputTxtReader.java new file mode 100644 index 0000000..4a21be5 --- /dev/null +++ b/src/main/java/com/splitwise/io/InputTxtReader.java @@ -0,0 +1,32 @@ +package com.splitwise.io; + + +import com.splitwise.process.TransactionProcesser; + +import java.io.*; + +public class InputTxtReader { + TransactionProcesser processor; + public InputTxtReader(){ + processor = new TransactionProcesser(); + } + public void readInputTxtFile(String fileName) { + if(fileName==null && fileName.isEmpty()){ + System.err.println("FileName is empty or Null . Aborting!!!"); + return; + } + try { + File file = new File(fileName); + BufferedReader br = new BufferedReader(new FileReader(file)); + String st; + while ((st = br.readLine()) != null) { + //System.out.println(st); + processor.process(st); + } + }catch(Exception e){ + System.err.println("Exception while reading a file"+e); + } + } + +} + diff --git a/src/main/java/com/splitwise/model/Expense.java b/src/main/java/com/splitwise/model/Expense.java new file mode 100644 index 0000000..eb020de --- /dev/null +++ b/src/main/java/com/splitwise/model/Expense.java @@ -0,0 +1,12 @@ +package com.splitwise.model; + +import java.util.List; + +public class Expense { + + private User paidByUser; + private int amount; + private int noOfPeopleInExpense; + List usersInExpense; + +} diff --git a/src/main/java/com/splitwise/model/ExpenseTransactionInfo.java b/src/main/java/com/splitwise/model/ExpenseTransactionInfo.java new file mode 100644 index 0000000..5e5a16c --- /dev/null +++ b/src/main/java/com/splitwise/model/ExpenseTransactionInfo.java @@ -0,0 +1,68 @@ +package com.splitwise.model; + +import java.util.List; + +public class ExpenseTransactionInfo { + private double amount; + private int noOfPeopleInTxn; + private List usersInTxn; + private String splitType; + private User paidByUser; + private List args; + public double getAmount() { + return amount; + } + + public void setAmount(double amount) { + this.amount = amount; + } + + public int getNoOfPeopleInTxn() { + return noOfPeopleInTxn; + } + + public void setNoOfPeopleInTxn(int noOfPeopleInTxn) { + this.noOfPeopleInTxn = noOfPeopleInTxn; + } + + public List getUsersInTxn() { + return usersInTxn; + } + + public void setUsersInTxn(List usersInTxn) { + this.usersInTxn = usersInTxn; + } + + public String getSplitType() { + return splitType; + } + + public void setSplitType(String splitType) { + this.splitType = splitType; + } + + public User getPaidByUser() { + return paidByUser; + } + + public void setPaidByUser(User paidByUser) { + this.paidByUser = paidByUser; + } + + public List getArgs() { + return args; + } + + public void setArgs(List args) { + this.args = args; + } + + public ExpenseTransactionInfo(double amount, int noOfPeopleInTxn, List usersInTxn, User paidByUser, List args) { + this.amount = amount; + this.noOfPeopleInTxn = noOfPeopleInTxn; + this.usersInTxn = usersInTxn; + + this.paidByUser = paidByUser; + this.args = args; + } +} diff --git a/src/main/java/com/splitwise/model/User.java b/src/main/java/com/splitwise/model/User.java new file mode 100644 index 0000000..5ecd166 --- /dev/null +++ b/src/main/java/com/splitwise/model/User.java @@ -0,0 +1,97 @@ +package com.splitwise.model; + +import java.util.HashMap; +import java.util.Map; +import java.util.Objects; + +public class User { + + private static int U_ID=0; + private int userId; + private String name; + private String phoneNo; + private String email; + private int balance; + private Map expenseKeepingBook; + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + User user = (User) o; + return userId == user.userId; + } + + @Override + public int hashCode() { + return Objects.hash(userId); + } + + public User(String name, String phoneNo, String email) { + this.userId = U_ID++; + this.name = name; + this.phoneNo = phoneNo; + this.email = email; + expenseKeepingBook= new HashMap<>(); + } + + public static int getuId() { + return U_ID; + } + + public int getUserId() { + return userId; + } + + public void setUserId(int userId) { + this.userId = userId; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getPhoneNo() { + return phoneNo; + } + + public void setPhoneNo(String phoneNo) { + this.phoneNo = phoneNo; + } + + public String getEmail() { + return email; + } + + public void setEmail(String email) { + this.email = email; + } + + public int getBalance() { + return balance; + } + + public void setBalance(int balance) { + this.balance = balance; + } + + public Map getExpenseKeepingBook() { + return expenseKeepingBook; + } + + public void setExpenseKeepingBook(Map expenseKeepingBook) { + this.expenseKeepingBook = expenseKeepingBook; + } + + public static void setuId(int uId) { + U_ID = uId; + } +} diff --git a/src/main/java/com/splitwise/model/UserRegistry.java b/src/main/java/com/splitwise/model/UserRegistry.java new file mode 100644 index 0000000..fe69a74 --- /dev/null +++ b/src/main/java/com/splitwise/model/UserRegistry.java @@ -0,0 +1,26 @@ +package com.splitwise.model; + +import java.util.HashSet; +import java.util.Optional; +import java.util.Set; + +public class UserRegistry { + public Set getUserRegistry() { + return userRegistry; + } + + public void setUserRegistry(Set userRegistry) { + this.userRegistry = userRegistry; + } + + private Set userRegistry = new HashSet(); + + public Optional searchUserFromRegistry(String userName){ + for(User user : userRegistry){ + if (user.getName().equalsIgnoreCase(userName)){ + return Optional.of(user); + } + } + return Optional.empty(); + } +} diff --git a/src/main/java/com/splitwise/process/TransactionProcesser.java b/src/main/java/com/splitwise/process/TransactionProcesser.java new file mode 100644 index 0000000..4a545ad --- /dev/null +++ b/src/main/java/com/splitwise/process/TransactionProcesser.java @@ -0,0 +1,28 @@ +package com.splitwise.process; + +import com.splitwise.transactionFactory.BalanceTransaction; +import com.splitwise.transactionFactory.ExpenseTransaction; +import com.splitwise.transactionFactory.Transaction; + +import java.security.BasicPermission; + +public class TransactionProcesser { + Transaction expenseProcessor; + Transaction balanceProcessor; + public TransactionProcesser(){ + expenseProcessor = new ExpenseTransaction(); + balanceProcessor = new BalanceTransaction(); + } + public void process(String input){ + String []inputArr = input.trim().split("\\s+"); + String action = inputArr[0]; + switch (action){ + case "EXPENSE": + expenseProcessor.processTransaction(inputArr); + break; + case "SHOW": + balanceProcessor.processTransaction(inputArr); + break; + } + } +} diff --git a/src/main/java/com/splitwise/splitStrategy/SplitStartegy.java b/src/main/java/com/splitwise/splitStrategy/SplitStartegy.java new file mode 100644 index 0000000..0c52253 --- /dev/null +++ b/src/main/java/com/splitwise/splitStrategy/SplitStartegy.java @@ -0,0 +1,8 @@ +package com.splitwise.splitStrategy; + +import com.splitwise.model.ExpenseTransactionInfo; + +public interface SplitStartegy { + + public void executeSplit(ExpenseTransactionInfo expTxn); +} diff --git a/src/main/java/com/splitwise/splitStrategy/impl/SplitByEqual.java b/src/main/java/com/splitwise/splitStrategy/impl/SplitByEqual.java new file mode 100644 index 0000000..9182cfa --- /dev/null +++ b/src/main/java/com/splitwise/splitStrategy/impl/SplitByEqual.java @@ -0,0 +1,34 @@ +package com.splitwise.splitStrategy.impl; + +import com.splitwise.driver.SplitwiseDriver; +import com.splitwise.model.ExpenseTransactionInfo; +import com.splitwise.model.User; +import com.splitwise.splitStrategy.SplitStartegy; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import java.util.Optional; + +public class SplitByEqual implements SplitStartegy { + + @Override + public void executeSplit(ExpenseTransactionInfo expTxn) { + User user = expTxn.getPaidByUser(); + for(int i=0;i users = SplitwiseDriver.getUserRegistry().getUserRegistry(); + users = users.stream().filter(user-> !user.getExpenseKeepingBook().isEmpty()).collect(Collectors.toSet()); + if(users.isEmpty()){ + System.out.println("No balances"); + return; + } + + for(User user : users){ + Map expenseMapping = user.getExpenseKeepingBook(); + expenseMapping.forEach((u,amount)->{ + if(amount < 0){ + System.out.println("User "+user.getName()+"owes User "+u.getName()+"amount :"+(-1*amount)); + } + }); + } + + }else if(inputArr.length == 2){ + User u = SplitwiseDriver.getUserRegistry().searchUserFromRegistry(inputArr[1]).get(); + if(u.getExpenseKeepingBook().isEmpty()){ + System.out.println("No balances"); + return; + } + + Map expenseMapping = u.getExpenseKeepingBook(); + expenseMapping.forEach((user,amount)->{ + if(amount < 0){ + System.out.println("User "+u.getName()+"owes User "+user.getName()+"amount :"+(-1*amount)); + }else { + System.out.println("User "+user.getName()+"owes User "+u.getName()+"amount :"+amount); + } + }); + } + + } + + @Override + public boolean validateInput(String[] inputArr) { + if(inputArr.length > 2) + return false; + if(!inputArr[0].equalsIgnoreCase("show")) + return false; + if(inputArr.length == 2){ + String userName = inputArr[1]; + Optional user = SplitwiseDriver.getUserRegistry().searchUserFromRegistry(userName); + if(!user.isPresent()) + return false; + } + return true; + } +} diff --git a/src/main/java/com/splitwise/transactionFactory/ExpenseTransaction.java b/src/main/java/com/splitwise/transactionFactory/ExpenseTransaction.java new file mode 100644 index 0000000..4f6dcf4 --- /dev/null +++ b/src/main/java/com/splitwise/transactionFactory/ExpenseTransaction.java @@ -0,0 +1,104 @@ +package com.splitwise.transactionFactory; + +import com.splitwise.driver.SplitwiseDriver; +import com.splitwise.model.ExpenseTransactionInfo; +import com.splitwise.model.User; +import com.splitwise.splitStrategy.SplitStartegy; +import com.splitwise.splitStrategy.impl.SplitByEqual; +import com.splitwise.splitStrategy.impl.SplitByExact; +import com.splitwise.splitStrategy.impl.SplitByPercent; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import java.util.Optional; + +public class ExpenseTransaction implements Transaction{ + + + SplitStartegy byEqual; + SplitStartegy byExact; + SplitStartegy byPercent; + public ExpenseTransaction(){ + byEqual = new SplitByEqual(); + byPercent = new SplitByPercent(); + byExact = new SplitByExact(); + } + @Override + public void processTransaction(String[] inputArr) { + boolean isValid = validateInput(inputArr); + if(!isValid){ + return; + } + + ExpenseTransactionInfo expTxn = getExpenseTransactionInfo(inputArr); + String splitType = inputArr[4+expTxn.getNoOfPeopleInTxn()]; + switch(splitType.toUpperCase()){ + case "EXACT": + byExact.executeSplit(expTxn); + break; + case "PERCENT": + byPercent.executeSplit(expTxn); + break; + case "EQUAL": + byEqual.executeSplit(expTxn); + break; + + } + + } + private ExpenseTransactionInfo getExpenseTransactionInfo(String[] inputArr){ + double amount = Integer.parseInt(inputArr[2]); + int noOfPeopleinTxn = Integer.parseInt(inputArr[3]); + List usersInTxn = new ArrayList(); + for(int i = 4; i < noOfPeopleinTxn+4;i++){ + String userName = inputArr[i]; + Optional u = SplitwiseDriver.getUserRegistry().searchUserFromRegistry(userName); + // TODO should be part of validation + if(u.isPresent()){ + usersInTxn.add(u.get()); + }else{ + System.err.println("User in Transaction not present in user Registory: "+ Arrays.toString(inputArr)); + //return; + } + } + String splitType = inputArr[4+noOfPeopleinTxn]; + + List args = new ArrayList<>(); + for(int i = 5+noOfPeopleinTxn;i u = SplitwiseDriver.getUserRegistry().searchUserFromRegistry(inputArr[1]); + User paidByUser = u.get(); + ExpenseTransactionInfo expTxn = new ExpenseTransactionInfo(amount,noOfPeopleinTxn,usersInTxn,paidByUser,args); + return expTxn; + } + + @Override + public boolean validateInput(String[] inputArr) { + int size = inputArr.length; + try { + int amount = Integer.parseInt(inputArr[2]); + int noOfPeopleinTxn = Integer.parseInt(inputArr[3]); + int index = 3 +noOfPeopleinTxn+1; + String splitType = inputArr[index]; + if(splitType.equalsIgnoreCase("EXACT") || splitType.equalsIgnoreCase("PERCENT")){ + if(size-1- index != noOfPeopleinTxn){ + System.err.println("Not valid Transaction: "+ Arrays.toString(inputArr)); + return false; + } + else + return true; + }else if(splitType.equalsIgnoreCase("EQUAL") && index == size-1){ + return true; + }else{ + System.err.println("Not valid amount in Transaction: "+ Arrays.toString(inputArr)); + return false; + } + }catch (NumberFormatException e){ + System.err.println("Not valid integer input in Transaction: "+ Arrays.toString(inputArr)); + return false; + } + } +} diff --git a/src/main/java/com/splitwise/transactionFactory/Transaction.java b/src/main/java/com/splitwise/transactionFactory/Transaction.java new file mode 100644 index 0000000..c50b7ef --- /dev/null +++ b/src/main/java/com/splitwise/transactionFactory/Transaction.java @@ -0,0 +1,7 @@ +package com.splitwise.transactionFactory; + +public interface Transaction { + + public void processTransaction(String [] inputArr); + public boolean validateInput(String[] inputArr); +} From 75a8e2ef5577d1d9ee2e144ed7e603bf99578196 Mon Sep 17 00:00:00 2001 From: Parul Setia Date: Mon, 8 Jun 2020 21:23:19 +0530 Subject: [PATCH 3/5] Update README.md --- README.md | 37 +++++++++++++++++++++++++++++++++++-- 1 file changed, 35 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index b58f156..b201cd9 100755 --- a/README.md +++ b/README.md @@ -1,7 +1,40 @@ # **High Level Design for SplitWise** -Functional Requirements +## Functional Requirements +~ Users Can be sign up/ sign in to your system +~ Users can add thier contacts in the system by email or phone +~ Users can add Expense in the System with multiple contacts +~ Users can create groups and can add group expense with the group members +~ System has to show balance report of all users +~ System can show balance report of particular User +~ System can show balance report of all and particular group -Non Functional Requirements +## Non Functional Requirements +~The system should be highly available.Because if the service is down , no user will be able to access it. + +## Extended Requirements +~System can simplyfy debts +~System can show passbook to user.The entries should show all the transactions a user was part of + +## Capacity Estimation +Read will be more than writes in this system.Lets assume if each user has 20 contacts . So read vs write ratio will be 20:1. +## Traffic estimates +Lets assume we have 20M new users per month with 20:1 read and write then we can expect 20*20M =>400M read +### Queries per Second (QPS) will be 20M / (30 days * 24 hours * 3600 sec) ~= 7.71 write/sec +### Consedering 20:1 read to write request 20 * 7.71 ~= 154.2 read/sec +## Storage Estimates +Lets assume we are saving the expense over the year of 5 years then 20M write request every month, total number of obects we +expect to store will be : 20M * 5years * 30 months ~= 3Billion +if each object stored take 500 Byte . Total storage we need is ~= 3B * 500 ~= 1.5TB + +## BandWidth estimates +For Write Request +Since there are 7.7 write request every sec , so total incoming data for our service will be : 7.7 * 500Bytes =~ 3.75 Kb/sec +For Read Request +Since there are 154.2 read request every sec , so total outgoing data for our service will be : 154.2 * 500Bytes =~ 75.29 Kb/sec + +## Basic System Design + +file:///home/ins581/Downloads/SplitWise_HLD.png # mock-machine-coding-2 Welcome to the 2nd Mock Machine Coding Round by [workat.tech](http://workat.tech). From e074b73d726b490e06d81304b1d4f260d5b20f18 Mon Sep 17 00:00:00 2001 From: Parul Setia Date: Mon, 8 Jun 2020 21:31:44 +0530 Subject: [PATCH 4/5] Update README.md --- README.md | 64 ++++++++++++++++++++++++++++--------------------------- 1 file changed, 33 insertions(+), 31 deletions(-) diff --git a/README.md b/README.md index b201cd9..3890d06 100755 --- a/README.md +++ b/README.md @@ -1,40 +1,42 @@ # **High Level Design for SplitWise** ## Functional Requirements -~ Users Can be sign up/ sign in to your system -~ Users can add thier contacts in the system by email or phone -~ Users can add Expense in the System with multiple contacts -~ Users can create groups and can add group expense with the group members -~ System has to show balance report of all users -~ System can show balance report of particular User -~ System can show balance report of all and particular group +~ Users Can be sign up/ sign in to your system
+~ Users can add thier contacts in the system by email or phone
+~ Users can add Expense in the System with multiple contacts
+~ Users can create groups and can add group expense with the group members
+~ System has to show balance report of all users
+~ System can show balance report of particular User
+~ System can show balance report of all and particular group
-## Non Functional Requirements -~The system should be highly available.Because if the service is down , no user will be able to access it. +## Non Functional Requirements
+~The system should be highly available.Because if the service is down , no user will be able to access it.
-## Extended Requirements -~System can simplyfy debts -~System can show passbook to user.The entries should show all the transactions a user was part of +## Extended Requirements
+~System can simplyfy debts
+~System can show passbook to user.The entries should show all the transactions a user was part of
## Capacity Estimation -Read will be more than writes in this system.Lets assume if each user has 20 contacts . So read vs write ratio will be 20:1. -## Traffic estimates -Lets assume we have 20M new users per month with 20:1 read and write then we can expect 20*20M =>400M read -### Queries per Second (QPS) will be 20M / (30 days * 24 hours * 3600 sec) ~= 7.71 write/sec -### Consedering 20:1 read to write request 20 * 7.71 ~= 154.2 read/sec -## Storage Estimates -Lets assume we are saving the expense over the year of 5 years then 20M write request every month, total number of obects we -expect to store will be : 20M * 5years * 30 months ~= 3Billion -if each object stored take 500 Byte . Total storage we need is ~= 3B * 500 ~= 1.5TB - -## BandWidth estimates -For Write Request -Since there are 7.7 write request every sec , so total incoming data for our service will be : 7.7 * 500Bytes =~ 3.75 Kb/sec -For Read Request -Since there are 154.2 read request every sec , so total outgoing data for our service will be : 154.2 * 500Bytes =~ 75.29 Kb/sec - -## Basic System Design - -file:///home/ins581/Downloads/SplitWise_HLD.png +Read will be more than writes in this system.Lets assume if each user has 20 contacts . So read vs write ratio will be 20:1.
+## Traffic estimates
+Lets assume we have 20M new users per month with 20:1 read and write then we can expect 20*20M =>400M read
+### Queries per Second (QPS) will be 20M / (30 days * 24 hours * 3600 sec) ~= 7.71 write/sec
+### Consedering 20:1 read to write request 20 * 7.71 ~= 154.2 read/sec
+ +## Storage Estimates
+Lets assume we are saving the expense over the year of 5 years then 20M write request every month, total number of obects we
+expect to store will be : 20M * 5years * 30 months ~= 3Billion
+if each object stored take 500 Byte . Total storage we need is ~= 3B * 500 ~= 1.5TB
+ +## BandWidth estimates
+For Write Request
+Since there are 7.7 write request every sec , so total incoming data for our service will be : 7.7 * 500Bytes =~ 3.75 Kb/sec
+For Read Request
+Since there are 154.2 read request every sec , so total outgoing data for our service will be : 154.2 * 500Bytes =~ 75.29 Kb/sec
+ +## Basic System Design
+ +![SplitWise_HLD](https://user-images.githubusercontent.com/8611287/84053046-00810000-a9cf-11ea-8a05-3c6676b1373b.png) + # mock-machine-coding-2 Welcome to the 2nd Mock Machine Coding Round by [workat.tech](http://workat.tech). From 0792ac8aae18cf2eb34e5f64fc15a96391e79546 Mon Sep 17 00:00:00 2001 From: Parul Setia Date: Mon, 8 Jun 2020 21:32:49 +0530 Subject: [PATCH 5/5] Update README.md --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 3890d06..fb76197 100755 --- a/README.md +++ b/README.md @@ -19,8 +19,8 @@ Read will be more than writes in this system.Lets assume if each user has 20 contacts . So read vs write ratio will be 20:1.
## Traffic estimates
Lets assume we have 20M new users per month with 20:1 read and write then we can expect 20*20M =>400M read
-### Queries per Second (QPS) will be 20M / (30 days * 24 hours * 3600 sec) ~= 7.71 write/sec
-### Consedering 20:1 read to write request 20 * 7.71 ~= 154.2 read/sec
+#### Queries per Second (QPS) will be 20M / (30 days * 24 hours * 3600 sec) ~= 7.71 write/sec
+#### Consedering 20:1 read to write request 20 * 7.71 ~= 154.2 read/sec
## Storage Estimates
Lets assume we are saving the expense over the year of 5 years then 20M write request every month, total number of obects we