Skip to content

Commit

Permalink
Merge 8e09ace into b066cc2
Browse files Browse the repository at this point in the history
  • Loading branch information
muhammadaljunied committed Nov 11, 2019
2 parents b066cc2 + 8e09ace commit 1fc7f9b
Show file tree
Hide file tree
Showing 55 changed files with 239 additions and 180 deletions.
91 changes: 53 additions & 38 deletions docs/diagrams/ModelClassDiagram.puml
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ skinparam classBackgroundColor MODEL_COLOR

Package Model <<Rectangle>>{
Interface ReadOnlyExpenseList <<Interface>>
Interface ReadOnlyBudgetList <<Interface>>
Interface Model <<Interface>>
Interface ObservableList <<Interface>>
Class ExpenseList
Expand All @@ -18,59 +19,73 @@ Class ModelManager
Class UserPrefs
Class ReadOnlyUserPrefs

Package Expense {
Class Expense
Class Amount
Class Date
Package Commons {
Class Name
Class Amount
Class Currency
Class Date
Class Tag
}

Package Expense {
Class Expense
Class UniqueExpenseList
}

Package Budget {
Class Budget
Class Amount
Class Date
Class Name
Class UniqueBudgetList
}

Package Tag {
Class Tag
Package ExchangeData {
Class ExchangeData
Class ExchangeDataSingleton
Class Rates
}

Package AutoComplete {
Class AutoCompleteModel
Class Word
}

Class HiddenOutside #FFFFFF
HiddenOutside ..> Model
Budget *-down-> "1" Name
Budget *-down-> "2" Amount
Budget *-down-> "1" Currency
Budget *-down-> "2" Date
Budget *-down-> "1" ExpenseList

ExpenseList .up.|> ReadOnlyExpenseList
BudgetList .up.|> ReadOnlyBudgetList
ExchangeDataSingleton o-left->"1" ExchangeData
ExchangeData o-down-> "1" Rates

ModelManager .up.|> Model
Model .right.> ObservableList
ModelManager o--> "1" ExpenseList
ModelManager o--> "1" BudgetList
ModelManager o-left-> "1" UserPrefs
UserPrefs .up.|> ReadOnlyUserPrefs
AutoCompleteModel o-right->"*" Word

ExpenseList .left.|> ReadOnlyExpenseList
ExpenseList *--> "1" UniqueExpenseList
UniqueExpenseList o--> "*" Expense
Expense *--> "1" Name
Expense *--> "1" Amount
Expense *--> "1" Date
Expense *--> "1" Tag
Expense *--> "1" Currency

BudgetList *--> "1" UniqueBudgetList
UniqueBudgetList o--> "*" Budget
Budget *--> "1" Name
Budget *--> "1" Amount
Budget *--> "1" Date
Budget *--> "1" Currency
Budget *--> "1" ExpenseList

Name -[hidden]right-> Amount
Amount -[hidden]right-> Date

ModelManager -->"1" Expense : filtered list


BudgetList .left.|> ReadOnlyBudgetList
BudgetList *-right-> "1" UniqueBudgetList

UniqueBudgetList o-right-> "*" Budget

ModelManager o-down-> "1" BudgetList
ModelManager o-down-> "1" ExpenseList
ModelManager .left.|> Model
ModelManager o-right-> "1" UserPrefs
ModelManager o-down-> "1" ExchangeData


Model .left.> ObservableList

UserPrefs .right.|> ReadOnlyUserPrefs

UniqueExpenseList o-right-> "*" Expense
Expense *-up-> "1 " Name
Expense *-up-> "1 " Amount
Expense *-up-> "1 " Currency
Expense *-up-> "1 " Date
Expense *-up-> "1 " Tag

ModelManager -down->"1" Expense : filtered list
ModelManager -down->"1" Budget : filtered list
@enduml
11 changes: 10 additions & 1 deletion docs/diagrams/StorageClassDiagram.puml
Original file line number Diff line number Diff line change
Expand Up @@ -8,27 +8,36 @@ Interface Storage <<Interface>>
Interface UserPrefsStorage <<Interface>>
Interface ExpenseListStorage <<Interface>>
Interface BudgetListStorage <<Interface>>
Interface ExchangeDataStorage <<Interface>>

Class StorageManager
Class JsonUserPrefsStorage
Class JsonExpenseListStorage
Class JsonBudgetListStorage
Class JsonExchangeDataStorage


StorageManager .left.|> Storage
StorageManager o-right-> UserPrefsStorage
StorageManager o--> ExpenseListStorage
StorageManager o----> BudgetListStorage
StorageManager o------> ExchangeDataStorage


JsonUserPrefsStorage .left.|> UserPrefsStorage
JsonExpenseListStorage .left.|> ExpenseListStorage
JsonBudgetListStorage .left.|> BudgetListStorage
JsonExchangeDataStorage .left.|> ExchangeDataStorage

JsonExpenseListStorage .down.> JsonSerializableExpenseList
JsonSerializableExpenseList .right.> JsonAdaptedExpense
JsonAdaptedExpense .right.> JsonAdaptedTag
JsonAdaptedExpense .right.> JsonAdaptedCurrency
JsonExchangeDataStorage .right.> JsonAdaptedExchangeData
JsonAdaptedExchangeData .right.> JsonAdaptedRates

JsonBudgetListStorage .down.> JsonSerializableBudgetList
JsonSerializableBudgetList .right.> JsonAdaptedBudget
JsonAdaptedBudget .right.> JsonSerializableExpenseList


@enduml
Binary file modified docs/images/ModelClassDiagram.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified docs/images/StorageClassDiagram.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/images/plantuml/ModelClassDiagram.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
12 changes: 11 additions & 1 deletion src/main/java/seedu/address/MainApp.java
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
package seedu.address;

import static seedu.address.model.expense.Currency.DEFAULT_BASE_CURRENCY;
import static seedu.address.model.commons.Currency.DEFAULT_BASE_CURRENCY;

import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.util.Optional;
import java.util.concurrent.ExecutionException;
Expand Down Expand Up @@ -81,6 +82,7 @@ public void init() throws Exception {
ui = new UiManager(logic);
}


/**
* Returns a {@code ModelManager} with the data from {@code storage}'s expense list and {@code userPrefs}. <br>
* The data from the sample expense list will be used instead if {@code storage}'s expense list is not found,
Expand All @@ -95,6 +97,14 @@ private Model initModelManager(Storage storage, ReadOnlyUserPrefs userPrefs) {
ReadOnlyBudgetList initialBudgets;

try {
//Ensure data folder exists
if (!Files.exists(Path.of("data"))) {
try {
Files.createDirectory(Path.of("data"));
} catch (IOException e) {
e.printStackTrace();
}
}
// Download updated data
try {
HttpsClientUtil.getLatestExchangeData(DEFAULT_BASE_CURRENCY);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,6 @@ public HttpsClientUtil() {
}

public static boolean getLatestExchangeData(String base) throws ExecutionException, InterruptedException {

// Build request
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("https://api.exchangeratesapi.io/latest?base=" + base))
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,9 +17,9 @@
import seedu.address.model.Model;
import seedu.address.model.ViewState;
import seedu.address.model.budget.Budget;
import seedu.address.model.expense.Amount;
import seedu.address.model.expense.Currency;
import seedu.address.model.expense.Name;
import seedu.address.model.commons.Amount;
import seedu.address.model.commons.Currency;
import seedu.address.model.commons.Name;

/**
* Edits the details of an existing budget in the budget list.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,12 +18,12 @@
import seedu.address.model.Model;
import seedu.address.model.ViewState;
import seedu.address.model.budget.Budget;
import seedu.address.model.expense.Amount;
import seedu.address.model.expense.Currency;
import seedu.address.model.expense.Date;
import seedu.address.model.commons.Amount;
import seedu.address.model.commons.Currency;
import seedu.address.model.commons.Date;
import seedu.address.model.commons.Name;
import seedu.address.model.commons.Tag;
import seedu.address.model.expense.Expense;
import seedu.address.model.expense.Name;
import seedu.address.model.tag.Tag;

/**
* Edits the details of an existing expense in the expense list.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
import seedu.address.commons.core.Messages;
import seedu.address.logic.CommandHistory;
import seedu.address.model.Model;
import seedu.address.model.expense.NameContainsKeywordsPredicate;
import seedu.address.model.commons.NameContainsKeywordsPredicate;

/**
* Finds and lists all expenses in expense list whose name contains any of the argument keywords.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,10 +13,10 @@
import seedu.address.logic.parser.exceptions.ParseException;
import seedu.address.model.ExpenseList;
import seedu.address.model.budget.Budget;
import seedu.address.model.expense.Amount;
import seedu.address.model.expense.Currency;
import seedu.address.model.expense.Date;
import seedu.address.model.expense.Name;
import seedu.address.model.commons.Amount;
import seedu.address.model.commons.Currency;
import seedu.address.model.commons.Date;
import seedu.address.model.commons.Name;

/**
* Parses input arguments and creates a new AddBudgetCommand object
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,12 +11,12 @@

import seedu.address.logic.commands.AddExpenseCommand;
import seedu.address.logic.parser.exceptions.ParseException;
import seedu.address.model.expense.Amount;
import seedu.address.model.expense.Currency;
import seedu.address.model.expense.Date;
import seedu.address.model.commons.Amount;
import seedu.address.model.commons.Currency;
import seedu.address.model.commons.Date;
import seedu.address.model.commons.Name;
import seedu.address.model.commons.Tag;
import seedu.address.model.expense.Expense;
import seedu.address.model.expense.Name;
import seedu.address.model.tag.Tag;

/**
* Parses input arguments and creates a new AddExpenseCommand object
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@

import seedu.address.logic.commands.FindCommand;
import seedu.address.logic.parser.exceptions.ParseException;
import seedu.address.model.expense.NameContainsKeywordsPredicate;
import seedu.address.model.commons.NameContainsKeywordsPredicate;

/**
* Parses input arguments and creates a new FindCommand object
Expand Down
10 changes: 5 additions & 5 deletions src/main/java/seedu/address/logic/parser/ParserUtil.java
Original file line number Diff line number Diff line change
Expand Up @@ -13,12 +13,12 @@
import seedu.address.commons.core.index.Index;
import seedu.address.commons.util.StringUtil;
import seedu.address.logic.parser.exceptions.ParseException;
import seedu.address.model.commons.Amount;
import seedu.address.model.commons.Currency;
import seedu.address.model.commons.Date;
import seedu.address.model.commons.Name;
import seedu.address.model.commons.Tag;
import seedu.address.model.exchangedata.ExchangeDataSingleton;
import seedu.address.model.expense.Amount;
import seedu.address.model.expense.Currency;
import seedu.address.model.expense.Date;
import seedu.address.model.expense.Name;
import seedu.address.model.tag.Tag;

/**
* Contains utility methods used for parsing strings in the various *Parser classes.
Expand Down
10 changes: 5 additions & 5 deletions src/main/java/seedu/address/model/budget/Budget.java
Original file line number Diff line number Diff line change
Expand Up @@ -7,12 +7,12 @@
import javafx.collections.ObservableList;
import seedu.address.model.ExpenseList;
import seedu.address.model.ReadOnlyExpenseList;
import seedu.address.model.commons.Amount;
import seedu.address.model.commons.Currency;
import seedu.address.model.commons.Date;
import seedu.address.model.commons.Name;
import seedu.address.model.exchangedata.ExchangeDataSingleton;
import seedu.address.model.expense.Amount;
import seedu.address.model.expense.Currency;
import seedu.address.model.expense.Date;
import seedu.address.model.expense.Expense;
import seedu.address.model.expense.Name;

/**
* Represents an expense in the expense list.
Expand Down Expand Up @@ -141,7 +141,7 @@ public boolean doesOtherBudgetOverlap(Budget otherBudget) {
public void recalculateAmountLeft() {
double amountLeft = this.amount.getValue();
for (Expense expense : expenseList.getExpenseList()) {
amountLeft -= expense.getConvertedAmount(currency).getValue();
amountLeft -= expense.getConvertedAmount(currency);
}
if (amountLeft <= 0.0) {
this.amountLeft = new Amount(String.format("%.2f", 0 - amountLeft));
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package seedu.address.model.expense;
package seedu.address.model.commons;

import static java.util.Objects.requireNonNull;
import static seedu.address.commons.util.AppUtil.checkArgument;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package seedu.address.model.expense;
package seedu.address.model.commons;

import static java.util.Objects.requireNonNull;
import static seedu.address.commons.util.AppUtil.checkArgument;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package seedu.address.model.expense;
package seedu.address.model.commons;

import static java.util.Objects.requireNonNull;
import static seedu.address.commons.util.AppUtil.checkArgument;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package seedu.address.model.expense;
package seedu.address.model.commons;

import static java.util.Objects.requireNonNull;
import static seedu.address.commons.util.AppUtil.checkArgument;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
package seedu.address.model.expense;
package seedu.address.model.commons;

import java.util.List;
import java.util.function.Predicate;

import seedu.address.commons.util.StringUtil;
import seedu.address.model.expense.Expense;

/**
* Tests that a {@code Expense}'s {@code Name} matches any of the keywords given.
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package seedu.address.model.tag;
package seedu.address.model.commons;

import static java.util.Objects.requireNonNull;
import static seedu.address.commons.util.AppUtil.checkArgument;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,8 @@
import java.time.format.DateTimeFormatter;
import java.util.Objects;

import seedu.address.model.expense.Currency;
import seedu.address.model.expense.Date;
import seedu.address.model.rates.Rates;
import seedu.address.model.commons.Currency;
import seedu.address.model.commons.Date;


/**
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package seedu.address.model.rates;
package seedu.address.model.exchangedata;

import static seedu.address.commons.util.CollectionUtil.requireAllNonNull;

Expand Down
Loading

0 comments on commit 1fc7f9b

Please sign in to comment.