From 3e56fab4f4d7663bd500b5047718603015e93191 Mon Sep 17 00:00:00 2001 From: Alvin Tan De Jun Date: Thu, 1 Oct 2020 16:15:28 +0800 Subject: [PATCH 001/136] Set theme jekyll-theme-slate --- docs/_config.yml | 1 + 1 file changed, 1 insertion(+) create mode 100644 docs/_config.yml diff --git a/docs/_config.yml b/docs/_config.yml new file mode 100644 index 0000000000..c741881743 --- /dev/null +++ b/docs/_config.yml @@ -0,0 +1 @@ +theme: jekyll-theme-slate \ No newline at end of file From 3e38f8465261c456016fcb69f6f36c7bb9d27988 Mon Sep 17 00:00:00 2001 From: yokemin Date: Thu, 1 Oct 2020 16:43:08 +0800 Subject: [PATCH 002/136] Update AboutUs.md --- docs/AboutUs.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/AboutUs.md b/docs/AboutUs.md index 0f072953ea..22bd15fb52 100644 --- a/docs/AboutUs.md +++ b/docs/AboutUs.md @@ -3,7 +3,7 @@ Display | Name | Github Profile | Portfolio --------|:----:|:--------------:|:---------: ![](https://via.placeholder.com/100.png?text=Photo) | John Doe | [Github](https://github.com/) | [Portfolio](docs/team/johndoe.md) -![](https://via.placeholder.com/100.png?text=Photo) | Don Joe | [Github](https://github.com/) | [Portfolio](docs/team/johndoe.md) +![](https://via.placeholder.com/100.png?text=Photo) | Yoke Min | [Github](https://github.com/yokemin) | [Portfolio](docs/team/yokemin.md) ![](https://via.placeholder.com/100.png?text=Photo) | Ron John | [Github](https://github.com/) | [Portfolio](docs/team/johndoe.md) ![](https://via.placeholder.com/100.png?text=Photo) | John Roe | [Github](https://github.com/) | [Portfolio](docs/team/johndoe.md) ![](https://via.placeholder.com/100.png?text=Photo) | Don Roe | [Github](https://github.com/) | [Portfolio](docs/team/johndoe.md) From a8c55bd80e849f4971eb300ea6e23a9b1862513c Mon Sep 17 00:00:00 2001 From: yokemin Date: Mon, 12 Oct 2020 21:32:52 +0800 Subject: [PATCH 003/136] Add barebones code and start on api --- src/main/java/seedu/duke/Duke.java | 72 +++++++++++-- src/main/java/seedu/duke/api/Api.java | 101 ++++++++++++++++++ .../seedu/duke/api/FullResponseBuilder.java | 39 +++++++ .../java/seedu/duke/command/ByeCommand.java | 12 +++ src/main/java/seedu/duke/command/Command.java | 12 +++ .../seedu/duke/command/SearchCommand.java | 15 +++ src/main/java/seedu/duke/data/Stock.java | 76 +++++++++++++ src/main/java/seedu/duke/data/StockList.java | 13 +++ .../duke/data/exception/DukeException.java | 10 ++ src/main/java/seedu/duke/parser/Parser.java | 31 ++++++ src/main/java/seedu/duke/storage/Storage.java | 4 + src/main/java/seedu/duke/ui/Ui.java | 37 +++++++ 12 files changed, 411 insertions(+), 11 deletions(-) create mode 100644 src/main/java/seedu/duke/api/Api.java create mode 100644 src/main/java/seedu/duke/api/FullResponseBuilder.java create mode 100644 src/main/java/seedu/duke/command/ByeCommand.java create mode 100644 src/main/java/seedu/duke/command/Command.java create mode 100644 src/main/java/seedu/duke/command/SearchCommand.java create mode 100644 src/main/java/seedu/duke/data/Stock.java create mode 100644 src/main/java/seedu/duke/data/StockList.java create mode 100644 src/main/java/seedu/duke/data/exception/DukeException.java create mode 100644 src/main/java/seedu/duke/parser/Parser.java create mode 100644 src/main/java/seedu/duke/storage/Storage.java create mode 100644 src/main/java/seedu/duke/ui/Ui.java diff --git a/src/main/java/seedu/duke/Duke.java b/src/main/java/seedu/duke/Duke.java index 5c74e68d59..0ead5fe41b 100644 --- a/src/main/java/seedu/duke/Duke.java +++ b/src/main/java/seedu/duke/Duke.java @@ -1,21 +1,71 @@ package seedu.duke; -import java.util.Scanner; +import seedu.duke.api.Api; +import seedu.duke.command.Command; +import seedu.duke.data.StockList; +import seedu.duke.data.exception.DukeException; +import seedu.duke.parser.Parser; +import seedu.duke.ui.Ui; + +import java.io.IOException; +import java.util.concurrent.TimeUnit; + public class Duke { + + public final Ui ui; +// private final Storage storage; + private StockList stocks; + + public Duke() { + ui = new Ui(); + ui.greetUser(); +// storage = new Storage(filePath); +// try { +// stocks = new StockList(storage.load()); +// stocks.viewPortfolio(); +// } catch (DukeException e) { +// ui.showLoadingError(e.getMessage()); +// stocks = new StockList(); +// } + stocks = new StockList(); + } + + /** + * Runs Duke program + */ + public void run() { + boolean isBye = false; + while (!isBye) { + try { + String userInput = Ui.getUserInput(); + Command command = Parser.parseCommand(userInput); + command.executeCommand(userInput, stocks); + isBye = ui.sayBye(userInput); + TimeUnit.SECONDS.sleep(1); + System.out.println("================================================"); + } catch (DukeException | InterruptedException e) { + ui.showErrorMessage(e.getMessage()); + System.out.println("================================================"); + } + } + } + /** * Main entry-point for the java.duke.Duke application. */ public static void main(String[] args) { - String logo = " ____ _ \n" - + "| _ \\ _ _| | _____ \n" - + "| | | | | | | |/ / _ \\\n" - + "| |_| | |_| | < __/\n" - + "|____/ \\__,_|_|\\_\\___|\n"; - System.out.println("Hello from\n" + logo); - System.out.println("What is your name?"); - - Scanner in = new Scanner(System.in); - System.out.println("Hello " + in.nextLine()); + + final Api api; + try { + api = new Api(); + } catch (IOException e) { + e.printStackTrace(); + } +// new Duke().run(); + + } + + } diff --git a/src/main/java/seedu/duke/api/Api.java b/src/main/java/seedu/duke/api/Api.java new file mode 100644 index 0000000000..84a0695b0f --- /dev/null +++ b/src/main/java/seedu/duke/api/Api.java @@ -0,0 +1,101 @@ +package seedu.duke.api; + + +import java.io.*; +import java.net.*; +import java.util.HashMap; +import java.util.Map; + +public class Api { + + private static final String API_KEY = "O8EVQ7YSWDW08BN9"; + + public Api() throws IOException { +// URL url = new URL("https://www.alphavantage.co/query?"); +// URLConnection con = url.openConnection(); +// HttpURLConnection http = (HttpURLConnection)con; +// http.setRequestMethod("POST"); +// http.setDoOutput(true); + + // Creating a Request + URL url = new URL("https://www.alphavantage.co/query?"); + URLConnection con = url.openConnection(); + HttpURLConnection http = (HttpURLConnection)con; + http.setRequestMethod("GET"); + + // Set doOutput property to true so that we can add parameters to a request + http.setDoOutput(true); + + // Adding Request Parameters + Map parameters = new HashMap<>(); + parameters.put("function", "TIME_SERIES_DAILY_ADJUSTED"); + parameters.put("symbol", "IBM"); + + DataOutputStream out = new DataOutputStream(http.getOutputStream()); + out.writeBytes(buildParamsString(parameters)); + out.flush(); + out.close(); + + // Reading response + int status = http.getResponseCode(); + BufferedReader in = new BufferedReader( + new InputStreamReader(con.getInputStream())); + String inputLine; + StringBuffer content = new StringBuffer(); + while ((inputLine = in.readLine()) != null) { + content.append(inputLine); + } + in.close(); + + // Close the connection + http.disconnect(); + + // Reading response on failed requests + Reader streamReader = null; + + if (status > 299) { + streamReader = new InputStreamReader(http.getErrorStream()); + } else { + streamReader = new InputStreamReader(http.getInputStream()); + } + + System.out.println(FullResponseBuilder.getFullResponse(http)); + + } + + //To facilitate the transformation of the parameter Map, we create a method, buildParamsString(), that transforms a Map into a String of the required format + public static String buildParamsString(Map params) + throws UnsupportedEncodingException { + StringBuilder result = new StringBuilder(); + + for (Map.Entry entry : params.entrySet()) { + result.append(URLEncoder.encode(entry.getKey(), "UTF-8")); + result.append("="); + result.append(URLEncoder.encode(entry.getValue(), "UTF-8")); + result.append("&"); + } + + result.append("&apikey=" + API_KEY); + + String resultString = result.toString(); + return resultString.length() > 0 + ? resultString.substring(0, resultString.length() - 1) + : resultString; + } + + +// public static void getData(QuoteResponse response){ +// System.out.println("Symbol: " + response.getSymbol()); +// System.out.println("High: " + response.getHigh()); +// System.out.println("Low: " + response.getLow()); +// System.out.println("Open: " + response.getOpen()); +// System.out.println("Price: " + response.getPrice()); +// System.out.println("Volume: " + response.getVolume()); +// System.out.println("Latest Trading Day: " + response.getLatestTradingDay()); +// System.out.println("Previous Close: " + response.getPreviousClose()); +// System.out.println("Change: " + response.getChange()); +// System.out.println("Change Percent: " + response.getChangePercent()); +// } + + +} diff --git a/src/main/java/seedu/duke/api/FullResponseBuilder.java b/src/main/java/seedu/duke/api/FullResponseBuilder.java new file mode 100644 index 0000000000..ff2f761051 --- /dev/null +++ b/src/main/java/seedu/duke/api/FullResponseBuilder.java @@ -0,0 +1,39 @@ +package seedu.duke.api; + +import java.io.IOException; +import java.net.HttpURLConnection; +import java.util.Iterator; +import java.util.List; + +public class FullResponseBuilder { + public static String getFullResponse(HttpURLConnection http) throws IOException { + StringBuilder fullResponseBuilder = new StringBuilder(); + + // read status and message + fullResponseBuilder.append(http.getResponseCode()) + .append(" ") + .append(http.getResponseMessage()) + .append("\n"); + + // read headers + http.getHeaderFields().entrySet().stream() + .filter(entry -> entry.getKey() != null) + .forEach(entry -> { + fullResponseBuilder.append(entry.getKey()).append(": "); + List headerValues = entry.getValue(); + Iterator it = headerValues.iterator(); + if (it.hasNext()) { + fullResponseBuilder.append(it.next()); + while (it.hasNext()) { + fullResponseBuilder.append(", ").append(it.next()); + } + } + fullResponseBuilder.append("\n"); + }); + + // read response content + + + return fullResponseBuilder.toString(); + } +} \ No newline at end of file diff --git a/src/main/java/seedu/duke/command/ByeCommand.java b/src/main/java/seedu/duke/command/ByeCommand.java new file mode 100644 index 0000000000..22d39804b8 --- /dev/null +++ b/src/main/java/seedu/duke/command/ByeCommand.java @@ -0,0 +1,12 @@ +package seedu.duke.command; + +import seedu.duke.data.StockList; +import seedu.duke.data.exception.DukeException; + +public class ByeCommand extends Command { + + @Override + public void executeCommand(String userInput, StockList stocks) throws DukeException { + + } +} diff --git a/src/main/java/seedu/duke/command/Command.java b/src/main/java/seedu/duke/command/Command.java new file mode 100644 index 0000000000..ec3724af2a --- /dev/null +++ b/src/main/java/seedu/duke/command/Command.java @@ -0,0 +1,12 @@ +package seedu.duke.command; + +import seedu.duke.data.StockList; +import seedu.duke.data.exception.DukeException; + +import java.nio.file.Path; + +public abstract class Command { + + public abstract void executeCommand(String userInput, StockList stocks) throws DukeException; + +} diff --git a/src/main/java/seedu/duke/command/SearchCommand.java b/src/main/java/seedu/duke/command/SearchCommand.java new file mode 100644 index 0000000000..b46cc7b766 --- /dev/null +++ b/src/main/java/seedu/duke/command/SearchCommand.java @@ -0,0 +1,15 @@ +package seedu.duke.command; + +import seedu.duke.api.Api; +import seedu.duke.data.StockList; +import seedu.duke.data.exception.DukeException; +import seedu.duke.parser.Parser; + +public class SearchCommand extends Command { + + @Override + public void executeCommand(String userInput, StockList stocks) throws DukeException { + String symbol = Parser.getSearch(userInput); +// Api.quoteStock(symbol); + } +} diff --git a/src/main/java/seedu/duke/data/Stock.java b/src/main/java/seedu/duke/data/Stock.java new file mode 100644 index 0000000000..9e46114c28 --- /dev/null +++ b/src/main/java/seedu/duke/data/Stock.java @@ -0,0 +1,76 @@ +package seedu.duke.data; + + +import java.util.Date; + +public class Stock { + private String symbol; + private double open; + private double high; + private double low; + private double price; + private double volume; + private Date latestTradingDay; + + public Stock() { + } + + // Getters + public String getSymbol() { + return symbol; + } + + public double getOpen() { + return open; + } + + public double getHigh() { + return high; + } + + public double getLow() { + return low; + } + + public double getPrice() { + return price; + } + + public double getVolume() { + return volume; + } + + public Date getLatestTradingDay() { + return latestTradingDay; + } + + // Setters + + public void setSymbol(String symbol) { + this.symbol = symbol; + } + + public void setOpen(double open) { + this.open = open; + } + + public void setHigh(double high) { + this.high = high; + } + + public void setLow(double low) { + this.low = low; + } + + public void setPrice(double price) { + this.price = price; + } + + public void setVolume(double volume) { + this.volume = volume; + } + + public void setLatestTradingDay(Date latestTradingDay) { + this.latestTradingDay = latestTradingDay; + } +} diff --git a/src/main/java/seedu/duke/data/StockList.java b/src/main/java/seedu/duke/data/StockList.java new file mode 100644 index 0000000000..c093ae2e3a --- /dev/null +++ b/src/main/java/seedu/duke/data/StockList.java @@ -0,0 +1,13 @@ +package seedu.duke.data; + +import java.util.ArrayList; + +public class StockList { + + private final ArrayList stocks; + + public StockList() { + this.stocks = new ArrayList<>(); + } + +} diff --git a/src/main/java/seedu/duke/data/exception/DukeException.java b/src/main/java/seedu/duke/data/exception/DukeException.java new file mode 100644 index 0000000000..37a8f28a59 --- /dev/null +++ b/src/main/java/seedu/duke/data/exception/DukeException.java @@ -0,0 +1,10 @@ +package seedu.duke.data.exception; + +public class DukeException extends Exception { + + public DukeException() {} + public DukeException(String errorMessage) { + super(errorMessage); + } + +} diff --git a/src/main/java/seedu/duke/parser/Parser.java b/src/main/java/seedu/duke/parser/Parser.java new file mode 100644 index 0000000000..12f1c4c489 --- /dev/null +++ b/src/main/java/seedu/duke/parser/Parser.java @@ -0,0 +1,31 @@ +package seedu.duke.parser; + +import seedu.duke.command.ByeCommand; +import seedu.duke.command.Command; +import seedu.duke.command.SearchCommand; +import seedu.duke.data.exception.DukeException; + +public class Parser { + + public static Command parseCommand(String userInput) throws DukeException { + Command command; + if (userInput.contains("search")) { + command = new SearchCommand(); + } else if (userInput.contains("bye")) { + command = new ByeCommand(); + } else { + throw new DukeException("Command does not exist! Try Again."); + } + return command; + } + + public static String getSearch(String userInput) throws DukeException { + String symbol; + try { + symbol = userInput.substring("search".length() + 1); + } catch (Exception e) { + throw new DukeException("Search input cannot be empty!"); + } + return symbol; + } +} diff --git a/src/main/java/seedu/duke/storage/Storage.java b/src/main/java/seedu/duke/storage/Storage.java new file mode 100644 index 0000000000..df0ce93b9b --- /dev/null +++ b/src/main/java/seedu/duke/storage/Storage.java @@ -0,0 +1,4 @@ +package seedu.duke.storage; + +public class Storage { +} diff --git a/src/main/java/seedu/duke/ui/Ui.java b/src/main/java/seedu/duke/ui/Ui.java new file mode 100644 index 0000000000..1cabffe82a --- /dev/null +++ b/src/main/java/seedu/duke/ui/Ui.java @@ -0,0 +1,37 @@ +package seedu.duke.ui; + +import java.util.Scanner; + +public class Ui { + + public static void greetUser() { + String logo = " ____ _ \n" + + "| _ \\ _ _| | _____ \n" + + "| | | | | | | |/ / _ \\\n" + + "| |_| | |_| | < __/\n" + + "|____/ \\__,_|_|\\_\\___|\n"; + System.out.println("Hello from\n" + logo); + System.out.println("What is your name?"); + + Scanner in = new Scanner(System.in); + System.out.println("Hello " + in.nextLine() + "!"); + } + + public static String getUserInput() { + System.out.println("What would you like to do?"); + Scanner scan = new Scanner(System.in); + String userInput = scan.nextLine(); + return userInput; + } + + public void showErrorMessage(String message) { + System.out.println(message); + } + + public boolean sayBye(String userInput) { + if (userInput.contains("bye")) { + return true; + } + return false; + } +} From f15d947bd5d3a4a27fd34cb1992d76757f29bef8 Mon Sep 17 00:00:00 2001 From: yokemin Date: Mon, 12 Oct 2020 23:52:05 +0800 Subject: [PATCH 004/136] Set up API to print json upon request --- src/main/java/seedu/duke/Duke.java | 1 + src/main/java/seedu/duke/api/Api.java | 75 +++++-------------- .../seedu/duke/api/FullResponseBuilder.java | 41 +++++----- 3 files changed, 37 insertions(+), 80 deletions(-) diff --git a/src/main/java/seedu/duke/Duke.java b/src/main/java/seedu/duke/Duke.java index 0ead5fe41b..29623bf7db 100644 --- a/src/main/java/seedu/duke/Duke.java +++ b/src/main/java/seedu/duke/Duke.java @@ -20,6 +20,7 @@ public class Duke { public Duke() { ui = new Ui(); ui.greetUser(); + // storage = new Storage(filePath); // try { // stocks = new StockList(storage.load()); diff --git a/src/main/java/seedu/duke/api/Api.java b/src/main/java/seedu/duke/api/Api.java index 84a0695b0f..2b939b976e 100644 --- a/src/main/java/seedu/duke/api/Api.java +++ b/src/main/java/seedu/duke/api/Api.java @@ -9,61 +9,35 @@ public class Api { private static final String API_KEY = "O8EVQ7YSWDW08BN9"; + public static final String SYMBOL = "IBM"; - public Api() throws IOException { -// URL url = new URL("https://www.alphavantage.co/query?"); -// URLConnection con = url.openConnection(); -// HttpURLConnection http = (HttpURLConnection)con; -// http.setRequestMethod("POST"); -// http.setDoOutput(true); - // Creating a Request - URL url = new URL("https://www.alphavantage.co/query?"); - URLConnection con = url.openConnection(); - HttpURLConnection http = (HttpURLConnection)con; - http.setRequestMethod("GET"); + public Api() throws IOException { - // Set doOutput property to true so that we can add parameters to a request - http.setDoOutput(true); + StringBuilder request = new StringBuilder(); + request.append("https://www.alphavantage.co/query?"); - // Adding Request Parameters Map parameters = new HashMap<>(); + parameters.put("symbol", SYMBOL); parameters.put("function", "TIME_SERIES_DAILY_ADJUSTED"); - parameters.put("symbol", "IBM"); - - DataOutputStream out = new DataOutputStream(http.getOutputStream()); - out.writeBytes(buildParamsString(parameters)); - out.flush(); - out.close(); - - // Reading response - int status = http.getResponseCode(); - BufferedReader in = new BufferedReader( - new InputStreamReader(con.getInputStream())); - String inputLine; - StringBuffer content = new StringBuffer(); - while ((inputLine = in.readLine()) != null) { - content.append(inputLine); - } - in.close(); - // Close the connection - http.disconnect(); + String paramsToAppend = buildParamsString(parameters); - // Reading response on failed requests - Reader streamReader = null; + request = request.append(paramsToAppend); - if (status > 299) { - streamReader = new InputStreamReader(http.getErrorStream()); - } else { - streamReader = new InputStreamReader(http.getInputStream()); - } + // Creating a Request + URL url = new URL(request.toString()); + URLConnection con = url.openConnection(); + HttpURLConnection http = (HttpURLConnection)con; + http.setRequestMethod("GET"); - System.out.println(FullResponseBuilder.getFullResponse(http)); + // Prints response from API call + String response = FullResponseBuilder.getFullResponse(http); + System.out.println(response); } - //To facilitate the transformation of the parameter Map, we create a method, buildParamsString(), that transforms a Map into a String of the required format + // Builds a string to append relevant the params to append to URL public static String buildParamsString(Map params) throws UnsupportedEncodingException { StringBuilder result = new StringBuilder(); @@ -75,7 +49,7 @@ public static String buildParamsString(Map params) result.append("&"); } - result.append("&apikey=" + API_KEY); + result.append("apikey=" + API_KEY); String resultString = result.toString(); return resultString.length() > 0 @@ -83,19 +57,4 @@ public static String buildParamsString(Map params) : resultString; } - -// public static void getData(QuoteResponse response){ -// System.out.println("Symbol: " + response.getSymbol()); -// System.out.println("High: " + response.getHigh()); -// System.out.println("Low: " + response.getLow()); -// System.out.println("Open: " + response.getOpen()); -// System.out.println("Price: " + response.getPrice()); -// System.out.println("Volume: " + response.getVolume()); -// System.out.println("Latest Trading Day: " + response.getLatestTradingDay()); -// System.out.println("Previous Close: " + response.getPreviousClose()); -// System.out.println("Change: " + response.getChange()); -// System.out.println("Change Percent: " + response.getChangePercent()); -// } - - } diff --git a/src/main/java/seedu/duke/api/FullResponseBuilder.java b/src/main/java/seedu/duke/api/FullResponseBuilder.java index ff2f761051..4050aa62b7 100644 --- a/src/main/java/seedu/duke/api/FullResponseBuilder.java +++ b/src/main/java/seedu/duke/api/FullResponseBuilder.java @@ -1,38 +1,35 @@ package seedu.duke.api; +import java.io.BufferedReader; import java.io.IOException; +import java.io.InputStreamReader; +import java.io.Reader; import java.net.HttpURLConnection; import java.util.Iterator; import java.util.List; public class FullResponseBuilder { - public static String getFullResponse(HttpURLConnection http) throws IOException { + public static String getFullResponse(HttpURLConnection con) throws IOException { StringBuilder fullResponseBuilder = new StringBuilder(); - // read status and message - fullResponseBuilder.append(http.getResponseCode()) - .append(" ") - .append(http.getResponseMessage()) - .append("\n"); + Reader streamReader = null; + if (con.getResponseCode() > 299) { + streamReader = new InputStreamReader(con.getErrorStream()); + } else { + streamReader = new InputStreamReader(con.getInputStream(), "utf-8"); + } - // read headers - http.getHeaderFields().entrySet().stream() - .filter(entry -> entry.getKey() != null) - .forEach(entry -> { - fullResponseBuilder.append(entry.getKey()).append(": "); - List headerValues = entry.getValue(); - Iterator it = headerValues.iterator(); - if (it.hasNext()) { - fullResponseBuilder.append(it.next()); - while (it.hasNext()) { - fullResponseBuilder.append(", ").append(it.next()); - } - } - fullResponseBuilder.append("\n"); - }); + BufferedReader br = new BufferedReader(streamReader); + String responseLine = null; + StringBuilder content = new StringBuilder(); + while ((responseLine = br.readLine()) != null) { + content.append(responseLine); + } - // read response content + br.close(); + fullResponseBuilder.append("Response: ") + .append(content); return fullResponseBuilder.toString(); } From d73093485c857085397b4b20546bcbd821359111 Mon Sep 17 00:00:00 2001 From: yokemin Date: Tue, 13 Oct 2020 00:15:55 +0800 Subject: [PATCH 005/136] Edit code to follow coding standards --- src/main/java/seedu/duke/Duke.java | 21 ++++++++++--------- src/main/java/seedu/duke/api/Api.java | 8 +++++-- .../seedu/duke/api/FullResponseBuilder.java | 5 ++--- .../seedu/duke/command/SearchCommand.java | 2 +- .../duke/data/exception/DukeException.java | 1 - 5 files changed, 20 insertions(+), 17 deletions(-) diff --git a/src/main/java/seedu/duke/Duke.java b/src/main/java/seedu/duke/Duke.java index 29623bf7db..9c385372f7 100644 --- a/src/main/java/seedu/duke/Duke.java +++ b/src/main/java/seedu/duke/Duke.java @@ -14,21 +14,22 @@ public class Duke { public final Ui ui; -// private final Storage storage; + // private final Storage storage; private StockList stocks; public Duke() { ui = new Ui(); ui.greetUser(); -// storage = new Storage(filePath); -// try { -// stocks = new StockList(storage.load()); -// stocks.viewPortfolio(); -// } catch (DukeException e) { -// ui.showLoadingError(e.getMessage()); -// stocks = new StockList(); -// } + /* storage = new Storage(filePath); + try { + stocks = new StockList(storage.load()); + stocks.viewPortfolio(); + } catch (DukeException e) { + ui.showLoadingError(e.getMessage()); + stocks = new StockList(); + } + */ stocks = new StockList(); } @@ -63,7 +64,7 @@ public static void main(String[] args) { } catch (IOException e) { e.printStackTrace(); } -// new Duke().run(); + // new Duke().run(); } diff --git a/src/main/java/seedu/duke/api/Api.java b/src/main/java/seedu/duke/api/Api.java index 2b939b976e..b3e7f0accd 100644 --- a/src/main/java/seedu/duke/api/Api.java +++ b/src/main/java/seedu/duke/api/Api.java @@ -1,8 +1,12 @@ package seedu.duke.api; -import java.io.*; -import java.net.*; +import java.io.IOException; +import java.io.UnsupportedEncodingException; +import java.net.HttpURLConnection; +import java.net.URL; +import java.net.URLConnection; +import java.net.URLEncoder; import java.util.HashMap; import java.util.Map; diff --git a/src/main/java/seedu/duke/api/FullResponseBuilder.java b/src/main/java/seedu/duke/api/FullResponseBuilder.java index 4050aa62b7..89d4dde772 100644 --- a/src/main/java/seedu/duke/api/FullResponseBuilder.java +++ b/src/main/java/seedu/duke/api/FullResponseBuilder.java @@ -5,12 +5,9 @@ import java.io.InputStreamReader; import java.io.Reader; import java.net.HttpURLConnection; -import java.util.Iterator; -import java.util.List; public class FullResponseBuilder { public static String getFullResponse(HttpURLConnection con) throws IOException { - StringBuilder fullResponseBuilder = new StringBuilder(); Reader streamReader = null; if (con.getResponseCode() > 299) { @@ -28,6 +25,8 @@ public static String getFullResponse(HttpURLConnection con) throws IOException { br.close(); + StringBuilder fullResponseBuilder = new StringBuilder(); + fullResponseBuilder.append("Response: ") .append(content); diff --git a/src/main/java/seedu/duke/command/SearchCommand.java b/src/main/java/seedu/duke/command/SearchCommand.java index b46cc7b766..5d7196d667 100644 --- a/src/main/java/seedu/duke/command/SearchCommand.java +++ b/src/main/java/seedu/duke/command/SearchCommand.java @@ -10,6 +10,6 @@ public class SearchCommand extends Command { @Override public void executeCommand(String userInput, StockList stocks) throws DukeException { String symbol = Parser.getSearch(userInput); -// Api.quoteStock(symbol); + } } diff --git a/src/main/java/seedu/duke/data/exception/DukeException.java b/src/main/java/seedu/duke/data/exception/DukeException.java index 37a8f28a59..b2269a1239 100644 --- a/src/main/java/seedu/duke/data/exception/DukeException.java +++ b/src/main/java/seedu/duke/data/exception/DukeException.java @@ -2,7 +2,6 @@ public class DukeException extends Exception { - public DukeException() {} public DukeException(String errorMessage) { super(errorMessage); } From e7c027109334596d4b862cc9fa966e1b524a3cba Mon Sep 17 00:00:00 2001 From: yokemin Date: Tue, 13 Oct 2020 00:19:09 +0800 Subject: [PATCH 006/136] Edit code to meet coding standards --- src/main/java/seedu/duke/Duke.java | 11 +---------- 1 file changed, 1 insertion(+), 10 deletions(-) diff --git a/src/main/java/seedu/duke/Duke.java b/src/main/java/seedu/duke/Duke.java index 9c385372f7..8b8aa9666b 100644 --- a/src/main/java/seedu/duke/Duke.java +++ b/src/main/java/seedu/duke/Duke.java @@ -20,16 +20,7 @@ public class Duke { public Duke() { ui = new Ui(); ui.greetUser(); - - /* storage = new Storage(filePath); - try { - stocks = new StockList(storage.load()); - stocks.viewPortfolio(); - } catch (DukeException e) { - ui.showLoadingError(e.getMessage()); - stocks = new StockList(); - } - */ + stocks = new StockList(); } From d7df2f315f16d090bcaa059976633870a459d5c1 Mon Sep 17 00:00:00 2001 From: yokemin Date: Tue, 13 Oct 2020 00:27:37 +0800 Subject: [PATCH 007/136] Edit Javadoc sentence to meet coding standards --- src/main/java/seedu/duke/Duke.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/seedu/duke/Duke.java b/src/main/java/seedu/duke/Duke.java index 8b8aa9666b..734a1a64b9 100644 --- a/src/main/java/seedu/duke/Duke.java +++ b/src/main/java/seedu/duke/Duke.java @@ -20,12 +20,12 @@ public class Duke { public Duke() { ui = new Ui(); ui.greetUser(); - + stocks = new StockList(); } /** - * Runs Duke program + * Runs Duke program. */ public void run() { boolean isBye = false; From 2fa7dd0abaf73a9b7d45815a6b320acdd296df2d Mon Sep 17 00:00:00 2001 From: yokemin Date: Tue, 13 Oct 2020 00:30:32 +0800 Subject: [PATCH 008/136] Comment code to print json string --- src/main/java/seedu/duke/api/Api.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/seedu/duke/api/Api.java b/src/main/java/seedu/duke/api/Api.java index b3e7f0accd..81c8cc0dd5 100644 --- a/src/main/java/seedu/duke/api/Api.java +++ b/src/main/java/seedu/duke/api/Api.java @@ -37,7 +37,7 @@ public Api() throws IOException { // Prints response from API call String response = FullResponseBuilder.getFullResponse(http); - System.out.println(response); + // System.out.println(response); } From b67bae4a842662e7ab92b329972602e48ad0abfa Mon Sep 17 00:00:00 2001 From: yokemin Date: Tue, 13 Oct 2020 00:34:00 +0800 Subject: [PATCH 009/136] Emptied text-ui-test txt files to pass CI test --- text-ui-test/EXPECTED.TXT | 9 --------- text-ui-test/input.txt | 1 - 2 files changed, 10 deletions(-) diff --git a/text-ui-test/EXPECTED.TXT b/text-ui-test/EXPECTED.TXT index 892cb6cae7..e69de29bb2 100644 --- a/text-ui-test/EXPECTED.TXT +++ b/text-ui-test/EXPECTED.TXT @@ -1,9 +0,0 @@ -Hello from - ____ _ -| _ \ _ _| | _____ -| | | | | | | |/ / _ \ -| |_| | |_| | < __/ -|____/ \__,_|_|\_\___| - -What is your name? -Hello James Gosling diff --git a/text-ui-test/input.txt b/text-ui-test/input.txt index f6ec2e9f95..e69de29bb2 100644 --- a/text-ui-test/input.txt +++ b/text-ui-test/input.txt @@ -1 +0,0 @@ -James Gosling \ No newline at end of file From 676126897bc64257b63d934d5a69f27956b26849 Mon Sep 17 00:00:00 2001 From: Alvin Tan De Jun <> Date: Tue, 13 Oct 2020 11:58:05 +0800 Subject: [PATCH 010/136] Add functionality to search for company based on the ticker symbol --- build.gradle | 4 ++ src/main/java/seedu/duke/Duke.java | 55 +---------------- .../seedu/duke/api/StockPriceFetcher.java | 43 ++++++++++++++ .../java/seedu/duke/command/ByeCommand.java | 4 -- src/main/java/seedu/duke/command/Command.java | 2 - .../seedu/duke/command/InvalidCommand.java | 13 ++++ .../seedu/duke/command/SearchCommand.java | 16 ++--- .../seedu/duke/controller/Controller.java | 59 +++++++++++++++++++ src/main/java/seedu/duke/model/Portfolio.java | 11 ++++ src/main/java/seedu/duke/model/Stock.java | 13 ++++ src/main/java/seedu/duke/parser/Parser.java | 43 +++++++++----- src/main/java/seedu/duke/ui/Ui.java | 37 ++++++++---- 12 files changed, 206 insertions(+), 94 deletions(-) create mode 100644 src/main/java/seedu/duke/api/StockPriceFetcher.java create mode 100644 src/main/java/seedu/duke/command/InvalidCommand.java create mode 100644 src/main/java/seedu/duke/controller/Controller.java create mode 100644 src/main/java/seedu/duke/model/Portfolio.java create mode 100644 src/main/java/seedu/duke/model/Stock.java diff --git a/build.gradle b/build.gradle index b0c5528fb5..55597e6c04 100644 --- a/build.gradle +++ b/build.gradle @@ -7,11 +7,15 @@ plugins { repositories { mavenCentral() + maven { + url "https://dl.bintray.com/patriques82/maven" + } } dependencies { testImplementation group: 'org.junit.jupiter', name: 'junit-jupiter-api', version: '5.5.0' testRuntimeOnly group: 'org.junit.jupiter', name: 'junit-jupiter-engine', version: '5.5.0' + compile 'org.patriques:alphavantage4j:1.4' } test { diff --git a/src/main/java/seedu/duke/Duke.java b/src/main/java/seedu/duke/Duke.java index 734a1a64b9..db08386b76 100644 --- a/src/main/java/seedu/duke/Duke.java +++ b/src/main/java/seedu/duke/Duke.java @@ -1,64 +1,15 @@ package seedu.duke; -import seedu.duke.api.Api; -import seedu.duke.command.Command; -import seedu.duke.data.StockList; -import seedu.duke.data.exception.DukeException; -import seedu.duke.parser.Parser; -import seedu.duke.ui.Ui; - -import java.io.IOException; -import java.util.concurrent.TimeUnit; - +import seedu.duke.controller.Controller; public class Duke { - public final Ui ui; - // private final Storage storage; - private StockList stocks; - - public Duke() { - ui = new Ui(); - ui.greetUser(); - - stocks = new StockList(); - } - - /** - * Runs Duke program. - */ - public void run() { - boolean isBye = false; - while (!isBye) { - try { - String userInput = Ui.getUserInput(); - Command command = Parser.parseCommand(userInput); - command.executeCommand(userInput, stocks); - isBye = ui.sayBye(userInput); - TimeUnit.SECONDS.sleep(1); - System.out.println("================================================"); - } catch (DukeException | InterruptedException e) { - ui.showErrorMessage(e.getMessage()); - System.out.println("================================================"); - } - } - } - /** * Main entry-point for the java.duke.Duke application. */ public static void main(String[] args) { - - final Api api; - try { - api = new Api(); - } catch (IOException e) { - e.printStackTrace(); - } - // new Duke().run(); - - + Controller c = new Controller(); + c.runApp(); } - } diff --git a/src/main/java/seedu/duke/api/StockPriceFetcher.java b/src/main/java/seedu/duke/api/StockPriceFetcher.java new file mode 100644 index 0000000000..51ff7ee4a1 --- /dev/null +++ b/src/main/java/seedu/duke/api/StockPriceFetcher.java @@ -0,0 +1,43 @@ +package seedu.duke.api; + +import org.patriques.AlphaVantageConnector; +import org.patriques.TimeSeries; +import org.patriques.input.timeseries.Interval; +import org.patriques.input.timeseries.OutputSize; +import org.patriques.output.AlphaVantageException; +import org.patriques.output.timeseries.IntraDay; +import org.patriques.output.timeseries.data.StockData; +import seedu.duke.data.exception.DukeException; + +import java.util.List; + +public class StockPriceFetcher { + private String apiKey; + private int timeout = 3000; + + public StockPriceFetcher() { + apiKey = "O8EVQ7YSWDW08BN9"; + timeout = 3000; + } + + public double fetchLatestPrice(String symbol) throws DukeException { + StockData stockData = fetchLatestStockData(symbol); + + return (stockData.getHigh() + stockData.getLow()) / 2; + } + + public StockData fetchLatestStockData(String symbol) throws DukeException { + AlphaVantageConnector apiConnector = new AlphaVantageConnector(apiKey, timeout); + TimeSeries stockTimeSeries = new TimeSeries(apiConnector); + + try { + IntraDay response = stockTimeSeries.intraDay(symbol, Interval.ONE_MIN, OutputSize.COMPACT); + List stockData = response.getStockData(); + + return stockData.get(0); + } catch (AlphaVantageException e) { + throw new DukeException("Failed to retrieve price! Please try again later."); + } + } + +} diff --git a/src/main/java/seedu/duke/command/ByeCommand.java b/src/main/java/seedu/duke/command/ByeCommand.java index 22d39804b8..cff9069d32 100644 --- a/src/main/java/seedu/duke/command/ByeCommand.java +++ b/src/main/java/seedu/duke/command/ByeCommand.java @@ -5,8 +5,4 @@ public class ByeCommand extends Command { - @Override - public void executeCommand(String userInput, StockList stocks) throws DukeException { - - } } diff --git a/src/main/java/seedu/duke/command/Command.java b/src/main/java/seedu/duke/command/Command.java index ec3724af2a..92ebf1393d 100644 --- a/src/main/java/seedu/duke/command/Command.java +++ b/src/main/java/seedu/duke/command/Command.java @@ -7,6 +7,4 @@ public abstract class Command { - public abstract void executeCommand(String userInput, StockList stocks) throws DukeException; - } diff --git a/src/main/java/seedu/duke/command/InvalidCommand.java b/src/main/java/seedu/duke/command/InvalidCommand.java new file mode 100644 index 0000000000..d3e865c55c --- /dev/null +++ b/src/main/java/seedu/duke/command/InvalidCommand.java @@ -0,0 +1,13 @@ +package seedu.duke.command; + +public class InvalidCommand extends Command { + String errorMessage; + + public InvalidCommand(String errorMessage) { + this.errorMessage = errorMessage; + } + + public String getErrorMessage() { + return errorMessage; + } +} diff --git a/src/main/java/seedu/duke/command/SearchCommand.java b/src/main/java/seedu/duke/command/SearchCommand.java index 5d7196d667..e7dcec05f9 100644 --- a/src/main/java/seedu/duke/command/SearchCommand.java +++ b/src/main/java/seedu/duke/command/SearchCommand.java @@ -1,15 +1,15 @@ package seedu.duke.command; -import seedu.duke.api.Api; -import seedu.duke.data.StockList; -import seedu.duke.data.exception.DukeException; -import seedu.duke.parser.Parser; - public class SearchCommand extends Command { - @Override - public void executeCommand(String userInput, StockList stocks) throws DukeException { - String symbol = Parser.getSearch(userInput); + private String searchKey; + + public SearchCommand(String searchKey) { + this.searchKey = searchKey; + } + public String getSearchKey() { + return searchKey; } + } diff --git a/src/main/java/seedu/duke/controller/Controller.java b/src/main/java/seedu/duke/controller/Controller.java new file mode 100644 index 0000000000..94f4dbbfe6 --- /dev/null +++ b/src/main/java/seedu/duke/controller/Controller.java @@ -0,0 +1,59 @@ +package seedu.duke.controller; + +import org.patriques.output.timeseries.data.StockData; +import seedu.duke.api.StockPriceFetcher; +import seedu.duke.command.ByeCommand; +import seedu.duke.command.Command; +import seedu.duke.command.InvalidCommand; +import seedu.duke.command.SearchCommand; +import seedu.duke.data.exception.DukeException; +import seedu.duke.parser.Parser; +import seedu.duke.ui.Ui; + +public class Controller { + private Ui ui; + private StockPriceFetcher stockPriceFetcher; + + public Controller() { + ui = new Ui(); + stockPriceFetcher = new StockPriceFetcher(); + } + + public void runApp() { + ui.greetUser(); + + while (true) { + String userInput = ui.getUserInput(); + Command command = Parser.parseCommand(userInput); + + if (command instanceof SearchCommand) { + SearchCommand searchCommand = (SearchCommand) command; + searchSymbol(searchCommand.getSearchKey()); + } else if (command instanceof InvalidCommand) { + InvalidCommand invalidCommand = (InvalidCommand) command; + ui.printWithDivider(invalidCommand.getErrorMessage()); + } else if (command instanceof ByeCommand) { + break; + } + } + } + + public void searchSymbol(String symbol) { + try { + StockData stockData = stockPriceFetcher.fetchLatestStockData(symbol); + + ui.printWithDivider( + "Here is the latest information on " + symbol + ":", + "date: " + stockData.getDateTime(), + "open: " + stockData.getOpen(), + "high: " + stockData.getHigh(), + "low: " + stockData.getLow(), + "close: " + stockData.getClose(), + "volume: " + stockData.getVolume() + ); + } catch (DukeException e) { + ui.printWithDivider(e.getMessage()); + } + } + +} diff --git a/src/main/java/seedu/duke/model/Portfolio.java b/src/main/java/seedu/duke/model/Portfolio.java new file mode 100644 index 0000000000..a313cdafbb --- /dev/null +++ b/src/main/java/seedu/duke/model/Portfolio.java @@ -0,0 +1,11 @@ +package seedu.duke.model; + +import java.util.ArrayList; + +public class Portfolio { + ArrayList stocks; + + public Portfolio() { + stocks = new ArrayList<>(); + } +} diff --git a/src/main/java/seedu/duke/model/Stock.java b/src/main/java/seedu/duke/model/Stock.java new file mode 100644 index 0000000000..53a481a0ce --- /dev/null +++ b/src/main/java/seedu/duke/model/Stock.java @@ -0,0 +1,13 @@ +package seedu.duke.model; + +import java.time.LocalDateTime; + +public class Stock { + LocalDateTime purchasedDateTime; + double purchasedPrice; + + public Stock(double purchasedPrice, LocalDateTime purchasedDateTime) { + this.purchasedPrice = purchasedPrice; + this.purchasedDateTime = purchasedDateTime; + } +} diff --git a/src/main/java/seedu/duke/parser/Parser.java b/src/main/java/seedu/duke/parser/Parser.java index 12f1c4c489..efc8cdcfd1 100644 --- a/src/main/java/seedu/duke/parser/Parser.java +++ b/src/main/java/seedu/duke/parser/Parser.java @@ -1,31 +1,44 @@ package seedu.duke.parser; +import seedu.duke.Duke; import seedu.duke.command.ByeCommand; import seedu.duke.command.Command; +import seedu.duke.command.InvalidCommand; import seedu.duke.command.SearchCommand; import seedu.duke.data.exception.DukeException; public class Parser { - public static Command parseCommand(String userInput) throws DukeException { - Command command; - if (userInput.contains("search")) { - command = new SearchCommand(); - } else if (userInput.contains("bye")) { - command = new ByeCommand(); - } else { - throw new DukeException("Command does not exist! Try Again."); + public static Command parseCommand(String userInput) { + String[] userInputSplit = userInput.trim().split(" "); + String commandString = userInputSplit[0].toLowerCase(); + + switch (commandString) { + case "search": + try { + return parseSearch(userInputSplit); + } catch (DukeException e) { + return new InvalidCommand(e.getMessage()); + } + case "bye": + return new ByeCommand(); + default: + return new InvalidCommand("Invalid command! Please try again."); } - return command; } - public static String getSearch(String userInput) throws DukeException { - String symbol; + public static Command parseSearch(String[] userInputSplit) throws DukeException { try { - symbol = userInput.substring("search".length() + 1); - } catch (Exception e) { - throw new DukeException("Search input cannot be empty!"); + if (!userInputSplit[1].startsWith("/")) { + throw new DukeException("Please enter the ticker symbol of the company!"); + } + } catch (IndexOutOfBoundsException e) { + throw new DukeException(("Please enter the ticker symbol of the company you would like to search for!")); } - return symbol; + + SearchCommand searchCommand = new SearchCommand(userInputSplit[1].substring(1)); + + return searchCommand; } + } diff --git a/src/main/java/seedu/duke/ui/Ui.java b/src/main/java/seedu/duke/ui/Ui.java index 1cabffe82a..14d8b2fe7f 100644 --- a/src/main/java/seedu/duke/ui/Ui.java +++ b/src/main/java/seedu/duke/ui/Ui.java @@ -3,22 +3,33 @@ import java.util.Scanner; public class Ui { + private final String dividerLine = "____________________________________________________________"; + private final String logo = "__________ ___________ .___ \n" + + "\\______ \\_____ ______ ___________ \\__ ___/___________ __| _/____ \n" + + " | ___/\\__ \\ \\____ \\_/ __ \\_ __ \\ | | \\_ __ \\__ \\ / __ |/ __ \\ \n" + + " | | / __ \\| |_> > ___/| | \\/ | | | | \\// __ \\_/ /_/ \\ ___/ \n" + + " |____| (____ / __/ \\___ >__| |____| |__| (____ /\\____ |\\___ >\n" + + " \\/|__| \\/ \\/ \\/ \\/ "; - public static void greetUser() { - String logo = " ____ _ \n" - + "| _ \\ _ _| | _____ \n" - + "| | | | | | | |/ / _ \\\n" - + "| |_| | |_| | < __/\n" - + "|____/ \\__,_|_|\\_\\___|\n"; - System.out.println("Hello from\n" + logo); - System.out.println("What is your name?"); - - Scanner in = new Scanner(System.in); - System.out.println("Hello " + in.nextLine() + "!"); + public void greetUser() { + print(logo); + printWithDivider("Welcome to the Command Line Paper Trading App!"); } - public static String getUserInput() { - System.out.println("What would you like to do?"); + public void print(String message) { + System.out.println(message); + } + + public void printWithDivider(String... messages) { + print(dividerLine); + for (String message: messages) { + print(message); + } + print(dividerLine); + } + + public String getUserInput() { + print("What would you like to do today?"); Scanner scan = new Scanner(System.in); String userInput = scan.nextLine(); return userInput; From 35ba8213d6b8621ad0019b7eaa658a0a5650d8eb Mon Sep 17 00:00:00 2001 From: Alvin Tan De Jun <> Date: Tue, 13 Oct 2020 15:51:03 +0800 Subject: [PATCH 011/136] Add portfolio manager class --- src/main/java/seedu/duke/controller/Controller.java | 3 +++ src/main/java/seedu/duke/data/Stock.java | 3 ++- src/main/java/seedu/duke/model/Portfolio.java | 3 ++- src/main/java/seedu/duke/model/PortfolioManager.java | 10 ++++++++++ src/main/java/seedu/duke/model/Stock.java | 3 ++- 5 files changed, 19 insertions(+), 3 deletions(-) create mode 100644 src/main/java/seedu/duke/model/PortfolioManager.java diff --git a/src/main/java/seedu/duke/controller/Controller.java b/src/main/java/seedu/duke/controller/Controller.java index 94f4dbbfe6..7b7924bd94 100644 --- a/src/main/java/seedu/duke/controller/Controller.java +++ b/src/main/java/seedu/duke/controller/Controller.java @@ -7,12 +7,15 @@ import seedu.duke.command.InvalidCommand; import seedu.duke.command.SearchCommand; import seedu.duke.data.exception.DukeException; +import seedu.duke.model.Portfolio; +import seedu.duke.model.PortfolioManager; import seedu.duke.parser.Parser; import seedu.duke.ui.Ui; public class Controller { private Ui ui; private StockPriceFetcher stockPriceFetcher; + private PortfolioManager portfolioManager; public Controller() { ui = new Ui(); diff --git a/src/main/java/seedu/duke/data/Stock.java b/src/main/java/seedu/duke/data/Stock.java index 9e46114c28..2a17c17dd5 100644 --- a/src/main/java/seedu/duke/data/Stock.java +++ b/src/main/java/seedu/duke/data/Stock.java @@ -1,9 +1,10 @@ package seedu.duke.data; +import java.io.Serializable; import java.util.Date; -public class Stock { +public class Stock implements Serializable { private String symbol; private double open; private double high; diff --git a/src/main/java/seedu/duke/model/Portfolio.java b/src/main/java/seedu/duke/model/Portfolio.java index a313cdafbb..9657947039 100644 --- a/src/main/java/seedu/duke/model/Portfolio.java +++ b/src/main/java/seedu/duke/model/Portfolio.java @@ -1,8 +1,9 @@ package seedu.duke.model; +import java.io.Serializable; import java.util.ArrayList; -public class Portfolio { +public class Portfolio implements Serializable { ArrayList stocks; public Portfolio() { diff --git a/src/main/java/seedu/duke/model/PortfolioManager.java b/src/main/java/seedu/duke/model/PortfolioManager.java new file mode 100644 index 0000000000..63e36295d3 --- /dev/null +++ b/src/main/java/seedu/duke/model/PortfolioManager.java @@ -0,0 +1,10 @@ +package seedu.duke.model; + +public class PortfolioManager { + private Portfolio portfolio; + + public PortfolioManager() { + // load portfolio object from file + // if does not exists, create the file + } +} diff --git a/src/main/java/seedu/duke/model/Stock.java b/src/main/java/seedu/duke/model/Stock.java index 53a481a0ce..64e31f9d4a 100644 --- a/src/main/java/seedu/duke/model/Stock.java +++ b/src/main/java/seedu/duke/model/Stock.java @@ -1,8 +1,9 @@ package seedu.duke.model; +import java.io.Serializable; import java.time.LocalDateTime; -public class Stock { +public class Stock implements Serializable { LocalDateTime purchasedDateTime; double purchasedPrice; From dc95e5072561c0b886334c3eda3520e57ea98acd Mon Sep 17 00:00:00 2001 From: Alvin Tan De Jun <> Date: Tue, 13 Oct 2020 15:55:09 +0800 Subject: [PATCH 012/136] Update EXPECTED.TXT --- text-ui-test/EXPECTED.TXT | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/text-ui-test/EXPECTED.TXT b/text-ui-test/EXPECTED.TXT index e69de29bb2..d90844ae14 100644 --- a/text-ui-test/EXPECTED.TXT +++ b/text-ui-test/EXPECTED.TXT @@ -0,0 +1,10 @@ +__________ ___________ .___ +\______ \_____ ______ ___________ \__ ___/___________ __| _/____ + | ___/\__ \ \____ \_/ __ \_ __ \ | | \_ __ \__ \ / __ |/ __ \ + | | / __ \| |_> > ___/| | \/ | | | | \// __ \_/ /_/ \ ___/ + |____| (____ / __/ \___ >__| |____| |__| (____ /\____ |\___ > + \/|__| \/ \/ \/ \/ +____________________________________________________________ +Welcome to the Command Line Paper Trading App! +____________________________________________________________ +What would you like to do today? \ No newline at end of file From e850225b668f4bb4474527a3ba2e27d373d3fcb1 Mon Sep 17 00:00:00 2001 From: yokemin Date: Tue, 13 Oct 2020 17:08:53 +0800 Subject: [PATCH 013/136] Add transaction class --- .../java/seedu/duke/command/BuyCommand.java | 4 + .../java/seedu/duke/command/ByeCommand.java | 3 - src/main/java/seedu/duke/command/Command.java | 5 -- .../java/seedu/duke/command/SellCommand.java | 4 + .../seedu/duke/controller/Controller.java | 11 +++ src/main/java/seedu/duke/data/Stock.java | 77 ------------------- src/main/java/seedu/duke/data/StockList.java | 13 ---- src/main/java/seedu/duke/model/Portfolio.java | 14 +++- .../seedu/duke/model/PortfolioManager.java | 4 + src/main/java/seedu/duke/model/Stock.java | 17 ++-- .../java/seedu/duke/model/Transaction.java | 14 ++++ .../seedu/duke/model/TransactionType.java | 6 ++ src/main/java/seedu/duke/ui/Ui.java | 11 +++ 13 files changed, 78 insertions(+), 105 deletions(-) create mode 100644 src/main/java/seedu/duke/command/BuyCommand.java create mode 100644 src/main/java/seedu/duke/command/SellCommand.java delete mode 100644 src/main/java/seedu/duke/data/Stock.java delete mode 100644 src/main/java/seedu/duke/data/StockList.java create mode 100644 src/main/java/seedu/duke/model/Transaction.java create mode 100644 src/main/java/seedu/duke/model/TransactionType.java diff --git a/src/main/java/seedu/duke/command/BuyCommand.java b/src/main/java/seedu/duke/command/BuyCommand.java new file mode 100644 index 0000000000..b89107da8b --- /dev/null +++ b/src/main/java/seedu/duke/command/BuyCommand.java @@ -0,0 +1,4 @@ +package seedu.duke.command; + +public class BuyCommand extends Command { +} diff --git a/src/main/java/seedu/duke/command/ByeCommand.java b/src/main/java/seedu/duke/command/ByeCommand.java index cff9069d32..b9e5bd8b2b 100644 --- a/src/main/java/seedu/duke/command/ByeCommand.java +++ b/src/main/java/seedu/duke/command/ByeCommand.java @@ -1,8 +1,5 @@ package seedu.duke.command; -import seedu.duke.data.StockList; -import seedu.duke.data.exception.DukeException; - public class ByeCommand extends Command { } diff --git a/src/main/java/seedu/duke/command/Command.java b/src/main/java/seedu/duke/command/Command.java index 92ebf1393d..579c997a31 100644 --- a/src/main/java/seedu/duke/command/Command.java +++ b/src/main/java/seedu/duke/command/Command.java @@ -1,10 +1,5 @@ package seedu.duke.command; -import seedu.duke.data.StockList; -import seedu.duke.data.exception.DukeException; - -import java.nio.file.Path; - public abstract class Command { } diff --git a/src/main/java/seedu/duke/command/SellCommand.java b/src/main/java/seedu/duke/command/SellCommand.java new file mode 100644 index 0000000000..cf9e1a76c7 --- /dev/null +++ b/src/main/java/seedu/duke/command/SellCommand.java @@ -0,0 +1,4 @@ +package seedu.duke.command; + +public class SellCommand extends Command { +} diff --git a/src/main/java/seedu/duke/controller/Controller.java b/src/main/java/seedu/duke/controller/Controller.java index 7b7924bd94..df2339f476 100644 --- a/src/main/java/seedu/duke/controller/Controller.java +++ b/src/main/java/seedu/duke/controller/Controller.java @@ -9,9 +9,12 @@ import seedu.duke.data.exception.DukeException; import seedu.duke.model.Portfolio; import seedu.duke.model.PortfolioManager; +import seedu.duke.model.Stock; import seedu.duke.parser.Parser; import seedu.duke.ui.Ui; +import java.time.LocalDateTime; + public class Controller { private Ui ui; private StockPriceFetcher stockPriceFetcher; @@ -22,6 +25,14 @@ public Controller() { stockPriceFetcher = new StockPriceFetcher(); } + private void buyStock(String symbol) throws DukeException { + double price = stockPriceFetcher.fetchLatestPrice(symbol); + Stock stock = new Stock(symbol, price, LocalDateTime.now()); + portfolioManager.buyStock(stock); + } + + // private void sellStock() {} + public void runApp() { ui.greetUser(); diff --git a/src/main/java/seedu/duke/data/Stock.java b/src/main/java/seedu/duke/data/Stock.java deleted file mode 100644 index 2a17c17dd5..0000000000 --- a/src/main/java/seedu/duke/data/Stock.java +++ /dev/null @@ -1,77 +0,0 @@ -package seedu.duke.data; - - -import java.io.Serializable; -import java.util.Date; - -public class Stock implements Serializable { - private String symbol; - private double open; - private double high; - private double low; - private double price; - private double volume; - private Date latestTradingDay; - - public Stock() { - } - - // Getters - public String getSymbol() { - return symbol; - } - - public double getOpen() { - return open; - } - - public double getHigh() { - return high; - } - - public double getLow() { - return low; - } - - public double getPrice() { - return price; - } - - public double getVolume() { - return volume; - } - - public Date getLatestTradingDay() { - return latestTradingDay; - } - - // Setters - - public void setSymbol(String symbol) { - this.symbol = symbol; - } - - public void setOpen(double open) { - this.open = open; - } - - public void setHigh(double high) { - this.high = high; - } - - public void setLow(double low) { - this.low = low; - } - - public void setPrice(double price) { - this.price = price; - } - - public void setVolume(double volume) { - this.volume = volume; - } - - public void setLatestTradingDay(Date latestTradingDay) { - this.latestTradingDay = latestTradingDay; - } -} diff --git a/src/main/java/seedu/duke/data/StockList.java b/src/main/java/seedu/duke/data/StockList.java deleted file mode 100644 index c093ae2e3a..0000000000 --- a/src/main/java/seedu/duke/data/StockList.java +++ /dev/null @@ -1,13 +0,0 @@ -package seedu.duke.data; - -import java.util.ArrayList; - -public class StockList { - - private final ArrayList stocks; - - public StockList() { - this.stocks = new ArrayList<>(); - } - -} diff --git a/src/main/java/seedu/duke/model/Portfolio.java b/src/main/java/seedu/duke/model/Portfolio.java index 9657947039..39b4d9b03b 100644 --- a/src/main/java/seedu/duke/model/Portfolio.java +++ b/src/main/java/seedu/duke/model/Portfolio.java @@ -2,11 +2,21 @@ import java.io.Serializable; import java.util.ArrayList; +import java.util.HashMap; +import java.util.Map; public class Portfolio implements Serializable { - ArrayList stocks; + HashMap stocks; public Portfolio() { - stocks = new ArrayList<>(); + stocks = new HashMap<>(); + } + + public void addStock(Stock stock) { + stocks.add(stock); + } + + public void sellStock(Stock stock) { + stocks.remove(stock); } } diff --git a/src/main/java/seedu/duke/model/PortfolioManager.java b/src/main/java/seedu/duke/model/PortfolioManager.java index 63e36295d3..1b4da4271c 100644 --- a/src/main/java/seedu/duke/model/PortfolioManager.java +++ b/src/main/java/seedu/duke/model/PortfolioManager.java @@ -1,10 +1,14 @@ package seedu.duke.model; + public class PortfolioManager { private Portfolio portfolio; public PortfolioManager() { // load portfolio object from file // if does not exists, create the file + portfolio = new Portfolio(); } + + } diff --git a/src/main/java/seedu/duke/model/Stock.java b/src/main/java/seedu/duke/model/Stock.java index 64e31f9d4a..c38bd6a16a 100644 --- a/src/main/java/seedu/duke/model/Stock.java +++ b/src/main/java/seedu/duke/model/Stock.java @@ -2,13 +2,20 @@ import java.io.Serializable; import java.time.LocalDateTime; +import java.util.ArrayList; public class Stock implements Serializable { - LocalDateTime purchasedDateTime; - double purchasedPrice; + private String symbol; + private int totalQuantity; + private ArrayList transactions; - public Stock(double purchasedPrice, LocalDateTime purchasedDateTime) { - this.purchasedPrice = purchasedPrice; - this.purchasedDateTime = purchasedDateTime; + public Stock(String symbol, int totalQuantity) { + this.symbol = symbol; + this.totalQuantity = totalQuantity; } + + public void addTransaction() { + + } + } diff --git a/src/main/java/seedu/duke/model/Transaction.java b/src/main/java/seedu/duke/model/Transaction.java new file mode 100644 index 0000000000..1316b27fc5 --- /dev/null +++ b/src/main/java/seedu/duke/model/Transaction.java @@ -0,0 +1,14 @@ +package seedu.duke.model; + +public class Transaction { + private TransactionType transactionType; + private int quantity; + private double unitPrice; + + public Transaction(TransactionType transactionType, int quantity, double unitPrice) { + this.transactionType = transactionType; + this.quantity = quantity; + this.unitPrice = unitPrice; + } + +} diff --git a/src/main/java/seedu/duke/model/TransactionType.java b/src/main/java/seedu/duke/model/TransactionType.java new file mode 100644 index 0000000000..0da9e348ff --- /dev/null +++ b/src/main/java/seedu/duke/model/TransactionType.java @@ -0,0 +1,6 @@ +package seedu.duke.model; + +public enum TransactionType { + BUY, + SELL +} diff --git a/src/main/java/seedu/duke/ui/Ui.java b/src/main/java/seedu/duke/ui/Ui.java index 14d8b2fe7f..9b089df404 100644 --- a/src/main/java/seedu/duke/ui/Ui.java +++ b/src/main/java/seedu/duke/ui/Ui.java @@ -1,5 +1,9 @@ package seedu.duke.ui; +import seedu.duke.model.Portfolio; +import seedu.duke.model.Stock; + +import java.util.ArrayList; import java.util.Scanner; public class Ui { @@ -35,6 +39,13 @@ public String getUserInput() { return userInput; } + public void viewPortfolio(ArrayList stocks) { + String[] stockNames + for (Stock stock : stocks) { + print(stock.toString()); + } + } + public void showErrorMessage(String message) { System.out.println(message); } From 4a8ffd7096be412491f623fc25b2adecf1088660 Mon Sep 17 00:00:00 2001 From: wly99 <34613421+wly99@users.noreply.github.com> Date: Tue, 13 Oct 2020 17:46:03 +0800 Subject: [PATCH 014/136] Update README.md --- docs/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/README.md b/docs/README.md index bbcc99c1e7..5645973e1b 100644 --- a/docs/README.md +++ b/docs/README.md @@ -1,6 +1,6 @@ # Duke -{Give product intro here} +{Paper trading command line app} Useful links: * [User Guide](UserGuide.md) From 16fd12898d11571c17fd3123db52057b01c0f336 Mon Sep 17 00:00:00 2001 From: Alvin Tan De Jun <> Date: Tue, 13 Oct 2020 17:55:01 +0800 Subject: [PATCH 015/136] Add buy function --- .../java/seedu/duke/command/BuyCommand.java | 15 ++++++++ .../java/seedu/duke/command/ViewCommand.java | 5 +++ .../seedu/duke/controller/Controller.java | 36 +++++++++++-------- src/main/java/seedu/duke/model/Portfolio.java | 34 +++++++++++++++--- .../seedu/duke/model/PortfolioManager.java | 9 +++++ src/main/java/seedu/duke/model/Stock.java | 31 ++++++++++++++-- .../java/seedu/duke/model/Transaction.java | 18 +++++++++- src/main/java/seedu/duke/parser/Parser.java | 31 +++++++++++++--- src/main/java/seedu/duke/ui/Ui.java | 20 ++++++++--- 9 files changed, 168 insertions(+), 31 deletions(-) create mode 100644 src/main/java/seedu/duke/command/ViewCommand.java diff --git a/src/main/java/seedu/duke/command/BuyCommand.java b/src/main/java/seedu/duke/command/BuyCommand.java index b89107da8b..73df125b60 100644 --- a/src/main/java/seedu/duke/command/BuyCommand.java +++ b/src/main/java/seedu/duke/command/BuyCommand.java @@ -1,4 +1,19 @@ package seedu.duke.command; public class BuyCommand extends Command { + private String symbol; + private int quantity; + + public BuyCommand(String symbol, int quantity) { + this.symbol = symbol; + this.quantity = quantity; + } + + public String getSymbol() { + return symbol; + } + + public int getQuantity() { + return quantity; + } } diff --git a/src/main/java/seedu/duke/command/ViewCommand.java b/src/main/java/seedu/duke/command/ViewCommand.java new file mode 100644 index 0000000000..b12f50bd64 --- /dev/null +++ b/src/main/java/seedu/duke/command/ViewCommand.java @@ -0,0 +1,5 @@ +package seedu.duke.command; + +public class ViewCommand extends Command { + +} diff --git a/src/main/java/seedu/duke/controller/Controller.java b/src/main/java/seedu/duke/controller/Controller.java index df2339f476..84191e9d64 100644 --- a/src/main/java/seedu/duke/controller/Controller.java +++ b/src/main/java/seedu/duke/controller/Controller.java @@ -2,19 +2,11 @@ import org.patriques.output.timeseries.data.StockData; import seedu.duke.api.StockPriceFetcher; -import seedu.duke.command.ByeCommand; -import seedu.duke.command.Command; -import seedu.duke.command.InvalidCommand; -import seedu.duke.command.SearchCommand; +import seedu.duke.command.*; import seedu.duke.data.exception.DukeException; -import seedu.duke.model.Portfolio; import seedu.duke.model.PortfolioManager; -import seedu.duke.model.Stock; -import seedu.duke.parser.Parser; import seedu.duke.ui.Ui; -import java.time.LocalDateTime; - public class Controller { private Ui ui; private StockPriceFetcher stockPriceFetcher; @@ -23,15 +15,20 @@ public class Controller { public Controller() { ui = new Ui(); stockPriceFetcher = new StockPriceFetcher(); + portfolioManager = new PortfolioManager(); } - private void buyStock(String symbol) throws DukeException { - double price = stockPriceFetcher.fetchLatestPrice(symbol); - Stock stock = new Stock(symbol, price, LocalDateTime.now()); - portfolioManager.buyStock(stock); - } + private void buyStock(String symbol, int quantity) { + try { + double price = stockPriceFetcher.fetchLatestPrice(symbol); + portfolioManager.buyStock(symbol, quantity, price); - // private void sellStock() {} + ui.printWithDivider("You have successfully purchased " + + quantity + " of " + symbol + " at " + price); + } catch (DukeException e) { + ui.printWithDivider(e.getMessage()); + } + } public void runApp() { ui.greetUser(); @@ -48,10 +45,19 @@ public void runApp() { ui.printWithDivider(invalidCommand.getErrorMessage()); } else if (command instanceof ByeCommand) { break; + } else if (command instanceof BuyCommand) { + BuyCommand buyCommand = (BuyCommand) command; + buyStock(buyCommand.getSymbol(), buyCommand.getQuantity()); + } else if (command instanceof ViewCommand) { + viewPortfolio(); } } } + public void viewPortfolio() { + ui.view(portfolioManager.getAllStocks()); + } + public void searchSymbol(String symbol) { try { StockData stockData = stockPriceFetcher.fetchLatestStockData(symbol); diff --git a/src/main/java/seedu/duke/model/Portfolio.java b/src/main/java/seedu/duke/model/Portfolio.java index 39b4d9b03b..b0009ad607 100644 --- a/src/main/java/seedu/duke/model/Portfolio.java +++ b/src/main/java/seedu/duke/model/Portfolio.java @@ -1,6 +1,9 @@ package seedu.duke.model; +import seedu.duke.data.exception.DukeException; + import java.io.Serializable; +import java.time.LocalDateTime; import java.util.ArrayList; import java.util.HashMap; import java.util.Map; @@ -12,11 +15,34 @@ public Portfolio() { stocks = new HashMap<>(); } - public void addStock(Stock stock) { - stocks.add(stock); + public void buyStock(String symbol, int quantity, double buyPrice) { + Transaction transaction = new Transaction(TransactionType.BUY, quantity, buyPrice, LocalDateTime.now()); + if (stocks.get(symbol) == null) { + Stock stock = new Stock(symbol); + stock.addTransaction(transaction); + stocks.put(symbol, stock); + } else { + Stock stock = stocks.get(symbol); + stock.addTransaction(transaction); + } } - public void sellStock(Stock stock) { - stocks.remove(stock); + public void sellStock(String symbol, int quantity, double sellPrice) throws DukeException { + if (stocks.get(symbol) == null) { + throw new DukeException("You do not own this stock!"); + } + + Transaction transaction = new Transaction(TransactionType.SELL, quantity, sellPrice, LocalDateTime.now()); + Stock stock = stocks.get(symbol); + stock.addTransaction(transaction); + } + + public ArrayList getAllStocks() { + ArrayList stocksArrayList = new ArrayList<>(); + for (Stock stock: stocks.values()) { + stocksArrayList.add(stock); + } + + return stocksArrayList; } } diff --git a/src/main/java/seedu/duke/model/PortfolioManager.java b/src/main/java/seedu/duke/model/PortfolioManager.java index 1b4da4271c..836f229003 100644 --- a/src/main/java/seedu/duke/model/PortfolioManager.java +++ b/src/main/java/seedu/duke/model/PortfolioManager.java @@ -1,6 +1,8 @@ package seedu.duke.model; +import java.util.ArrayList; + public class PortfolioManager { private Portfolio portfolio; @@ -10,5 +12,12 @@ public PortfolioManager() { portfolio = new Portfolio(); } + public void buyStock(String symbol, int quantity, double buyPrice) { + portfolio.buyStock(symbol, quantity, buyPrice); + } + + public ArrayList getAllStocks() { + return portfolio.getAllStocks(); + } } diff --git a/src/main/java/seedu/duke/model/Stock.java b/src/main/java/seedu/duke/model/Stock.java index c38bd6a16a..46054cd3bf 100644 --- a/src/main/java/seedu/duke/model/Stock.java +++ b/src/main/java/seedu/duke/model/Stock.java @@ -9,13 +9,38 @@ public class Stock implements Serializable { private int totalQuantity; private ArrayList transactions; - public Stock(String symbol, int totalQuantity) { + public Stock(String symbol) { this.symbol = symbol; - this.totalQuantity = totalQuantity; + transactions = new ArrayList<>(); } - public void addTransaction() { + public void addTransaction(Transaction transaction) { + switch (transaction.getTransactionType()) { + case BUY: + totalQuantity += transaction.getQuantity(); + break; + case SELL: + totalQuantity -= transaction.getQuantity(); + break; + } + transactions.add(transaction); } + public ArrayList getTransactions() { + return transactions; + } + + public String getSymbol() { + return symbol; + } + + public int getTotalQuantity() { + return totalQuantity; + } + + @Override + public String toString() { + return "Symbol: " + getSymbol() + ", total quantity: " + getTotalQuantity(); + } } diff --git a/src/main/java/seedu/duke/model/Transaction.java b/src/main/java/seedu/duke/model/Transaction.java index 1316b27fc5..1d25af6244 100644 --- a/src/main/java/seedu/duke/model/Transaction.java +++ b/src/main/java/seedu/duke/model/Transaction.java @@ -1,14 +1,30 @@ package seedu.duke.model; +import java.time.LocalDateTime; + public class Transaction { private TransactionType transactionType; private int quantity; private double unitPrice; + LocalDateTime dateTimeOfTransaction; - public Transaction(TransactionType transactionType, int quantity, double unitPrice) { + public Transaction(TransactionType transactionType, int quantity, double unitPrice, LocalDateTime dateTimeOfTransaction) { this.transactionType = transactionType; this.quantity = quantity; this.unitPrice = unitPrice; + this.dateTimeOfTransaction = dateTimeOfTransaction; + } + + public int getQuantity() { + return quantity; } + public TransactionType getTransactionType() { + return transactionType; + } + + @Override + public String toString() { + return transactionType + " " + quantity + " at " + unitPrice + " on " + dateTimeOfTransaction; + } } diff --git a/src/main/java/seedu/duke/parser/Parser.java b/src/main/java/seedu/duke/parser/Parser.java index efc8cdcfd1..e94716ccf1 100644 --- a/src/main/java/seedu/duke/parser/Parser.java +++ b/src/main/java/seedu/duke/parser/Parser.java @@ -1,12 +1,11 @@ package seedu.duke.parser; import seedu.duke.Duke; -import seedu.duke.command.ByeCommand; -import seedu.duke.command.Command; -import seedu.duke.command.InvalidCommand; -import seedu.duke.command.SearchCommand; +import seedu.duke.command.*; import seedu.duke.data.exception.DukeException; +import javax.swing.text.View; + public class Parser { public static Command parseCommand(String userInput) { @@ -20,13 +19,37 @@ public static Command parseCommand(String userInput) { } catch (DukeException e) { return new InvalidCommand(e.getMessage()); } + case "buy": + try { + return parseBuy(userInputSplit); + } catch (DukeException e) { + return new InvalidCommand(e.getMessage()); + } case "bye": return new ByeCommand(); + case "view": + return new ViewCommand(); default: return new InvalidCommand("Invalid command! Please try again."); } } + public static Command parseBuy(String[] userInputSplit) throws DukeException { + try { + if (!userInputSplit[1].startsWith("/")) { + throw new DukeException("Please enter the ticker symbol of the company that you want to buy!"); + } + int quantity = Integer.parseInt(userInputSplit[2]); + String symbol = userInputSplit[1].substring(1); + BuyCommand buyCommand = new BuyCommand(symbol, quantity); + return buyCommand; + } catch (IndexOutOfBoundsException e) { + throw new DukeException(("Please enter the ticker symbol of the company that you want to buy!")); + } catch (NumberFormatException e) { + throw new DukeException("Please enter a valid integer for the quantity of stocks that you want to buy!"); + } + } + public static Command parseSearch(String[] userInputSplit) throws DukeException { try { if (!userInputSplit[1].startsWith("/")) { diff --git a/src/main/java/seedu/duke/ui/Ui.java b/src/main/java/seedu/duke/ui/Ui.java index 9b089df404..38e2fee492 100644 --- a/src/main/java/seedu/duke/ui/Ui.java +++ b/src/main/java/seedu/duke/ui/Ui.java @@ -2,6 +2,7 @@ import seedu.duke.model.Portfolio; import seedu.duke.model.Stock; +import seedu.duke.model.Transaction; import java.util.ArrayList; import java.util.Scanner; @@ -39,11 +40,22 @@ public String getUserInput() { return userInput; } - public void viewPortfolio(ArrayList stocks) { - String[] stockNames - for (Stock stock : stocks) { - print(stock.toString()); + public void view(ArrayList stocks) { + print(dividerLine); + for (int i = 0; i < stocks.size(); i++) { + print((i+1) + ". " + stocks.get(i).toString()); + for (Transaction t: stocks.get(i).getTransactions()) { + print("\t" + t.toString()); + } + } + } + + public void printStocks(ArrayList stocks) { + String[] stockNames = new String[stocks.size()]; + for (int i = 0; i < stocks.size(); i++) { + stockNames[i] = (i+1) + ". " + stocks.get(i).toString(); } + printWithDivider(stockNames); } public void showErrorMessage(String message) { From de5bdb1b320d2c352206421e683bd38f7ccb8972 Mon Sep 17 00:00:00 2001 From: wly99 <34613421+wly99@users.noreply.github.com> Date: Tue, 13 Oct 2020 18:51:23 +0800 Subject: [PATCH 016/136] Set theme jekyll-theme-midnight --- _config.yml | 1 + 1 file changed, 1 insertion(+) create mode 100644 _config.yml diff --git a/_config.yml b/_config.yml new file mode 100644 index 0000000000..18854876c6 --- /dev/null +++ b/_config.yml @@ -0,0 +1 @@ +theme: jekyll-theme-midnight \ No newline at end of file From 11f2b57c94dd4902a2d830fe96ac84cac9e0337b Mon Sep 17 00:00:00 2001 From: yokemin Date: Tue, 13 Oct 2020 18:57:02 +0800 Subject: [PATCH 017/136] Add function to sell stocks --- .../java/seedu/duke/command/SellCommand.java | 15 +++++++++++++ .../seedu/duke/controller/Controller.java | 19 +++++++++++++++- src/main/java/seedu/duke/model/Portfolio.java | 2 ++ .../seedu/duke/model/PortfolioManager.java | 7 ++++++ src/main/java/seedu/duke/parser/Parser.java | 22 +++++++++++++++++++ src/main/java/seedu/duke/ui/Ui.java | 11 +--------- 6 files changed, 65 insertions(+), 11 deletions(-) diff --git a/src/main/java/seedu/duke/command/SellCommand.java b/src/main/java/seedu/duke/command/SellCommand.java index cf9e1a76c7..2d5350ad9e 100644 --- a/src/main/java/seedu/duke/command/SellCommand.java +++ b/src/main/java/seedu/duke/command/SellCommand.java @@ -1,4 +1,19 @@ package seedu.duke.command; public class SellCommand extends Command { + private String symbol; + private int quantity; + + public SellCommand(String symbol, int quantity) { + this.symbol = symbol; + this.quantity = quantity; + } + + public String getSymbol() { + return symbol; + } + + public int getQuantity() { + return quantity; + } } diff --git a/src/main/java/seedu/duke/controller/Controller.java b/src/main/java/seedu/duke/controller/Controller.java index 84191e9d64..eab6b667df 100644 --- a/src/main/java/seedu/duke/controller/Controller.java +++ b/src/main/java/seedu/duke/controller/Controller.java @@ -5,6 +5,7 @@ import seedu.duke.command.*; import seedu.duke.data.exception.DukeException; import seedu.duke.model.PortfolioManager; +import seedu.duke.parser.Parser; import seedu.duke.ui.Ui; public class Controller { @@ -24,7 +25,19 @@ private void buyStock(String symbol, int quantity) { portfolioManager.buyStock(symbol, quantity, price); ui.printWithDivider("You have successfully purchased " - + quantity + " of " + symbol + " at " + price); + + quantity + " of " + symbol + " at " + price + "."); + } catch (DukeException e) { + ui.printWithDivider(e.getMessage()); + } + } + + private void sellStock(String symbol, int quantity) { + try { + double price = stockPriceFetcher.fetchLatestPrice(symbol); + portfolioManager.sellStock(symbol, quantity, price); + + ui.printWithDivider("You have successfully sold " + + quantity + " of " + symbol + " at " + price + "."); } catch (DukeException e) { ui.printWithDivider(e.getMessage()); } @@ -44,10 +57,14 @@ public void runApp() { InvalidCommand invalidCommand = (InvalidCommand) command; ui.printWithDivider(invalidCommand.getErrorMessage()); } else if (command instanceof ByeCommand) { + ui.printWithDivider("Goodbye!"); break; } else if (command instanceof BuyCommand) { BuyCommand buyCommand = (BuyCommand) command; buyStock(buyCommand.getSymbol(), buyCommand.getQuantity()); + } else if (command instanceof SellCommand) { + SellCommand sellCommand = (SellCommand) command; + sellStock(sellCommand.getSymbol(), sellCommand.getQuantity()); } else if (command instanceof ViewCommand) { viewPortfolio(); } diff --git a/src/main/java/seedu/duke/model/Portfolio.java b/src/main/java/seedu/duke/model/Portfolio.java index b0009ad607..54f6f9ae16 100644 --- a/src/main/java/seedu/duke/model/Portfolio.java +++ b/src/main/java/seedu/duke/model/Portfolio.java @@ -30,6 +30,8 @@ public void buyStock(String symbol, int quantity, double buyPrice) { public void sellStock(String symbol, int quantity, double sellPrice) throws DukeException { if (stocks.get(symbol) == null) { throw new DukeException("You do not own this stock!"); + } else if (stocks.get(symbol).getTotalQuantity() < quantity) { + throw new DukeException("You only own " + stocks.get(symbol).getTotalQuantity() + " of this stock!"); } Transaction transaction = new Transaction(TransactionType.SELL, quantity, sellPrice, LocalDateTime.now()); diff --git a/src/main/java/seedu/duke/model/PortfolioManager.java b/src/main/java/seedu/duke/model/PortfolioManager.java index 836f229003..7e495a5c11 100644 --- a/src/main/java/seedu/duke/model/PortfolioManager.java +++ b/src/main/java/seedu/duke/model/PortfolioManager.java @@ -1,6 +1,9 @@ package seedu.duke.model; +import seedu.duke.Duke; +import seedu.duke.data.exception.DukeException; + import java.util.ArrayList; public class PortfolioManager { @@ -16,6 +19,10 @@ public void buyStock(String symbol, int quantity, double buyPrice) { portfolio.buyStock(symbol, quantity, buyPrice); } + public void sellStock(String symbol, int quantity, double sellPrice) throws DukeException { + portfolio.sellStock(symbol, quantity, sellPrice); + } + public ArrayList getAllStocks() { return portfolio.getAllStocks(); } diff --git a/src/main/java/seedu/duke/parser/Parser.java b/src/main/java/seedu/duke/parser/Parser.java index e94716ccf1..29aadf421b 100644 --- a/src/main/java/seedu/duke/parser/Parser.java +++ b/src/main/java/seedu/duke/parser/Parser.java @@ -25,6 +25,12 @@ public static Command parseCommand(String userInput) { } catch (DukeException e) { return new InvalidCommand(e.getMessage()); } + case "sell": + try { + return parseSell(userInputSplit); + } catch (DukeException e) { + return new InvalidCommand(e.getMessage()); + } case "bye": return new ByeCommand(); case "view": @@ -50,6 +56,22 @@ public static Command parseBuy(String[] userInputSplit) throws DukeException { } } + public static Command parseSell(String[] userInputSplit) throws DukeException { + try { + if (!userInputSplit[1].startsWith("/")) { + throw new DukeException("Please enter the ticker symbol of the company that you want to buy!"); + } + int quantity = Integer.parseInt(userInputSplit[2]); + String symbol = userInputSplit[1].substring(1); + SellCommand sellCommand = new SellCommand(symbol, quantity); + return sellCommand; + } catch (IndexOutOfBoundsException e) { + throw new DukeException("Please enter a valid integer for the quantity of stocks that you want to sell!"); + } catch (NumberFormatException e) { + throw new DukeException("Please enter a valid integer for the quantity of stocks that you want to sell!"); + } + } + public static Command parseSearch(String[] userInputSplit) throws DukeException { try { if (!userInputSplit[1].startsWith("/")) { diff --git a/src/main/java/seedu/duke/ui/Ui.java b/src/main/java/seedu/duke/ui/Ui.java index 38e2fee492..a4484aa2ae 100644 --- a/src/main/java/seedu/duke/ui/Ui.java +++ b/src/main/java/seedu/duke/ui/Ui.java @@ -48,6 +48,7 @@ public void view(ArrayList stocks) { print("\t" + t.toString()); } } + print(dividerLine); } public void printStocks(ArrayList stocks) { @@ -58,14 +59,4 @@ public void printStocks(ArrayList stocks) { printWithDivider(stockNames); } - public void showErrorMessage(String message) { - System.out.println(message); - } - - public boolean sayBye(String userInput) { - if (userInput.contains("bye")) { - return true; - } - return false; - } } From 2c18fc69cbe894443489fe05112eb74da83527e2 Mon Sep 17 00:00:00 2001 From: wly99 <34613421+wly99@users.noreply.github.com> Date: Tue, 13 Oct 2020 19:01:02 +0800 Subject: [PATCH 018/136] Update UserGuide.md --- docs/UserGuide.md | 25 +++++++++++++++---------- 1 file changed, 15 insertions(+), 10 deletions(-) diff --git a/docs/UserGuide.md b/docs/UserGuide.md index abd9fbe891..bc2790ba01 100644 --- a/docs/UserGuide.md +++ b/docs/UserGuide.md @@ -2,7 +2,7 @@ ## Introduction -{Give a product intro} +Duke is a command line trading simulator that lets you try your hand at trading stocks with no risk! ## Quick Start @@ -14,29 +14,34 @@ ## Features {Give detailed description of each feature} +Buy +Sell +Search +View portfolio -### Adding a todo: `todo` -Adds a new item to the list of todo items. +### Buying a stock: `buy /aapl` +Buys the specified stock -Format: `todo n/TODO_NAME d/DEADLINE` +Format: `buy /STOCK_TICKER` -* The `DEADLINE` can be in a natural language format. -* The `TODO_NAME` cannot contain punctuation. +* The `STOCK_TICKER` is the stock's short form Example of usage: -`todo n/Write the rest of the User Guide d/next week` +`buy /fb` -`todo n/Refactor the User Guide to remove passive voice d/13/04/2020` +`buy /tsla` ## FAQ **Q**: How do I transfer my data to another computer? -**A**: {your answer here} +**A**: Just copy the txt file over. ## Command Summary {Give a 'cheat sheet' of commands here} -* Add todo `todo n/TODO_NAME d/DEADLINE` +* Buy a stock `buy /aapl` +* Sell a stock `sell /aapl` +* Search for a stock's info `search /aapl` From 124dab7a98f2c4c2f79d9625df1441276630234c Mon Sep 17 00:00:00 2001 From: yokemin Date: Tue, 13 Oct 2020 19:04:52 +0800 Subject: [PATCH 019/136] Edit error messages --- src/main/java/seedu/duke/api/StockPriceFetcher.java | 2 +- src/main/java/seedu/duke/model/Portfolio.java | 1 - src/main/java/seedu/duke/model/PortfolioManager.java | 1 - src/main/java/seedu/duke/model/Stock.java | 1 - src/main/java/seedu/duke/parser/Parser.java | 6 ++---- src/main/java/seedu/duke/ui/Ui.java | 4 +++- 6 files changed, 6 insertions(+), 9 deletions(-) diff --git a/src/main/java/seedu/duke/api/StockPriceFetcher.java b/src/main/java/seedu/duke/api/StockPriceFetcher.java index 51ff7ee4a1..4d405f4ba0 100644 --- a/src/main/java/seedu/duke/api/StockPriceFetcher.java +++ b/src/main/java/seedu/duke/api/StockPriceFetcher.java @@ -36,7 +36,7 @@ public StockData fetchLatestStockData(String symbol) throws DukeException { return stockData.get(0); } catch (AlphaVantageException e) { - throw new DukeException("Failed to retrieve price! Please try again later."); + throw new DukeException("Failed to retrieve price! There is either no such stock or prices are currently unavailable for this stock. Please try again."); } } diff --git a/src/main/java/seedu/duke/model/Portfolio.java b/src/main/java/seedu/duke/model/Portfolio.java index 54f6f9ae16..869d047e01 100644 --- a/src/main/java/seedu/duke/model/Portfolio.java +++ b/src/main/java/seedu/duke/model/Portfolio.java @@ -6,7 +6,6 @@ import java.time.LocalDateTime; import java.util.ArrayList; import java.util.HashMap; -import java.util.Map; public class Portfolio implements Serializable { HashMap stocks; diff --git a/src/main/java/seedu/duke/model/PortfolioManager.java b/src/main/java/seedu/duke/model/PortfolioManager.java index 7e495a5c11..f06c8e9d5d 100644 --- a/src/main/java/seedu/duke/model/PortfolioManager.java +++ b/src/main/java/seedu/duke/model/PortfolioManager.java @@ -1,7 +1,6 @@ package seedu.duke.model; -import seedu.duke.Duke; import seedu.duke.data.exception.DukeException; import java.util.ArrayList; diff --git a/src/main/java/seedu/duke/model/Stock.java b/src/main/java/seedu/duke/model/Stock.java index 46054cd3bf..dd60b94104 100644 --- a/src/main/java/seedu/duke/model/Stock.java +++ b/src/main/java/seedu/duke/model/Stock.java @@ -1,7 +1,6 @@ package seedu.duke.model; import java.io.Serializable; -import java.time.LocalDateTime; import java.util.ArrayList; public class Stock implements Serializable { diff --git a/src/main/java/seedu/duke/parser/Parser.java b/src/main/java/seedu/duke/parser/Parser.java index 29aadf421b..1f1cd95b39 100644 --- a/src/main/java/seedu/duke/parser/Parser.java +++ b/src/main/java/seedu/duke/parser/Parser.java @@ -1,10 +1,8 @@ package seedu.duke.parser; -import seedu.duke.Duke; import seedu.duke.command.*; import seedu.duke.data.exception.DukeException; -import javax.swing.text.View; public class Parser { @@ -50,7 +48,7 @@ public static Command parseBuy(String[] userInputSplit) throws DukeException { BuyCommand buyCommand = new BuyCommand(symbol, quantity); return buyCommand; } catch (IndexOutOfBoundsException e) { - throw new DukeException(("Please enter the ticker symbol of the company that you want to buy!")); + throw new DukeException(("Wrong input format! E.g. buy /MSFT 11")); } catch (NumberFormatException e) { throw new DukeException("Please enter a valid integer for the quantity of stocks that you want to buy!"); } @@ -66,7 +64,7 @@ public static Command parseSell(String[] userInputSplit) throws DukeException { SellCommand sellCommand = new SellCommand(symbol, quantity); return sellCommand; } catch (IndexOutOfBoundsException e) { - throw new DukeException("Please enter a valid integer for the quantity of stocks that you want to sell!"); + throw new DukeException("Wrong input format! E.g. sell /MSFT 11"); } catch (NumberFormatException e) { throw new DukeException("Please enter a valid integer for the quantity of stocks that you want to sell!"); } diff --git a/src/main/java/seedu/duke/ui/Ui.java b/src/main/java/seedu/duke/ui/Ui.java index a4484aa2ae..37653255ca 100644 --- a/src/main/java/seedu/duke/ui/Ui.java +++ b/src/main/java/seedu/duke/ui/Ui.java @@ -1,6 +1,5 @@ package seedu.duke.ui; -import seedu.duke.model.Portfolio; import seedu.duke.model.Stock; import seedu.duke.model.Transaction; @@ -42,6 +41,9 @@ public String getUserInput() { public void view(ArrayList stocks) { print(dividerLine); + if (stocks.size() == 0) { + print("You currently have an empty portfolio. Try buying a stock!"); + } for (int i = 0; i < stocks.size(); i++) { print((i+1) + ". " + stocks.get(i).toString()); for (Transaction t: stocks.get(i).getTransactions()) { From 323d3c3a35275b2d464c728d18c485ad2cff6a36 Mon Sep 17 00:00:00 2001 From: wly99 <34613421+wly99@users.noreply.github.com> Date: Tue, 13 Oct 2020 19:05:41 +0800 Subject: [PATCH 020/136] Update UserGuide.md --- docs/UserGuide.md | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/docs/UserGuide.md b/docs/UserGuide.md index bc2790ba01..2618f71b42 100644 --- a/docs/UserGuide.md +++ b/docs/UserGuide.md @@ -13,12 +13,6 @@ Duke is a command line trading simulator that lets you try your hand at trading ## Features -{Give detailed description of each feature} -Buy -Sell -Search -View portfolio - ### Buying a stock: `buy /aapl` Buys the specified stock @@ -32,6 +26,18 @@ Example of usage: `buy /tsla` +### Selling a stock: `sell /aapl` +Sells the specified stock + +Format: `sell /STOCK_TICKER` + +* The `STOCK_TICKER` is the stock's short form + +Example of usage: + +`sell /goog` + +`sell /amzn` ## FAQ **Q**: How do I transfer my data to another computer? From 4c0366a718c620b619d0daa9d7277bdcbb9a8e7e Mon Sep 17 00:00:00 2001 From: wly99 <34613421+wly99@users.noreply.github.com> Date: Tue, 13 Oct 2020 19:07:18 +0800 Subject: [PATCH 021/136] Update UserGuide.md --- docs/UserGuide.md | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/docs/UserGuide.md b/docs/UserGuide.md index 2618f71b42..a64038f5ea 100644 --- a/docs/UserGuide.md +++ b/docs/UserGuide.md @@ -38,6 +38,20 @@ Example of usage: `sell /goog` `sell /amzn` + +### Searching for info about a stock: `search /aapl` +Shows information about a stock like price and volume + +Format: `search /STOCK_TICKER` + +* The `STOCK_TICKER` is the stock's short form + +Example of usage: + +`search /nflx` + +`search /shop` + ## FAQ **Q**: How do I transfer my data to another computer? From ea38ff56f3ee8e69438f05332fd53203a81bdd0e Mon Sep 17 00:00:00 2001 From: wly99 <34613421+wly99@users.noreply.github.com> Date: Tue, 13 Oct 2020 19:08:14 +0800 Subject: [PATCH 022/136] Update UserGuide.md --- docs/UserGuide.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/UserGuide.md b/docs/UserGuide.md index a64038f5ea..97e79bed62 100644 --- a/docs/UserGuide.md +++ b/docs/UserGuide.md @@ -14,7 +14,7 @@ Duke is a command line trading simulator that lets you try your hand at trading ## Features ### Buying a stock: `buy /aapl` -Buys the specified stock +Buys the specified stock at market price Format: `buy /STOCK_TICKER` @@ -27,7 +27,7 @@ Example of usage: `buy /tsla` ### Selling a stock: `sell /aapl` -Sells the specified stock +Sells the specified stock at market price Format: `sell /STOCK_TICKER` From 7dc7e4bd639841eeaabf7ab27aa62bf318bb851e Mon Sep 17 00:00:00 2001 From: yokemin Date: Tue, 13 Oct 2020 19:13:17 +0800 Subject: [PATCH 023/136] Edit text-ui-test files --- src/main/java/seedu/duke/ui/Ui.java | 10 +++++----- text-ui-test/EXPECTED.TXT | 6 +++++- text-ui-test/input.txt | 2 ++ 3 files changed, 12 insertions(+), 6 deletions(-) diff --git a/src/main/java/seedu/duke/ui/Ui.java b/src/main/java/seedu/duke/ui/Ui.java index 37653255ca..a6dcd83ab4 100644 --- a/src/main/java/seedu/duke/ui/Ui.java +++ b/src/main/java/seedu/duke/ui/Ui.java @@ -8,12 +8,12 @@ public class Ui { private final String dividerLine = "____________________________________________________________"; - private final String logo = "__________ ___________ .___ \n" - + "\\______ \\_____ ______ ___________ \\__ ___/___________ __| _/____ \n" - + " | ___/\\__ \\ \\____ \\_/ __ \\_ __ \\ | | \\_ __ \\__ \\ / __ |/ __ \\ \n" - + " | | / __ \\| |_> > ___/| | \\/ | | | | \\// __ \\_/ /_/ \\ ___/ \n" + private final String logo = "__________ ___________ .___\n" + + "\\______ \\_____ ______ ___________ \\__ ___/___________ __| _/____\n" + + " | ___/\\__ \\ \\____ \\_/ __ \\_ __ \\ | | \\_ __ \\__ \\ / __ |/ __ \\\n" + + " | | / __ \\| |_> > ___/| | \\/ | | | | \\// __ \\_/ /_/ \\ ___/\n" + " |____| (____ / __/ \\___ >__| |____| |__| (____ /\\____ |\\___ >\n" - + " \\/|__| \\/ \\/ \\/ \\/ "; + + " \\/|__| \\/ \\/ \\/ \\/"; public void greetUser() { print(logo); diff --git a/text-ui-test/EXPECTED.TXT b/text-ui-test/EXPECTED.TXT index d90844ae14..b2ffedcee0 100644 --- a/text-ui-test/EXPECTED.TXT +++ b/text-ui-test/EXPECTED.TXT @@ -7,4 +7,8 @@ __________ ___________ .___ ____________________________________________________________ Welcome to the Command Line Paper Trading App! ____________________________________________________________ -What would you like to do today? \ No newline at end of file +What would you like to do today? +____________________________________________________________ +You currently have an empty portfolio. Try buying a stock! +____________________________________________________________ +What would you like to do today? diff --git a/text-ui-test/input.txt b/text-ui-test/input.txt index e69de29bb2..a9d4eb3811 100644 --- a/text-ui-test/input.txt +++ b/text-ui-test/input.txt @@ -0,0 +1,2 @@ +view +bye \ No newline at end of file From 45769d26815229cf409d0f4644a7f8922f2c5f18 Mon Sep 17 00:00:00 2001 From: wly99 Date: Tue, 13 Oct 2020 19:22:02 +0800 Subject: [PATCH 024/136] Update SellCommand class --- .../java/seedu/duke/command/SellCommand.java | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/src/main/java/seedu/duke/command/SellCommand.java b/src/main/java/seedu/duke/command/SellCommand.java index cf9e1a76c7..840450e5ae 100644 --- a/src/main/java/seedu/duke/command/SellCommand.java +++ b/src/main/java/seedu/duke/command/SellCommand.java @@ -1,4 +1,20 @@ package seedu.duke.command; public class SellCommand extends Command { + + private String symbol; + private int quantity; + + public SellCommand(String symbol, int quantity) { + this.symbol = symbol; + this.quantity = quantity; + } + + public String getSymbol() { + return symbol; + } + + public int getQuantity() { + return quantity; + } } From ec549d12f5d96517fd18fa589d48b9cd170b3fdf Mon Sep 17 00:00:00 2001 From: yokemin Date: Tue, 13 Oct 2020 19:23:38 +0800 Subject: [PATCH 025/136] Edit code to fit coding standards --- src/main/java/seedu/duke/api/StockPriceFetcher.java | 2 +- src/main/java/seedu/duke/controller/Controller.java | 9 ++++++++- src/main/java/seedu/duke/model/Stock.java | 2 ++ src/main/java/seedu/duke/parser/Parser.java | 8 +++++++- src/main/java/seedu/duke/ui/Ui.java | 4 ++-- 5 files changed, 20 insertions(+), 5 deletions(-) diff --git a/src/main/java/seedu/duke/api/StockPriceFetcher.java b/src/main/java/seedu/duke/api/StockPriceFetcher.java index 4d405f4ba0..2a79c39377 100644 --- a/src/main/java/seedu/duke/api/StockPriceFetcher.java +++ b/src/main/java/seedu/duke/api/StockPriceFetcher.java @@ -36,7 +36,7 @@ public StockData fetchLatestStockData(String symbol) throws DukeException { return stockData.get(0); } catch (AlphaVantageException e) { - throw new DukeException("Failed to retrieve price! There is either no such stock or prices are currently unavailable for this stock. Please try again."); + throw new DukeException("Failed to retrieve price! Please try again."); } } diff --git a/src/main/java/seedu/duke/controller/Controller.java b/src/main/java/seedu/duke/controller/Controller.java index eab6b667df..693433ac14 100644 --- a/src/main/java/seedu/duke/controller/Controller.java +++ b/src/main/java/seedu/duke/controller/Controller.java @@ -2,7 +2,14 @@ import org.patriques.output.timeseries.data.StockData; import seedu.duke.api.StockPriceFetcher; -import seedu.duke.command.*; + +import seedu.duke.command.ByeCommand; +import seedu.duke.command.Command; +import seedu.duke.command.InvalidCommand; +import seedu.duke.command.SearchCommand; +import seedu.duke.command.BuyCommand; +import seedu.duke.command.SellCommand; +import seedu.duke.command.ViewCommand; import seedu.duke.data.exception.DukeException; import seedu.duke.model.PortfolioManager; import seedu.duke.parser.Parser; diff --git a/src/main/java/seedu/duke/model/Stock.java b/src/main/java/seedu/duke/model/Stock.java index dd60b94104..4621d7d871 100644 --- a/src/main/java/seedu/duke/model/Stock.java +++ b/src/main/java/seedu/duke/model/Stock.java @@ -21,6 +21,8 @@ public void addTransaction(Transaction transaction) { case SELL: totalQuantity -= transaction.getQuantity(); break; + default: + break; } transactions.add(transaction); diff --git a/src/main/java/seedu/duke/parser/Parser.java b/src/main/java/seedu/duke/parser/Parser.java index 1f1cd95b39..848a03f704 100644 --- a/src/main/java/seedu/duke/parser/Parser.java +++ b/src/main/java/seedu/duke/parser/Parser.java @@ -1,6 +1,12 @@ package seedu.duke.parser; -import seedu.duke.command.*; +import seedu.duke.command.ByeCommand; +import seedu.duke.command.Command; +import seedu.duke.command.InvalidCommand; +import seedu.duke.command.SearchCommand; +import seedu.duke.command.BuyCommand; +import seedu.duke.command.SellCommand; +import seedu.duke.command.ViewCommand; import seedu.duke.data.exception.DukeException; diff --git a/src/main/java/seedu/duke/ui/Ui.java b/src/main/java/seedu/duke/ui/Ui.java index a6dcd83ab4..16321aa3e3 100644 --- a/src/main/java/seedu/duke/ui/Ui.java +++ b/src/main/java/seedu/duke/ui/Ui.java @@ -45,7 +45,7 @@ public void view(ArrayList stocks) { print("You currently have an empty portfolio. Try buying a stock!"); } for (int i = 0; i < stocks.size(); i++) { - print((i+1) + ". " + stocks.get(i).toString()); + print((i + 1) + ". " + stocks.get(i).toString()); for (Transaction t: stocks.get(i).getTransactions()) { print("\t" + t.toString()); } @@ -56,7 +56,7 @@ public void view(ArrayList stocks) { public void printStocks(ArrayList stocks) { String[] stockNames = new String[stocks.size()]; for (int i = 0; i < stocks.size(); i++) { - stockNames[i] = (i+1) + ". " + stocks.get(i).toString(); + stockNames[i] = (i + 1) + ". " + stocks.get(i).toString(); } printWithDivider(stockNames); } From bec7cbdf744c27ebff76b7f14fe83242702871bd Mon Sep 17 00:00:00 2001 From: yokemin Date: Tue, 13 Oct 2020 19:29:11 +0800 Subject: [PATCH 026/136] Edit code to follow coding standards --- src/main/java/seedu/duke/model/Transaction.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/main/java/seedu/duke/model/Transaction.java b/src/main/java/seedu/duke/model/Transaction.java index 1d25af6244..c2bab5d4b3 100644 --- a/src/main/java/seedu/duke/model/Transaction.java +++ b/src/main/java/seedu/duke/model/Transaction.java @@ -8,11 +8,11 @@ public class Transaction { private double unitPrice; LocalDateTime dateTimeOfTransaction; - public Transaction(TransactionType transactionType, int quantity, double unitPrice, LocalDateTime dateTimeOfTransaction) { - this.transactionType = transactionType; + public Transaction(TransactionType transType, int quantity, double unitPrice, LocalDateTime dateTime) { + this.transactionType = transType; this.quantity = quantity; this.unitPrice = unitPrice; - this.dateTimeOfTransaction = dateTimeOfTransaction; + this.dateTimeOfTransaction = dateTime; } public int getQuantity() { From b97556f33c3ea9afbb7a9e44164b943f15ddcdda Mon Sep 17 00:00:00 2001 From: yokemin Date: Tue, 13 Oct 2020 19:29:58 +0800 Subject: [PATCH 027/136] Revert "Edit code to follow coding standards" This reverts commit bec7cbdf744c27ebff76b7f14fe83242702871bd. --- src/main/java/seedu/duke/model/Transaction.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/main/java/seedu/duke/model/Transaction.java b/src/main/java/seedu/duke/model/Transaction.java index c2bab5d4b3..1d25af6244 100644 --- a/src/main/java/seedu/duke/model/Transaction.java +++ b/src/main/java/seedu/duke/model/Transaction.java @@ -8,11 +8,11 @@ public class Transaction { private double unitPrice; LocalDateTime dateTimeOfTransaction; - public Transaction(TransactionType transType, int quantity, double unitPrice, LocalDateTime dateTime) { - this.transactionType = transType; + public Transaction(TransactionType transactionType, int quantity, double unitPrice, LocalDateTime dateTimeOfTransaction) { + this.transactionType = transactionType; this.quantity = quantity; this.unitPrice = unitPrice; - this.dateTimeOfTransaction = dateTime; + this.dateTimeOfTransaction = dateTimeOfTransaction; } public int getQuantity() { From 4beafe3518025f827f4e4c8e228d1bb5b184c4df Mon Sep 17 00:00:00 2001 From: yokemin Date: Tue, 13 Oct 2020 19:31:40 +0800 Subject: [PATCH 028/136] Edit code to follow coding standards --- src/main/java/seedu/duke/model/Transaction.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/main/java/seedu/duke/model/Transaction.java b/src/main/java/seedu/duke/model/Transaction.java index 1d25af6244..c2bab5d4b3 100644 --- a/src/main/java/seedu/duke/model/Transaction.java +++ b/src/main/java/seedu/duke/model/Transaction.java @@ -8,11 +8,11 @@ public class Transaction { private double unitPrice; LocalDateTime dateTimeOfTransaction; - public Transaction(TransactionType transactionType, int quantity, double unitPrice, LocalDateTime dateTimeOfTransaction) { - this.transactionType = transactionType; + public Transaction(TransactionType transType, int quantity, double unitPrice, LocalDateTime dateTime) { + this.transactionType = transType; this.quantity = quantity; this.unitPrice = unitPrice; - this.dateTimeOfTransaction = dateTimeOfTransaction; + this.dateTimeOfTransaction = dateTime; } public int getQuantity() { From db777a88d17cd4d16b82bde2465621b8928dde6e Mon Sep 17 00:00:00 2001 From: yokemin Date: Tue, 13 Oct 2020 23:01:45 +0800 Subject: [PATCH 029/136] Write Junit tests for sellStock method in Portfolio class --- .../java/seedu/duke/model/PortfolioTest.java | 41 +++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 src/test/java/seedu/duke/model/PortfolioTest.java diff --git a/src/test/java/seedu/duke/model/PortfolioTest.java b/src/test/java/seedu/duke/model/PortfolioTest.java new file mode 100644 index 0000000000..92b053c37a --- /dev/null +++ b/src/test/java/seedu/duke/model/PortfolioTest.java @@ -0,0 +1,41 @@ +package seedu.duke.model; + +import org.junit.jupiter.api.Test; +import seedu.duke.api.StockPriceFetcher; +import seedu.duke.data.exception.DukeException; + +import static org.junit.jupiter.api.Assertions.assertThrows; + +class PortfolioTest { + + @Test + void sellStock_invalidStock_expectException() { + Portfolio portfolio = new Portfolio(); + StockPriceFetcher stockPriceFetcher = new StockPriceFetcher(); + String symbol = "abcdefg"; + int quantity = 1; + // Use a lambda + assertThrows(DukeException.class, () -> + { + portfolio.sellStock(symbol, quantity, stockPriceFetcher.fetchLatestPrice(symbol)); + }); + } + + @Test + void sellStock_higherQuantityThanBought_expectException() { + Portfolio portfolio = new Portfolio(); + StockPriceFetcher stockPriceFetcher = new StockPriceFetcher(); + String symbol = "aapl"; + int buyQuantity = 1; + int sellQuantity = 2; + + // Use a lambda + assertThrows(DukeException.class, () -> + { + // buy 1 aapl stock + portfolio.buyStock(symbol, buyQuantity, stockPriceFetcher.fetchLatestPrice(symbol)); + // attempt to sell 2 aapl stock + portfolio.sellStock(symbol, sellQuantity, stockPriceFetcher.fetchLatestPrice(symbol)); + }); + } +} From a5bdd297f822fe6f4403d00cf70e9b38fa8927a9 Mon Sep 17 00:00:00 2001 From: yokemin Date: Tue, 13 Oct 2020 23:05:25 +0800 Subject: [PATCH 030/136] Move "{" to meet code style requirements --- src/test/java/seedu/duke/model/PortfolioTest.java | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/src/test/java/seedu/duke/model/PortfolioTest.java b/src/test/java/seedu/duke/model/PortfolioTest.java index 92b053c37a..90dcf353e9 100644 --- a/src/test/java/seedu/duke/model/PortfolioTest.java +++ b/src/test/java/seedu/duke/model/PortfolioTest.java @@ -15,8 +15,7 @@ void sellStock_invalidStock_expectException() { String symbol = "abcdefg"; int quantity = 1; // Use a lambda - assertThrows(DukeException.class, () -> - { + assertThrows(DukeException.class, () -> { portfolio.sellStock(symbol, quantity, stockPriceFetcher.fetchLatestPrice(symbol)); }); } @@ -30,8 +29,7 @@ void sellStock_higherQuantityThanBought_expectException() { int sellQuantity = 2; // Use a lambda - assertThrows(DukeException.class, () -> - { + assertThrows(DukeException.class, () -> { // buy 1 aapl stock portfolio.buyStock(symbol, buyQuantity, stockPriceFetcher.fetchLatestPrice(symbol)); // attempt to sell 2 aapl stock From 2c4cf6d82f1020e448b9900954767cf0e02f1b07 Mon Sep 17 00:00:00 2001 From: "LAPTOP-033RJKGR\\jings" Date: Wed, 14 Oct 2020 01:47:49 +0800 Subject: [PATCH 031/136] Wallet --- .../seedu/duke/command/WalletCommand.java | 4 ++++ .../seedu/duke/controller/Controller.java | 23 +++++++++++++++++++ src/main/java/seedu/duke/model/Portfolio.java | 1 + .../seedu/duke/model/PortfolioManager.java | 1 + src/main/java/seedu/duke/model/Wallet.java | 17 ++++++++++++++ src/main/java/seedu/duke/parser/Parser.java | 3 +++ src/main/java/seedu/duke/ui/Ui.java | 13 +++++++++++ 7 files changed, 62 insertions(+) create mode 100644 src/main/java/seedu/duke/command/WalletCommand.java create mode 100644 src/main/java/seedu/duke/model/Wallet.java diff --git a/src/main/java/seedu/duke/command/WalletCommand.java b/src/main/java/seedu/duke/command/WalletCommand.java new file mode 100644 index 0000000000..fc8ef67501 --- /dev/null +++ b/src/main/java/seedu/duke/command/WalletCommand.java @@ -0,0 +1,4 @@ +package seedu.duke.command; + +public class WalletCommand extends Command { +} diff --git a/src/main/java/seedu/duke/controller/Controller.java b/src/main/java/seedu/duke/controller/Controller.java index 693433ac14..7271374b44 100644 --- a/src/main/java/seedu/duke/controller/Controller.java +++ b/src/main/java/seedu/duke/controller/Controller.java @@ -10,8 +10,11 @@ import seedu.duke.command.BuyCommand; import seedu.duke.command.SellCommand; import seedu.duke.command.ViewCommand; +import seedu.duke.command.WalletCommand; import seedu.duke.data.exception.DukeException; import seedu.duke.model.PortfolioManager; +import seedu.duke.model.Wallet; +import seedu.duke.model.Stock; import seedu.duke.parser.Parser; import seedu.duke.ui.Ui; @@ -19,20 +22,24 @@ public class Controller { private Ui ui; private StockPriceFetcher stockPriceFetcher; private PortfolioManager portfolioManager; + private Wallet wallet; public Controller() { ui = new Ui(); stockPriceFetcher = new StockPriceFetcher(); portfolioManager = new PortfolioManager(); + wallet = new Wallet(); } private void buyStock(String symbol, int quantity) { try { double price = stockPriceFetcher.fetchLatestPrice(symbol); portfolioManager.buyStock(symbol, quantity, price); + wallet.buyStock(quantity, price); ui.printWithDivider("You have successfully purchased " + quantity + " of " + symbol + " at " + price + "."); + ui.printWithDivider("You currently have $" + String.format("%.02f", wallet.getAmount()) + " in your wallet."); } catch (DukeException e) { ui.printWithDivider(e.getMessage()); } @@ -42,9 +49,11 @@ private void sellStock(String symbol, int quantity) { try { double price = stockPriceFetcher.fetchLatestPrice(symbol); portfolioManager.sellStock(symbol, quantity, price); + wallet.sellStock(quantity, price); ui.printWithDivider("You have successfully sold " + quantity + " of " + symbol + " at " + price + "."); + ui.printWithDivider("You currently have $" + String.format("%.02f", wallet.getAmount()) + " in your wallet."); } catch (DukeException e) { ui.printWithDivider(e.getMessage()); } @@ -74,6 +83,8 @@ public void runApp() { sellStock(sellCommand.getSymbol(), sellCommand.getQuantity()); } else if (command instanceof ViewCommand) { viewPortfolio(); + } else if (command instanceof WalletCommand) { + viewWallet(); } } } @@ -82,6 +93,18 @@ public void viewPortfolio() { ui.view(portfolioManager.getAllStocks()); } + public void viewWallet() { + double amount = 0.00; + for (Stock stock: portfolioManager.getAllStocks()){ + try { + amount += (stockPriceFetcher.fetchLatestPrice(stock.getSymbol())) * stock.getTotalQuantity(); + } catch (DukeException e) { + ui.printWithDivider(e.getMessage()); + } + } + ui.viewWallet(wallet.getAmount(), amount); + } + public void searchSymbol(String symbol) { try { StockData stockData = stockPriceFetcher.fetchLatestStockData(symbol); diff --git a/src/main/java/seedu/duke/model/Portfolio.java b/src/main/java/seedu/duke/model/Portfolio.java index 869d047e01..2c9fd49401 100644 --- a/src/main/java/seedu/duke/model/Portfolio.java +++ b/src/main/java/seedu/duke/model/Portfolio.java @@ -46,4 +46,5 @@ public ArrayList getAllStocks() { return stocksArrayList; } + } diff --git a/src/main/java/seedu/duke/model/PortfolioManager.java b/src/main/java/seedu/duke/model/PortfolioManager.java index f06c8e9d5d..906e00b0ac 100644 --- a/src/main/java/seedu/duke/model/PortfolioManager.java +++ b/src/main/java/seedu/duke/model/PortfolioManager.java @@ -1,6 +1,7 @@ package seedu.duke.model; +import seedu.duke.api.StockPriceFetcher; import seedu.duke.data.exception.DukeException; import java.util.ArrayList; diff --git a/src/main/java/seedu/duke/model/Wallet.java b/src/main/java/seedu/duke/model/Wallet.java new file mode 100644 index 0000000000..163eb15dff --- /dev/null +++ b/src/main/java/seedu/duke/model/Wallet.java @@ -0,0 +1,17 @@ +package seedu.duke.model; + +public class Wallet { + private double amount; + + public Wallet() { + amount = 10000.00; + } + + public double getAmount(){ + return this.amount; + } + + public void sellStock(int quantity, double price) { this.amount = this.amount + price * quantity; } + + public void buyStock(int quantity, double price) { this.amount = this.amount - (price * quantity); } +} diff --git a/src/main/java/seedu/duke/parser/Parser.java b/src/main/java/seedu/duke/parser/Parser.java index 848a03f704..51a7468fb2 100644 --- a/src/main/java/seedu/duke/parser/Parser.java +++ b/src/main/java/seedu/duke/parser/Parser.java @@ -7,6 +7,7 @@ import seedu.duke.command.BuyCommand; import seedu.duke.command.SellCommand; import seedu.duke.command.ViewCommand; +import seedu.duke.command.WalletCommand; import seedu.duke.data.exception.DukeException; @@ -39,6 +40,8 @@ public static Command parseCommand(String userInput) { return new ByeCommand(); case "view": return new ViewCommand(); + case "wallet": + return new WalletCommand(); default: return new InvalidCommand("Invalid command! Please try again."); } diff --git a/src/main/java/seedu/duke/ui/Ui.java b/src/main/java/seedu/duke/ui/Ui.java index 16321aa3e3..a5a64e5184 100644 --- a/src/main/java/seedu/duke/ui/Ui.java +++ b/src/main/java/seedu/duke/ui/Ui.java @@ -53,6 +53,19 @@ public void view(ArrayList stocks) { print(dividerLine); } + public void viewWallet(double amount, double allStocksPrice){ + print(dividerLine); + System.out.println("You currently have $" + String.format("%.02f", amount) + " in your wallet."); + System.out.println("Allocated: $" + String.format("%.02f", allStocksPrice)); + double difference = (amount + allStocksPrice) - 10000; + if (difference >= 0) { + System.out.println("Profit of: +$" + String.format("%.02f", difference)); + } else { + System.out.println("Loss of : -$" + String.format("%.02f", Math.abs(difference))); + } + print(dividerLine); + } + public void printStocks(ArrayList stocks) { String[] stockNames = new String[stocks.size()]; for (int i = 0; i < stocks.size(); i++) { From 9fc7d30feb8f123f0bba151ff8a006db64b572d2 Mon Sep 17 00:00:00 2001 From: "LAPTOP-POOFUI22\\User" Date: Wed, 14 Oct 2020 11:36:15 +0800 Subject: [PATCH 032/136] Update view to include individual stock profit/loss tracking --- src/main/java/seedu/duke/model/Stock.java | 20 ++++++++++++++++++- .../java/seedu/duke/model/Transaction.java | 3 +++ src/main/java/seedu/duke/parser/Parser.java | 6 ++++++ src/main/java/seedu/duke/ui/Ui.java | 15 +++++++++++++- 4 files changed, 42 insertions(+), 2 deletions(-) diff --git a/src/main/java/seedu/duke/model/Stock.java b/src/main/java/seedu/duke/model/Stock.java index 4621d7d871..264bd2d52f 100644 --- a/src/main/java/seedu/duke/model/Stock.java +++ b/src/main/java/seedu/duke/model/Stock.java @@ -1,5 +1,9 @@ package seedu.duke.model; +import seedu.duke.api.StockPriceFetcher; +import seedu.duke.data.exception.DukeException; +import seedu.duke.ui.Ui; + import java.io.Serializable; import java.util.ArrayList; @@ -40,8 +44,22 @@ public int getTotalQuantity() { return totalQuantity; } + public double getLatestPrice(){ + StockPriceFetcher stockPriceFetcher = new StockPriceFetcher(); + Ui ui = new Ui(); + + try{ + double price = stockPriceFetcher.fetchLatestPrice(getSymbol()); + return price; + }catch (DukeException e) { + ui.print(e.getMessage()); + return 0; + } + } + @Override public String toString() { - return "Symbol: " + getSymbol() + ", total quantity: " + getTotalQuantity(); + return "Symbol: " + getSymbol() + ", total quantity: " + getTotalQuantity() + ", Current Price: " + + getLatestPrice(); } } diff --git a/src/main/java/seedu/duke/model/Transaction.java b/src/main/java/seedu/duke/model/Transaction.java index c2bab5d4b3..fad61a34c2 100644 --- a/src/main/java/seedu/duke/model/Transaction.java +++ b/src/main/java/seedu/duke/model/Transaction.java @@ -19,6 +19,9 @@ public int getQuantity() { return quantity; } + public double getUnitPrice(){ + return unitPrice; + } public TransactionType getTransactionType() { return transactionType; } diff --git a/src/main/java/seedu/duke/parser/Parser.java b/src/main/java/seedu/duke/parser/Parser.java index 848a03f704..e7357290b9 100644 --- a/src/main/java/seedu/duke/parser/Parser.java +++ b/src/main/java/seedu/duke/parser/Parser.java @@ -90,4 +90,10 @@ public static Command parseSearch(String[] userInputSplit) throws DukeException return searchCommand; } + public static double parsePrice(double price){ + String strPrice = String.format("%.2f", price); + double formattedPrice = Double.parseDouble(strPrice); + return formattedPrice; + } + } diff --git a/src/main/java/seedu/duke/ui/Ui.java b/src/main/java/seedu/duke/ui/Ui.java index 16321aa3e3..3efa0d9ede 100644 --- a/src/main/java/seedu/duke/ui/Ui.java +++ b/src/main/java/seedu/duke/ui/Ui.java @@ -2,6 +2,7 @@ import seedu.duke.model.Stock; import seedu.duke.model.Transaction; +import seedu.duke.parser.Parser; import java.util.ArrayList; import java.util.Scanner; @@ -45,9 +46,21 @@ public void view(ArrayList stocks) { print("You currently have an empty portfolio. Try buying a stock!"); } for (int i = 0; i < stocks.size(); i++) { - print((i + 1) + ". " + stocks.get(i).toString()); + print((i + 1) + ". " + stocks.get(i).toString()) ; + double totalCost = 0; + double totalAsset = stocks.get(i).getLatestPrice()*stocks.get(i).getTotalQuantity(); for (Transaction t: stocks.get(i).getTransactions()) { print("\t" + t.toString()); + totalCost += t.getUnitPrice()*t.getQuantity(); + } + print("Total revenue = $" + Parser.parsePrice(totalAsset)); + print("Total cost = $" + Parser.parsePrice(totalCost)); + + if (totalAsset != 0){ + double earnings = Parser.parsePrice(totalAsset) - Parser.parsePrice(totalCost); + print("Total Profit/Loss = $" + earnings); + }else{ + print("Total Profit/Loss = error!"); } } print(dividerLine); From d20c5d0b6b304cd161b96468f598c026b33ceceb Mon Sep 17 00:00:00 2001 From: "LAPTOP-POOFUI22\\User" Date: Wed, 14 Oct 2020 11:47:49 +0800 Subject: [PATCH 033/136] Edit code to follow coding standard --- src/main/java/seedu/duke/model/Stock.java | 7 +++---- src/main/java/seedu/duke/model/Transaction.java | 3 ++- src/main/java/seedu/duke/parser/Parser.java | 2 +- src/main/java/seedu/duke/ui/Ui.java | 10 +++++----- 4 files changed, 11 insertions(+), 11 deletions(-) diff --git a/src/main/java/seedu/duke/model/Stock.java b/src/main/java/seedu/duke/model/Stock.java index 264bd2d52f..2623e71a30 100644 --- a/src/main/java/seedu/duke/model/Stock.java +++ b/src/main/java/seedu/duke/model/Stock.java @@ -44,14 +44,13 @@ public int getTotalQuantity() { return totalQuantity; } - public double getLatestPrice(){ + public double getLatestPrice() { StockPriceFetcher stockPriceFetcher = new StockPriceFetcher(); Ui ui = new Ui(); - - try{ + try { double price = stockPriceFetcher.fetchLatestPrice(getSymbol()); return price; - }catch (DukeException e) { + } catch (DukeException e) { ui.print(e.getMessage()); return 0; } diff --git a/src/main/java/seedu/duke/model/Transaction.java b/src/main/java/seedu/duke/model/Transaction.java index fad61a34c2..597c8b7559 100644 --- a/src/main/java/seedu/duke/model/Transaction.java +++ b/src/main/java/seedu/duke/model/Transaction.java @@ -19,9 +19,10 @@ public int getQuantity() { return quantity; } - public double getUnitPrice(){ + public double getUnitPrice() { return unitPrice; } + public TransactionType getTransactionType() { return transactionType; } diff --git a/src/main/java/seedu/duke/parser/Parser.java b/src/main/java/seedu/duke/parser/Parser.java index e7357290b9..3e5d644d7f 100644 --- a/src/main/java/seedu/duke/parser/Parser.java +++ b/src/main/java/seedu/duke/parser/Parser.java @@ -90,7 +90,7 @@ public static Command parseSearch(String[] userInputSplit) throws DukeException return searchCommand; } - public static double parsePrice(double price){ + public static double parsePrice(double price) { String strPrice = String.format("%.2f", price); double formattedPrice = Double.parseDouble(strPrice); return formattedPrice; diff --git a/src/main/java/seedu/duke/ui/Ui.java b/src/main/java/seedu/duke/ui/Ui.java index 3efa0d9ede..ab75e94f8f 100644 --- a/src/main/java/seedu/duke/ui/Ui.java +++ b/src/main/java/seedu/duke/ui/Ui.java @@ -46,20 +46,20 @@ public void view(ArrayList stocks) { print("You currently have an empty portfolio. Try buying a stock!"); } for (int i = 0; i < stocks.size(); i++) { - print((i + 1) + ". " + stocks.get(i).toString()) ; + print((i + 1) + ". " + stocks.get(i).toString()); double totalCost = 0; - double totalAsset = stocks.get(i).getLatestPrice()*stocks.get(i).getTotalQuantity(); + double totalAsset = stocks.get(i).getLatestPrice() * stocks.get(i).getTotalQuantity(); for (Transaction t: stocks.get(i).getTransactions()) { print("\t" + t.toString()); - totalCost += t.getUnitPrice()*t.getQuantity(); + totalCost += t.getUnitPrice() * t.getQuantity(); } print("Total revenue = $" + Parser.parsePrice(totalAsset)); print("Total cost = $" + Parser.parsePrice(totalCost)); - if (totalAsset != 0){ + if (totalAsset != 0) { double earnings = Parser.parsePrice(totalAsset) - Parser.parsePrice(totalCost); print("Total Profit/Loss = $" + earnings); - }else{ + } else { print("Total Profit/Loss = error!"); } } From 680a65442e7317c949895f1c0233335a3d9955f9 Mon Sep 17 00:00:00 2001 From: wly99 <34613421+wly99@users.noreply.github.com> Date: Wed, 14 Oct 2020 13:44:58 +0800 Subject: [PATCH 034/136] Update UserGuide.md --- docs/UserGuide.md | 47 ++++++++++++++++++++++++++++++++++++----------- 1 file changed, 36 insertions(+), 11 deletions(-) diff --git a/docs/UserGuide.md b/docs/UserGuide.md index abd9fbe891..97e79bed62 100644 --- a/docs/UserGuide.md +++ b/docs/UserGuide.md @@ -2,7 +2,7 @@ ## Introduction -{Give a product intro} +Duke is a command line trading simulator that lets you try your hand at trading stocks with no risk! ## Quick Start @@ -13,30 +13,55 @@ ## Features -{Give detailed description of each feature} +### Buying a stock: `buy /aapl` +Buys the specified stock at market price -### Adding a todo: `todo` -Adds a new item to the list of todo items. +Format: `buy /STOCK_TICKER` -Format: `todo n/TODO_NAME d/DEADLINE` +* The `STOCK_TICKER` is the stock's short form -* The `DEADLINE` can be in a natural language format. -* The `TODO_NAME` cannot contain punctuation. +Example of usage: + +`buy /fb` + +`buy /tsla` + +### Selling a stock: `sell /aapl` +Sells the specified stock at market price + +Format: `sell /STOCK_TICKER` + +* The `STOCK_TICKER` is the stock's short form + +Example of usage: + +`sell /goog` + +`sell /amzn` + +### Searching for info about a stock: `search /aapl` +Shows information about a stock like price and volume + +Format: `search /STOCK_TICKER` + +* The `STOCK_TICKER` is the stock's short form Example of usage: -`todo n/Write the rest of the User Guide d/next week` +`search /nflx` -`todo n/Refactor the User Guide to remove passive voice d/13/04/2020` +`search /shop` ## FAQ **Q**: How do I transfer my data to another computer? -**A**: {your answer here} +**A**: Just copy the txt file over. ## Command Summary {Give a 'cheat sheet' of commands here} -* Add todo `todo n/TODO_NAME d/DEADLINE` +* Buy a stock `buy /aapl` +* Sell a stock `sell /aapl` +* Search for a stock's info `search /aapl` From 842d7309b134e9d49c1dffad9fcf5517c5b575f7 Mon Sep 17 00:00:00 2001 From: wly99 <34613421+wly99@users.noreply.github.com> Date: Wed, 14 Oct 2020 13:49:07 +0800 Subject: [PATCH 035/136] Update UserGuide.md --- docs/UserGuide.md | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/docs/UserGuide.md b/docs/UserGuide.md index 97e79bed62..8f3ef9d513 100644 --- a/docs/UserGuide.md +++ b/docs/UserGuide.md @@ -6,19 +6,18 @@ Duke is a command line trading simulator that lets you try your hand at trading ## Quick Start -{Give steps to get started quickly} - 1. Ensure that you have Java 11 or above installed. 1. Down the latest version of `Duke` from [here](http://link.to/duke). ## Features -### Buying a stock: `buy /aapl` +### Buying a stock: `buy /aapl 5` Buys the specified stock at market price -Format: `buy /STOCK_TICKER` +Format: `buy /STOCK_TICKER QUANTITY` * The `STOCK_TICKER` is the stock's short form +* The `QUANTITY` is the number of shares you want to buy Example of usage: From 183bb81188cab36774688c2aa9538596aaefbfd2 Mon Sep 17 00:00:00 2001 From: wly99 <34613421+wly99@users.noreply.github.com> Date: Wed, 14 Oct 2020 13:50:37 +0800 Subject: [PATCH 036/136] Update UserGuide.md --- docs/UserGuide.md | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/docs/UserGuide.md b/docs/UserGuide.md index 8f3ef9d513..677c5f3e40 100644 --- a/docs/UserGuide.md +++ b/docs/UserGuide.md @@ -21,22 +21,23 @@ Format: `buy /STOCK_TICKER QUANTITY` Example of usage: -`buy /fb` +`buy /fb 10` -`buy /tsla` +`buy /tsla 1` -### Selling a stock: `sell /aapl` +### Selling a stock: `sell /aapl 5` Sells the specified stock at market price -Format: `sell /STOCK_TICKER` +Format: `sell /STOCK_TICKER QUANTITY` * The `STOCK_TICKER` is the stock's short form +* The `QUANTITY` is the number of shares you want to sell Example of usage: -`sell /goog` +`sell /goog 20` -`sell /amzn` +`sell /amzn 100` ### Searching for info about a stock: `search /aapl` Shows information about a stock like price and volume @@ -61,6 +62,6 @@ Example of usage: {Give a 'cheat sheet' of commands here} -* Buy a stock `buy /aapl` -* Sell a stock `sell /aapl` +* Buy a stock `buy /aapl 10` +* Sell a stock `sell /aapl 10` * Search for a stock's info `search /aapl` From 5e71bb268e2dfb63dc164f93ec26726b58fa3ac0 Mon Sep 17 00:00:00 2001 From: wly99 <34613421+wly99@users.noreply.github.com> Date: Wed, 14 Oct 2020 13:51:19 +0800 Subject: [PATCH 037/136] Update UserGuide.md --- docs/UserGuide.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/docs/UserGuide.md b/docs/UserGuide.md index 677c5f3e40..daeabb0789 100644 --- a/docs/UserGuide.md +++ b/docs/UserGuide.md @@ -60,8 +60,6 @@ Example of usage: ## Command Summary -{Give a 'cheat sheet' of commands here} - * Buy a stock `buy /aapl 10` * Sell a stock `sell /aapl 10` * Search for a stock's info `search /aapl` From 8509d8d942c5bc18dadce89f92843cd1d9508089 Mon Sep 17 00:00:00 2001 From: wly99 <34613421+wly99@users.noreply.github.com> Date: Wed, 14 Oct 2020 15:03:22 +0800 Subject: [PATCH 038/136] Update UserGuide.md --- docs/UserGuide.md | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/docs/UserGuide.md b/docs/UserGuide.md index 97e79bed62..5fae2b1363 100644 --- a/docs/UserGuide.md +++ b/docs/UserGuide.md @@ -52,6 +52,15 @@ Example of usage: `search /shop` +### View your portfolio: `view` +Shows the stocks you have, its quantity and current price. Also shows transaction history. + +Format: `view` + +Example of usage: + +`view` + ## FAQ **Q**: How do I transfer my data to another computer? @@ -65,3 +74,4 @@ Example of usage: * Buy a stock `buy /aapl` * Sell a stock `sell /aapl` * Search for a stock's info `search /aapl` +* View portfolio `view` From a7f7a59c9db1cd0d9f51bd33fe8a93f4a600ba91 Mon Sep 17 00:00:00 2001 From: wly99 <34613421+wly99@users.noreply.github.com> Date: Wed, 14 Oct 2020 15:12:39 +0800 Subject: [PATCH 039/136] Update UserGuide.md --- docs/UserGuide.md | 36 ++++++++++++++++++++++++------------ 1 file changed, 24 insertions(+), 12 deletions(-) diff --git a/docs/UserGuide.md b/docs/UserGuide.md index daeabb0789..5fae2b1363 100644 --- a/docs/UserGuide.md +++ b/docs/UserGuide.md @@ -6,38 +6,38 @@ Duke is a command line trading simulator that lets you try your hand at trading ## Quick Start +{Give steps to get started quickly} + 1. Ensure that you have Java 11 or above installed. 1. Down the latest version of `Duke` from [here](http://link.to/duke). ## Features -### Buying a stock: `buy /aapl 5` +### Buying a stock: `buy /aapl` Buys the specified stock at market price -Format: `buy /STOCK_TICKER QUANTITY` +Format: `buy /STOCK_TICKER` * The `STOCK_TICKER` is the stock's short form -* The `QUANTITY` is the number of shares you want to buy Example of usage: -`buy /fb 10` +`buy /fb` -`buy /tsla 1` +`buy /tsla` -### Selling a stock: `sell /aapl 5` +### Selling a stock: `sell /aapl` Sells the specified stock at market price -Format: `sell /STOCK_TICKER QUANTITY` +Format: `sell /STOCK_TICKER` * The `STOCK_TICKER` is the stock's short form -* The `QUANTITY` is the number of shares you want to sell Example of usage: -`sell /goog 20` +`sell /goog` -`sell /amzn 100` +`sell /amzn` ### Searching for info about a stock: `search /aapl` Shows information about a stock like price and volume @@ -52,6 +52,15 @@ Example of usage: `search /shop` +### View your portfolio: `view` +Shows the stocks you have, its quantity and current price. Also shows transaction history. + +Format: `view` + +Example of usage: + +`view` + ## FAQ **Q**: How do I transfer my data to another computer? @@ -60,6 +69,9 @@ Example of usage: ## Command Summary -* Buy a stock `buy /aapl 10` -* Sell a stock `sell /aapl 10` +{Give a 'cheat sheet' of commands here} + +* Buy a stock `buy /aapl` +* Sell a stock `sell /aapl` * Search for a stock's info `search /aapl` +* View portfolio `view` From 5d6433018020329aeeeca4c40f18019151fdc549 Mon Sep 17 00:00:00 2001 From: wly99 <34613421+wly99@users.noreply.github.com> Date: Wed, 14 Oct 2020 15:13:52 +0800 Subject: [PATCH 040/136] Update UserGuide.md --- docs/UserGuide.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/UserGuide.md b/docs/UserGuide.md index 5fae2b1363..f2d38bbab8 100644 --- a/docs/UserGuide.md +++ b/docs/UserGuide.md @@ -9,7 +9,7 @@ Duke is a command line trading simulator that lets you try your hand at trading {Give steps to get started quickly} 1. Ensure that you have Java 11 or above installed. -1. Down the latest version of `Duke` from [here](http://link.to/duke). +1. Down the latest version of `Duke` from [here](http://link.to/duke)(in-progress). ## Features From 701a38bf9956dc91c5a2bca765b6be68fdc1b3d2 Mon Sep 17 00:00:00 2001 From: wly99 <34613421+wly99@users.noreply.github.com> Date: Wed, 14 Oct 2020 15:14:52 +0800 Subject: [PATCH 041/136] Update DeveloperGuide.md --- docs/DeveloperGuide.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index 0ec3db103d..d1ba41590e 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -1,4 +1,4 @@ -# Developer Guide +# Developer Guide(in-progress stay tuned!) ## Design & implementation From bc15eca86ddeb273c2e1b309941b06e6c0486d00 Mon Sep 17 00:00:00 2001 From: wly99 <34613421+wly99@users.noreply.github.com> Date: Wed, 14 Oct 2020 15:15:44 +0800 Subject: [PATCH 042/136] Update AboutUs.md --- docs/AboutUs.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/AboutUs.md b/docs/AboutUs.md index 22bd15fb52..bc4c2e71b1 100644 --- a/docs/AboutUs.md +++ b/docs/AboutUs.md @@ -4,6 +4,6 @@ Display | Name | Github Profile | Portfolio --------|:----:|:--------------:|:---------: ![](https://via.placeholder.com/100.png?text=Photo) | John Doe | [Github](https://github.com/) | [Portfolio](docs/team/johndoe.md) ![](https://via.placeholder.com/100.png?text=Photo) | Yoke Min | [Github](https://github.com/yokemin) | [Portfolio](docs/team/yokemin.md) -![](https://via.placeholder.com/100.png?text=Photo) | Ron John | [Github](https://github.com/) | [Portfolio](docs/team/johndoe.md) +![](https://via.placeholder.com/100.png?text=Photo) | Liang Yi | [Github](https://github.com/wly99) | [Portfolio](docs/team/wly99.md) ![](https://via.placeholder.com/100.png?text=Photo) | John Roe | [Github](https://github.com/) | [Portfolio](docs/team/johndoe.md) ![](https://via.placeholder.com/100.png?text=Photo) | Don Roe | [Github](https://github.com/) | [Portfolio](docs/team/johndoe.md) From c9463093bfeea61da9e311a03fdf246f2013d173 Mon Sep 17 00:00:00 2001 From: wly99 <34613421+wly99@users.noreply.github.com> Date: Wed, 14 Oct 2020 15:16:11 +0800 Subject: [PATCH 043/136] Update AboutUs.md --- docs/AboutUs.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/AboutUs.md b/docs/AboutUs.md index bc4c2e71b1..176b614be5 100644 --- a/docs/AboutUs.md +++ b/docs/AboutUs.md @@ -1,4 +1,4 @@ -# About us +# About us(in-progress) Display | Name | Github Profile | Portfolio --------|:----:|:--------------:|:---------: From 3f83c8383ccf8f95a52f1c3afca9b563dd2d6551 Mon Sep 17 00:00:00 2001 From: Alvin Tan De Jun <> Date: Wed, 14 Oct 2020 15:51:53 +0800 Subject: [PATCH 044/136] Add JUnit testing for searching stock --- src/test/java/seedu/duke/model/PortfolioTest.java | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/test/java/seedu/duke/model/PortfolioTest.java b/src/test/java/seedu/duke/model/PortfolioTest.java index 90dcf353e9..657338fa75 100644 --- a/src/test/java/seedu/duke/model/PortfolioTest.java +++ b/src/test/java/seedu/duke/model/PortfolioTest.java @@ -2,12 +2,22 @@ import org.junit.jupiter.api.Test; import seedu.duke.api.StockPriceFetcher; +import seedu.duke.controller.Controller; import seedu.duke.data.exception.DukeException; import static org.junit.jupiter.api.Assertions.assertThrows; class PortfolioTest { + @Test + void searchStock_invalidStock_expectException() { + Controller c = new Controller(); + String symbol = "zzzzzzz"; + assertThrows(DukeException.class, () -> { + c.searchSymbol(symbol); + }); + } + @Test void sellStock_invalidStock_expectException() { Portfolio portfolio = new Portfolio(); From 6b4e1eee611c3132031c2c24c2f0dbca8514c3b3 Mon Sep 17 00:00:00 2001 From: Alvin Tan De Jun <> Date: Wed, 14 Oct 2020 15:57:28 +0800 Subject: [PATCH 045/136] Change Junit testing for search stock function --- src/test/java/seedu/duke/model/PortfolioTest.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/test/java/seedu/duke/model/PortfolioTest.java b/src/test/java/seedu/duke/model/PortfolioTest.java index 657338fa75..942fec8ad5 100644 --- a/src/test/java/seedu/duke/model/PortfolioTest.java +++ b/src/test/java/seedu/duke/model/PortfolioTest.java @@ -11,10 +11,10 @@ class PortfolioTest { @Test void searchStock_invalidStock_expectException() { - Controller c = new Controller(); + StockPriceFetcher stockPriceFetcher = new StockPriceFetcher(); String symbol = "zzzzzzz"; assertThrows(DukeException.class, () -> { - c.searchSymbol(symbol); + stockPriceFetcher.fetchLatestStockData(symbol); }); } From 6556990d54303fe58065f8e1ae5912e8164a6f78 Mon Sep 17 00:00:00 2001 From: "LAPTOP-033RJKGR\\jings" Date: Thu, 15 Oct 2020 00:56:50 +0800 Subject: [PATCH 046/136] FINALWALLETPLS --- src/main/java/seedu/duke/controller/Controller.java | 6 ++++-- src/main/java/seedu/duke/model/Wallet.java | 8 ++++++-- src/main/java/seedu/duke/parser/Parser.java | 2 +- src/main/java/seedu/duke/ui/Ui.java | 2 +- 4 files changed, 12 insertions(+), 6 deletions(-) diff --git a/src/main/java/seedu/duke/controller/Controller.java b/src/main/java/seedu/duke/controller/Controller.java index 7271374b44..8fecc677ed 100644 --- a/src/main/java/seedu/duke/controller/Controller.java +++ b/src/main/java/seedu/duke/controller/Controller.java @@ -39,7 +39,8 @@ private void buyStock(String symbol, int quantity) { ui.printWithDivider("You have successfully purchased " + quantity + " of " + symbol + " at " + price + "."); - ui.printWithDivider("You currently have $" + String.format("%.02f", wallet.getAmount()) + " in your wallet."); + ui.printWithDivider("You currently have $" + + String.format("%.02f", wallet.getAmount()) + " in your wallet."); } catch (DukeException e) { ui.printWithDivider(e.getMessage()); } @@ -53,7 +54,8 @@ private void sellStock(String symbol, int quantity) { ui.printWithDivider("You have successfully sold " + quantity + " of " + symbol + " at " + price + "."); - ui.printWithDivider("You currently have $" + String.format("%.02f", wallet.getAmount()) + " in your wallet."); + ui.printWithDivider("You currently have $" + + String.format("%.02f", wallet.getAmount()) + " in your wallet."); } catch (DukeException e) { ui.printWithDivider(e.getMessage()); } diff --git a/src/main/java/seedu/duke/model/Wallet.java b/src/main/java/seedu/duke/model/Wallet.java index 163eb15dff..f9d1c81bc4 100644 --- a/src/main/java/seedu/duke/model/Wallet.java +++ b/src/main/java/seedu/duke/model/Wallet.java @@ -11,7 +11,11 @@ public double getAmount(){ return this.amount; } - public void sellStock(int quantity, double price) { this.amount = this.amount + price * quantity; } + public void sellStock(int quantity, double price) { + this.amount = this.amount + price * quantity; + } - public void buyStock(int quantity, double price) { this.amount = this.amount - (price * quantity); } + public void buyStock(int quantity, double price) { + this.amount = this.amount - (price * quantity); + } } diff --git a/src/main/java/seedu/duke/parser/Parser.java b/src/main/java/seedu/duke/parser/Parser.java index 51a7468fb2..f16d77c0f1 100644 --- a/src/main/java/seedu/duke/parser/Parser.java +++ b/src/main/java/seedu/duke/parser/Parser.java @@ -41,7 +41,7 @@ public static Command parseCommand(String userInput) { case "view": return new ViewCommand(); case "wallet": - return new WalletCommand(); + return new WalletCommand(); default: return new InvalidCommand("Invalid command! Please try again."); } diff --git a/src/main/java/seedu/duke/ui/Ui.java b/src/main/java/seedu/duke/ui/Ui.java index a5a64e5184..bd74e719b4 100644 --- a/src/main/java/seedu/duke/ui/Ui.java +++ b/src/main/java/seedu/duke/ui/Ui.java @@ -53,7 +53,7 @@ public void view(ArrayList stocks) { print(dividerLine); } - public void viewWallet(double amount, double allStocksPrice){ + public void viewWallet(double amount, double allStocksPrice) { print(dividerLine); System.out.println("You currently have $" + String.format("%.02f", amount) + " in your wallet."); System.out.println("Allocated: $" + String.format("%.02f", allStocksPrice)); From 6faa035d04e782b12c08165e28bfcbd48e84be15 Mon Sep 17 00:00:00 2001 From: "LAPTOP-033RJKGR\\jings" Date: Thu, 15 Oct 2020 01:01:45 +0800 Subject: [PATCH 047/136] MERGEPLSPLS --- src/main/java/seedu/duke/controller/Controller.java | 10 +++++----- src/main/java/seedu/duke/model/Wallet.java | 2 +- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/main/java/seedu/duke/controller/Controller.java b/src/main/java/seedu/duke/controller/Controller.java index 8fecc677ed..7d8e903e8e 100644 --- a/src/main/java/seedu/duke/controller/Controller.java +++ b/src/main/java/seedu/duke/controller/Controller.java @@ -39,8 +39,8 @@ private void buyStock(String symbol, int quantity) { ui.printWithDivider("You have successfully purchased " + quantity + " of " + symbol + " at " + price + "."); - ui.printWithDivider("You currently have $" + - String.format("%.02f", wallet.getAmount()) + " in your wallet."); + ui.printWithDivider("You currently have $" + + String.format("%.02f", wallet.getAmount()) + " in your wallet."); } catch (DukeException e) { ui.printWithDivider(e.getMessage()); } @@ -54,8 +54,8 @@ private void sellStock(String symbol, int quantity) { ui.printWithDivider("You have successfully sold " + quantity + " of " + symbol + " at " + price + "."); - ui.printWithDivider("You currently have $" + - String.format("%.02f", wallet.getAmount()) + " in your wallet."); + ui.printWithDivider("You currently have $" + + String.format("%.02f", wallet.getAmount()) + " in your wallet."); } catch (DukeException e) { ui.printWithDivider(e.getMessage()); } @@ -97,7 +97,7 @@ public void viewPortfolio() { public void viewWallet() { double amount = 0.00; - for (Stock stock: portfolioManager.getAllStocks()){ + for (Stock stock: portfolioManager.getAllStocks()) { try { amount += (stockPriceFetcher.fetchLatestPrice(stock.getSymbol())) * stock.getTotalQuantity(); } catch (DukeException e) { diff --git a/src/main/java/seedu/duke/model/Wallet.java b/src/main/java/seedu/duke/model/Wallet.java index f9d1c81bc4..4f489cfa13 100644 --- a/src/main/java/seedu/duke/model/Wallet.java +++ b/src/main/java/seedu/duke/model/Wallet.java @@ -7,7 +7,7 @@ public Wallet() { amount = 10000.00; } - public double getAmount(){ + public double getAmount() { return this.amount; } From 5ac1f7ba90b1d5e4e78756416cf48ffb0f341470 Mon Sep 17 00:00:00 2001 From: yokemin Date: Thu, 15 Oct 2020 01:13:49 +0800 Subject: [PATCH 048/136] v1.0 --- src/main/java/META-INF/MANIFEST.MF | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 src/main/java/META-INF/MANIFEST.MF diff --git a/src/main/java/META-INF/MANIFEST.MF b/src/main/java/META-INF/MANIFEST.MF new file mode 100644 index 0000000000..19e86fe56e --- /dev/null +++ b/src/main/java/META-INF/MANIFEST.MF @@ -0,0 +1,3 @@ +Manifest-Version: 1.0 +Main-Class: seedu.duke.Duke + From eca29e127f0aeed4fdc4b7da00783b439313de58 Mon Sep 17 00:00:00 2001 From: yokemin Date: Thu, 15 Oct 2020 01:17:45 +0800 Subject: [PATCH 049/136] Add link to first release in User Guide --- docs/UserGuide.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/UserGuide.md b/docs/UserGuide.md index f2d38bbab8..dbdcc2cc55 100644 --- a/docs/UserGuide.md +++ b/docs/UserGuide.md @@ -9,7 +9,7 @@ Duke is a command line trading simulator that lets you try your hand at trading {Give steps to get started quickly} 1. Ensure that you have Java 11 or above installed. -1. Down the latest version of `Duke` from [here](http://link.to/duke)(in-progress). +1. Down the latest version of `Duke` from [here](https://github.com/AY2021S1-CS2113-T16-3/tp/releases/tag/v1.0)(in-progress). ## Features From 30a9ffedf71618f82c90213ffe664fa93b47e210 Mon Sep 17 00:00:00 2001 From: yokemin Date: Fri, 16 Oct 2020 14:47:17 +0800 Subject: [PATCH 050/136] Add assertion and logging --- src/main/java/seedu/duke/model/Portfolio.java | 1 + src/main/java/seedu/duke/parser/Parser.java | 7 +++++++ 2 files changed, 8 insertions(+) diff --git a/src/main/java/seedu/duke/model/Portfolio.java b/src/main/java/seedu/duke/model/Portfolio.java index 2c9fd49401..5eee8ea528 100644 --- a/src/main/java/seedu/duke/model/Portfolio.java +++ b/src/main/java/seedu/duke/model/Portfolio.java @@ -33,6 +33,7 @@ public void sellStock(String symbol, int quantity, double sellPrice) throws Duke throw new DukeException("You only own " + stocks.get(symbol).getTotalQuantity() + " of this stock!"); } + assert sellPrice > 0 : "sellPrice should be more than 0"; Transaction transaction = new Transaction(TransactionType.SELL, quantity, sellPrice, LocalDateTime.now()); Stock stock = stocks.get(symbol); stock.addTransaction(transaction); diff --git a/src/main/java/seedu/duke/parser/Parser.java b/src/main/java/seedu/duke/parser/Parser.java index 92943812ac..94fdf0c6ef 100644 --- a/src/main/java/seedu/duke/parser/Parser.java +++ b/src/main/java/seedu/duke/parser/Parser.java @@ -10,10 +10,16 @@ import seedu.duke.command.WalletCommand; import seedu.duke.data.exception.DukeException; +import java.util.logging.Level; +import java.util.logging.Logger; + public class Parser { + private static Logger logger = Logger.getLogger("tp"); public static Command parseCommand(String userInput) { + logger.log(Level.INFO, "going to start processing command"); + String[] userInputSplit = userInput.trim().split(" "); String commandString = userInputSplit[0].toLowerCase(); @@ -43,6 +49,7 @@ public static Command parseCommand(String userInput) { case "wallet": return new WalletCommand(); default: + logger.log(Level.WARNING, "processing error when parsing command"); return new InvalidCommand("Invalid command! Please try again."); } } From 1df0bedaa7d9c6c0b69eb503518f825b7ef24beb Mon Sep 17 00:00:00 2001 From: Alvin Tan De Jun <> Date: Fri, 16 Oct 2020 15:11:02 +0800 Subject: [PATCH 051/136] Add logging and assertion --- src/main/java/seedu/duke/api/StockPriceFetcher.java | 5 +++++ src/main/java/seedu/duke/model/Stock.java | 2 ++ 2 files changed, 7 insertions(+) diff --git a/src/main/java/seedu/duke/api/StockPriceFetcher.java b/src/main/java/seedu/duke/api/StockPriceFetcher.java index 2a79c39377..d6be7a1258 100644 --- a/src/main/java/seedu/duke/api/StockPriceFetcher.java +++ b/src/main/java/seedu/duke/api/StockPriceFetcher.java @@ -10,8 +10,11 @@ import seedu.duke.data.exception.DukeException; import java.util.List; +import java.util.logging.Level; +import java.util.logging.Logger; public class StockPriceFetcher { + private static Logger logger = Logger.getLogger("tp"); private String apiKey; private int timeout = 3000; @@ -21,6 +24,7 @@ public StockPriceFetcher() { } public double fetchLatestPrice(String symbol) throws DukeException { + logger.log(Level.INFO, "fetching latest stock data for " + symbol); StockData stockData = fetchLatestStockData(symbol); return (stockData.getHigh() + stockData.getLow()) / 2; @@ -36,6 +40,7 @@ public StockData fetchLatestStockData(String symbol) throws DukeException { return stockData.get(0); } catch (AlphaVantageException e) { + logger.log(Level.INFO, "failed to fetch price from API"); throw new DukeException("Failed to retrieve price! Please try again."); } } diff --git a/src/main/java/seedu/duke/model/Stock.java b/src/main/java/seedu/duke/model/Stock.java index 2623e71a30..e8d8fb3edc 100644 --- a/src/main/java/seedu/duke/model/Stock.java +++ b/src/main/java/seedu/duke/model/Stock.java @@ -18,6 +18,8 @@ public Stock(String symbol) { } public void addTransaction(Transaction transaction) { + assert transactions != null: "ArrayList of transactions not initialised!"; + switch (transaction.getTransactionType()) { case BUY: totalQuantity += transaction.getQuantity(); From 7c70163b33796a12b3792c0aef58d799136f3a2e Mon Sep 17 00:00:00 2001 From: Alvin Tan De Jun <> Date: Fri, 16 Oct 2020 15:16:57 +0800 Subject: [PATCH 052/136] Update codestyle to pass checks --- src/main/java/seedu/duke/model/Stock.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/seedu/duke/model/Stock.java b/src/main/java/seedu/duke/model/Stock.java index e8d8fb3edc..1bc9ea220f 100644 --- a/src/main/java/seedu/duke/model/Stock.java +++ b/src/main/java/seedu/duke/model/Stock.java @@ -18,7 +18,7 @@ public Stock(String symbol) { } public void addTransaction(Transaction transaction) { - assert transactions != null: "ArrayList of transactions not initialised!"; + assert transactions != null : "ArrayList of transactions not initialised!"; switch (transaction.getTransactionType()) { case BUY: From b75136e1c8ebacd5b72ec70487e161277ce20cf6 Mon Sep 17 00:00:00 2001 From: "LAPTOP-POOFUI22\\User" Date: Sat, 17 Oct 2020 21:43:26 +0800 Subject: [PATCH 053/136] Update view --- src/main/java/seedu/duke/ui/Ui.java | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/src/main/java/seedu/duke/ui/Ui.java b/src/main/java/seedu/duke/ui/Ui.java index b3d0f4d84d..83fe6a1342 100644 --- a/src/main/java/seedu/duke/ui/Ui.java +++ b/src/main/java/seedu/duke/ui/Ui.java @@ -2,6 +2,7 @@ import seedu.duke.model.Stock; import seedu.duke.model.Transaction; +import seedu.duke.model.TransactionType; import seedu.duke.parser.Parser; import java.util.ArrayList; @@ -47,18 +48,24 @@ public void view(ArrayList stocks) { } for (int i = 0; i < stocks.size(); i++) { print((i + 1) + ". " + stocks.get(i).toString()); + int totalStocksBought = 0; double totalCost = 0; - double totalAsset = stocks.get(i).getLatestPrice() * stocks.get(i).getTotalQuantity(); for (Transaction t: stocks.get(i).getTransactions()) { print("\t" + t.toString()); - totalCost += t.getUnitPrice() * t.getQuantity(); + if (t.getTransactionType() == TransactionType.BUY) { + totalCost += t.getUnitPrice() * t.getQuantity(); + totalStocksBought += t.getQuantity(); + } } - print("Total revenue = $" + Parser.parsePrice(totalAsset)); - print("Total cost = $" + Parser.parsePrice(totalCost)); + + double totalAsset = stocks.get(i).getLatestPrice() * stocks.get(i).getTotalQuantity(); + double weightedAverageCost = (totalCost/totalStocksBought) * stocks.get(i).getTotalQuantity(); + print("Total holding asset = $" + Parser.parsePrice(totalAsset)); + print("Total cost = $" + Parser.parsePrice(weightedAverageCost)); if (totalAsset != 0) { - double earnings = Parser.parsePrice(totalAsset) - Parser.parsePrice(totalCost); - print("Total Profit/Loss = $" + earnings); + double earnings = Parser.parsePrice(totalAsset) - Parser.parsePrice(weightedAverageCost); + print("Total Profit/Loss = $" + Parser.parsePrice(earnings)); } else { print("Total Profit/Loss = error!"); } From f5f8739c291fdb575c8ca6c9516824e01464fd10 Mon Sep 17 00:00:00 2001 From: "LAPTOP-POOFUI22\\User" Date: Sat, 17 Oct 2020 21:45:17 +0800 Subject: [PATCH 054/136] Add assertion and logging --- src/main/java/seedu/duke/model/Portfolio.java | 1 + src/main/java/seedu/duke/model/PortfolioManager.java | 5 +++++ 2 files changed, 6 insertions(+) diff --git a/src/main/java/seedu/duke/model/Portfolio.java b/src/main/java/seedu/duke/model/Portfolio.java index 5eee8ea528..f2d5033b3c 100644 --- a/src/main/java/seedu/duke/model/Portfolio.java +++ b/src/main/java/seedu/duke/model/Portfolio.java @@ -15,6 +15,7 @@ public Portfolio() { } public void buyStock(String symbol, int quantity, double buyPrice) { + assert buyPrice > 0 : "buyPrice should be more than 0"; Transaction transaction = new Transaction(TransactionType.BUY, quantity, buyPrice, LocalDateTime.now()); if (stocks.get(symbol) == null) { Stock stock = new Stock(symbol); diff --git a/src/main/java/seedu/duke/model/PortfolioManager.java b/src/main/java/seedu/duke/model/PortfolioManager.java index 906e00b0ac..769e627641 100644 --- a/src/main/java/seedu/duke/model/PortfolioManager.java +++ b/src/main/java/seedu/duke/model/PortfolioManager.java @@ -5,9 +5,12 @@ import seedu.duke.data.exception.DukeException; import java.util.ArrayList; +import java.util.logging.Level; +import java.util.logging.Logger; public class PortfolioManager { private Portfolio portfolio; + private static Logger logger = Logger.getLogger("tp"); public PortfolioManager() { // load portfolio object from file @@ -16,10 +19,12 @@ public PortfolioManager() { } public void buyStock(String symbol, int quantity, double buyPrice) { + logger.log(Level.INFO, "buying stock ..."); portfolio.buyStock(symbol, quantity, buyPrice); } public void sellStock(String symbol, int quantity, double sellPrice) throws DukeException { + logger.log(Level.INFO, "selling stock ..."); portfolio.sellStock(symbol, quantity, sellPrice); } From c584da13c0f35c70c0fd3c433aec2f6952a5b2bd Mon Sep 17 00:00:00 2001 From: "LAPTOP-POOFUI22\\User" Date: Sat, 17 Oct 2020 21:51:19 +0800 Subject: [PATCH 055/136] Update codestyle --- src/main/java/seedu/duke/ui/Ui.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/seedu/duke/ui/Ui.java b/src/main/java/seedu/duke/ui/Ui.java index 83fe6a1342..1217a4c9f1 100644 --- a/src/main/java/seedu/duke/ui/Ui.java +++ b/src/main/java/seedu/duke/ui/Ui.java @@ -59,7 +59,7 @@ public void view(ArrayList stocks) { } double totalAsset = stocks.get(i).getLatestPrice() * stocks.get(i).getTotalQuantity(); - double weightedAverageCost = (totalCost/totalStocksBought) * stocks.get(i).getTotalQuantity(); + double weightedAverageCost = (totalCost / totalStocksBought) * stocks.get(i).getTotalQuantity(); print("Total holding asset = $" + Parser.parsePrice(totalAsset)); print("Total cost = $" + Parser.parsePrice(weightedAverageCost)); From bbdf58d4465f09aa998783a02c987cf7ea40685f Mon Sep 17 00:00:00 2001 From: Alvin Tan De Jun <> Date: Tue, 20 Oct 2020 00:07:44 +0800 Subject: [PATCH 056/136] Update Developer Guide --- docs/DeveloperGuide.md | 42 ++++++++++++- docs/UML/Architecture.puml | 16 +++++ docs/UML/Lifecycle.puml | 52 ++++++++++++++++ docs/UML/Packages.puml | 56 ++++++++++++++++++ docs/diagrams/Architecture.png | Bin 0 -> 35380 bytes docs/diagrams/Lifecycle.png | Bin 0 -> 89732 bytes docs/diagrams/Packages.png | Bin 0 -> 285565 bytes src/main/java/META-INF/MANIFEST.MF | 2 +- .../seedu/duke/{Duke.java => PaperTrade.java} | 2 +- .../seedu/duke/api/StockPriceFetcher.java | 2 +- .../seedu/duke/controller/Controller.java | 44 +++++++------- .../{data => }/exception/DukeException.java | 2 +- src/main/java/seedu/duke/model/Portfolio.java | 2 +- .../seedu/duke/model/PortfolioManager.java | 3 +- src/main/java/seedu/duke/model/Stock.java | 2 +- src/main/java/seedu/duke/parser/Parser.java | 2 +- .../{DukeTest.java => PaperTradeTest.java} | 2 +- .../java/seedu/duke/model/PortfolioTest.java | 3 +- 18 files changed, 197 insertions(+), 35 deletions(-) create mode 100644 docs/UML/Architecture.puml create mode 100644 docs/UML/Lifecycle.puml create mode 100644 docs/UML/Packages.puml create mode 100644 docs/diagrams/Architecture.png create mode 100644 docs/diagrams/Lifecycle.png create mode 100644 docs/diagrams/Packages.png rename src/main/java/seedu/duke/{Duke.java => PaperTrade.java} (90%) rename src/main/java/seedu/duke/{data => }/exception/DukeException.java (79%) rename src/test/java/seedu/duke/{DukeTest.java => PaperTradeTest.java} (89%) diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index d1ba41590e..22addfa832 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -1,9 +1,47 @@ -# Developer Guide(in-progress stay tuned!) +# Developer Guide +It is recommended that you read through the user guide to familiarize yourself with the program before using the +developer guide. + +# Setting up PaperTrade +Fork the repository and clone the fork into your computer. + +To set up the project: +1. Ensure that you have JDK 11 installed. +2. Import the project as a Gradle project. +3. To build the project, run "./gradlew build" on a Unix machine or run "gradlew build" on Windows. ## Design & implementation -{Describe the design and implementation of the product. Use UML diagrams and short code snippets where applicable.} +### Architecture + +![](./diagrams/Packages.png) + +The Package Diagram above gives a high level view of the project structure and the classes in each package. + +![](./diagrams/Architecture.png) + +The Architecture Diagram above gives a high level design of PaperTrade. Below is a quick overview of each component. + +### Overview + +* `PaperTrade`: The main entry point into the program. It initializes the Controller object which then takes over the +execution of the program. +* `Controller`: Acts as an interface between all the other classes, to process all the business logic incoming commands +from the user. Manipulates the data through `PortfolioManager` and interact with `Ui` to display information to the +user. +* `PortfolioManager`: Responsible for managing the persistency of the user's data through the `Storage` class and holds +all the data for the program at a point in time. +* `Ui`: Responsible for displaying information to the user and getting input from the user. +* `Parser`: Responsible for parsing the user input and returning a `Command` object corresponding to the user command +requested. +* `StockPriceFetcher`: Responsible for calling the AlphaVantage API to retrieve stock information. +* `Storage`: Responsible for managing the storing of data for persistency. + +### Lifecycle of PaperTrade +The sequence diagram below shows how different packages and classes interact with each other throughout the lifecycle +of PaperTrade. +![](./diagrams/Lifecycle.png) ## Product scope ### Target user profile diff --git a/docs/UML/Architecture.puml b/docs/UML/Architecture.puml new file mode 100644 index 0000000000..109196b3a0 --- /dev/null +++ b/docs/UML/Architecture.puml @@ -0,0 +1,16 @@ +@startuml +rectangle PaperTrade +rectangle Controller +rectangle Ui +rectangle PortfolioManager +rectangle Parser +rectangle StockPriceFetcher +rectangle Storage + +PaperTrade --> Controller +Controller --> Ui +Controller --> PortfolioManager +PortfolioManager --> Storage +Controller --> Parser +Controller --> StockPriceFetcher +@enduml \ No newline at end of file diff --git a/docs/UML/Lifecycle.puml b/docs/UML/Lifecycle.puml new file mode 100644 index 0000000000..761dc7018d --- /dev/null +++ b/docs/UML/Lifecycle.puml @@ -0,0 +1,52 @@ +@startuml +actor User +participant ":PaperTrade" as PaperTrade +participant ":Controller" as Controller +participant ":Ui" as Ui +participant ":Parser" as Parser + + +activate PaperTrade +User -> PaperTrade : main() + +create Controller +PaperTrade -> Controller : new Controller() +activate Controller + +create Ui +Controller -> Ui : new Ui() +activate Ui +Controller <-- Ui +deactivate Ui + +PaperTrade <-- Controller +deactivate Controller + +PaperTrade -> Controller : runApp() +deactivate PaperTrade + +activate Controller +activate Ui +Controller -> Ui : greetUser() +Controller <-- Ui +loop until user quits + Controller -> Ui : getUserInput() + Controller <-- Ui : userInput + + activate Parser + Controller -> Parser : class method parseCommand(userInput) + Controller <-- Parser : command + deactivate Parser + + Controller -> Controller : executeCommand(command) + activate Controller + deactivate Controller +end +deactivate Ui + +PaperTrade <-- Controller + +User <-- PaperTrade : on exit +deactivate Controller + +@enduml \ No newline at end of file diff --git a/docs/UML/Packages.puml b/docs/UML/Packages.puml new file mode 100644 index 0000000000..5a48e3a4a6 --- /dev/null +++ b/docs/UML/Packages.puml @@ -0,0 +1,56 @@ +@startuml +left to right direction + +package controller { +class Controller + +Controller --> Api.StockPriceFetcher +Controller --> Model.PortfolioManager +Controller --> Parser.Parser +Controller --> Ui.Ui +} + +package api { +class StockPriceFetcher +} + +package command { +abstract class Command +class BuyCommand extends Command +class SellCommand extends Command +class ByeCommand extends Command +class InvalidCommand extends Command +class SearchCommand extends Command +class ViewCommand extends Command +class WalletCommand extends Command +} + +package model { +class Portfolio { +HashMap stocks +} +class portfolioManager +class Stock +class Transaction +enum TransactionType +class Wallet + +PortfolioManager --> Portfolio +PortfolioManager --> Storage.Storage +Portfolio --> Stock +Stock --> Transaction +Transaction --> TransactionType +} + +package parser { +class Parser +} + +package storage { +class Storage +} + +package ui { +class Ui +} +@enduml \ No newline at end of file diff --git a/docs/diagrams/Architecture.png b/docs/diagrams/Architecture.png new file mode 100644 index 0000000000000000000000000000000000000000..289c23798a57386549cd31ee4366bdab1b35c538 GIT binary patch literal 35380 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 IxOVUV0PB`nwEzGB literal 0 HcmV?d00001 diff --git a/docs/diagrams/Lifecycle.png b/docs/diagrams/Lifecycle.png new file mode 100644 index 0000000000000000000000000000000000000000..debb6442e891a47b2bf4dc913f0bafb7cf74ac03 GIT binary patch literal 89732 zcmd43Wk8i#7dDJK$|x#h0MaU=(j$40GC%|bq~TDbbaO~)6QmoYrKG!Cq+7c4kcaL* zeCwby&olGP`@P@K&mU6vzW3g1uejD)*FLV#C4?`WBRhwOhj&5bsh~6--Y)}qc&DHJ zdJ=x49sP0}zR+0+DOzZlnA#X>XIy#CVWx~_$V>3tR!Q^Oa=7M4ba z%o-*}mwxA_z{5L9swb;x@#pXHPQYtkg$K$in+*JZ)v=)334ytydrtJee7kOFah@{A z8G5o`7Q4k;KgCzK+P^@LE`KsbolMJJ@uP4m(4aQgVeIXZ)AC*&qQ4OGa9D$bNQhaV znMozyTrE~jUu}%Y^i)C{^NN~Cikwo+$O*|P)jw`qy?z$1te2z1mBBad6d-O`SQAv> zeXiZ*^BFo>m3r(~b2HD#OU}RgRP&_$COHxHd5p*_GWwfTk1*jcPnoaSg*?lhrJUTq zI}muz@CI_6_qN4_%*Ed`*yAD&6nptazFsU?{%}#f(P7p!?NZvPEsH~RhIA5Hcy7!u zGla7RS9&(CeK!|LYu}?c&?)-^zvtuSR>}wb1^B0#I5fOy#^WRAEW6Lt?JuU2a$QFd<~+`hAJ<%X_zu*dFXRb>vZQX6N|P#_k=rw=IS>^rpO4|Hz&eYF1Rc^D$+k2PkO>_vtxDlt4`4+WW%|5E&uL? zUkXWuqTYWvt?za+MJYB%|7E<-t*TcDNB`>f^+jEFd!CnqT|?)JoNIa%Q>8`2sya_P zX5t?-sOmK^DxAI{T_2<#b1%%S$jV+k>v_i~nOkMzNpxF;hD0eY8Wu!OczCbzL9UO z`uui@Xy~^~LP9>zZ@&A@^Z6zCC;0wIl8TS2ErirrscmfLaIfsu_&V=Q^NUutb=&et zrMLQ^gm`!>Mb|Y>9e+0>OmQ0b&CUtbRovGx{AwxO*Voj)3F8zN&+)-OACUKm-QQjq z4q3Cq4oz_jw6tEs#vTNW#tRL2K0Y4urr{AP*Irqw)m!SUgZg3oRNjk+M>@=U!D^&5 zG@j(g6Q6XWotQ0;C~=}>Y3xGiKn9w$h?AY zK0-8-<>T8dPZZ>Cg~=pFYkGJDtU3!ea)57uHC)HK#ya=TwpJ`)`ND|9{1e{!t!4*0 z-pQ6kw;aDGwUO|6{TugKqnA4a;~84sBD~M#_01gLfF|;x@GyQ7rQG;WyL#wW1OLh@~w6t_jhI&*)L>jZd=uIXD z1{&Yvah5ymUenJ$#ZT38&umyun_EQC^?PFn)u&7MP>&vc!*r)~c6R1uXXgqc)zsAF zr3yOY!KJq-@m)NTT@e0s!4(ykowgc#qJ~# zLrfBUXz-d_5(Y>b9d)W5-DPBaM%xiD7JU289UV>0$?0k0t5*{V;%eU=Ywu3b@+cE^Y^+)G zwgKwi;o^3SO-GBL1C?tm;l)r^t;Srv&Tmy!v9YlvENbBa0lAKcdqYD*u*K|b))9VO ze8R&{l^`%pDY2D@F3&>Q^)OvYH*VZu(`l7u=@%CfX=rR5D7G{Z5jkr@eQef8YpN8R zQ+C4d)b~xzm=Aw^L|)xcQzu z7~Q*g0@{7wGCjM<)u9sDB9bEFzNNmduCAu0rlFxBr~s%nXqcW}((2gp3-~8H5lFR6 znIqfb3+j%>twGEI3p4fc?b>`*x1aeP(9y}-?I*g$-n)0NDTv7*QEaoWJ#iN|awk|4 zow&2sa|~cJF&FG0?jj+W7}j&8S;B zY0Zh6*IQ(3D)(3Uip8ecw(Z!Q`{74Z+j>#52dkESzIdb?PG=pWteAWo<+IZq6<$b| zbH@@dQy!m>`}$)FA`$QNoptqK?dqcni;X+6>F%PNwvV*hGc$iD622pTf5(yqG>hJg zSuyjE8aJZ(-i$jx)-$?$$4h=OP4ShMlfx$u-d*R>iffC_I*X0hz?phC#;7huUgA}C zkHxsF&!0b6Q#0nhe*8AV zT_&%dE;SmCQhkLKo8cuji_IzmTi(LBHjOnI$6(_1%y-@MXAdpgzkh#jsn<0^E^KaY z?(XJBPfzb5d~97SH=Jsvw5Imaj(Wp&*H|NxyJ>fYvX%zbnDbkcT)Q~YQO4bgsQTkm)@}5 zmdFbcGIIPV1zLneA|)gw9zJ}ir>7?;7r2Tz9?d^_grMJjE)7bym(9ICQ@SOxL*)IQ zV_vU0%0*hYEwhO_boC&U^vdnIcZs$YiTv)#8RUVrAz+AMTrB+j{M_71s$@*CC2;lW z>6}!@w*S@TfLfTAT2wS3^%E@C$LBY4avru@j0^tvZuIh|pKkYw^cLTrb=MP+^lPTO z!M2gkppq% zL_(sqCrz1lLv&-R&`#*Kj0+~G`w|lqPtVM-I9cWr3v1w) zM)~+$*E1jg_Q8)gPqHU)v|FL#y^Bj*lz`JFrWB>ha~<}W-f9Qy5dGR z1Ha#GmpU0&UElq9la--XidJLC8%YtU3rOJxcMfP!jppJ&9_-WU=#Y!<7{Q+Wa0jjX z&^}r7sbsewKMRG;vThVf?$*wmsJ>L#Dd%#vb_0rxkP^3=G37{)SkmJ85P4>933T+a z_px_J97o!fQ$NDPS3+J=VVmXSEq@h(=OY87OL{`1OCm$`>b4dKEtQXlF?#-UnEfST z>!l$&CDeRRnvIQ37^hKVLjy!;)-NLduo_*ItYh!M%s`g?uGw&prN4#`jW60a)=$Hq zCIHPyM@I)i^%&x@Vo7mp#cR9ab@>>Re~BW#KBd~w6Qdf)ohdZ~u2hD(ho z(cjWiQv(>0s;Wi@Y{v_VM7tv}p&sJ``o~-GRNyA`f1fl+hWq0mdjHov;{Q(%C~|qF z+hApwyc(C0CHI`Eo*c{aHQvj1M6qQhJ(GK~A91&qN3_eO;}f|4TJfG&&|#jDRb9C= zf}W{E?eUKRXDZE5x!IbM3$)(XvJ>ec<Dg`uL(LSgC-YAT^3rP?`g=HDNLkURex6QxK{pD_O6QT@OLw0xl(Z{uiq>}HB6mNPNs|OK}OduCWTn(+8mIOEr zlq`DFRR;@9MhkCp#4L&nFI8*zR@?8Q!THkqCL{LhsGVTNIRG?cVjkslj5r5}wA~Xb zQu&{iLoD}8n3P;h_f?^v>+%s=Utb3wUWyIgWeeTzc+#pnd}n%Q4uwLA1v87oTAQ1P z@{Phopz=c4lfSNsykqr_MD1 z|MHZh(#lzYh+k6_h4!-<3kNoIC^(#+w3|>%`dPX95)l!_$H!l0q*W8G54axcpeTD} zy%8pOfUcxnCt+4E=jG#5bxsm2Ht1!hz9UWbG+M`kf}I+`ZSU z$M z0;D~Og7oBj2;a2_F+(gy#1KPhA<)y((%!j~5Fel98W9%8aHS+OGZWI-n29m#>oCzT zP|hl6BuM8xyds=aCp25738o+$w1Dyvg2Yh9pdljffote`6Swu8b@rHNo93tULE@Zn zmX`B9AoHDt6!llvrIvy@-D6^7HD10XW0 z^YP=y+1XhkcVbZ628|nBTm^-NeTdVbsV9F+(NzyRtq{iV7Ta*@$t-%p4SzJ5-}LKh zlZA|o4DH88NeAMJ+z+u;&H}bB84N=Yr6zE696F; z8UWj!J$u%mH@&5yfsUS@RpKEy9lUD#fncr5?k_A8v)~ju@N0zl@MRbIcBBfJHKmB? zwio(o$QvaO^PN(Un2Psf_sEeu9lwT!+0p!IeJ!8vJ+|}u#H!_X0IAQ9+$R{&T411@ zqM~m2TksYqKFZ~?G`&p`&!}r}xk2!ajB+fiV4A z>N2X3@Fa4RWifx!D%kO$Y!5@?x}$c;`mgS%1ZAg6r`6lQ4rSdkQbjPM66aP#Cjx+OC|WBfQmk_)nKxgP?DaSxeaB5@Qau&}Vyme+NlY zmywfKRFM0<$nTN&(2@vOs#mB9o3HH(Z3(Z>-R-8glE1;$)M|dpuV6yAW-G$HWGLgX z@`Y#m07draFIe^YiRO?2zV;W=!rIGWuo^yNUn%yq`-?x+v!@>AI3M5~`;c3LOtt4+;5SIZoDB zPBXU!osI&V#4C0CDe$(scFZY!dET8M{&Tkpuc0!Bd$gY25fCkC{jOU+OK+#R^ObzB z>XTjPx`B+$rfXM21W(mF!nom*V3Q$4@AIOf^=6t=1^I?bnpkp51=K3*x}&`epPd@n z)vFe34R=CHc$JCmaYwvD|I@wlQ42dcXn64d!dx~rg*lW{Yl-2=&t9sWPp>ffG?-I? z{bO2SD<9iwJ8yZ#%Vy=x2HJZWzrQ0}YuzBdXkpM~bfAExzf|szZoua+4%RU+OU9>d zbl6Q?W#QG?pQb_O72A)#xv|Q!JqQr?J8nUyxSIYUTRfT?%S8 zg(!4wvO(9~j0*4e?aj3&!lVl0rJ<~8H34EADE=z;XE0Wz7~bFB`gkS17yD?}VP@b$ za??X%%Qc245ec-?hjnC!WO=_I?2HU#H7pwtSBvdg?uw>{C{RB|I;>Q#C(k!Bu&|n3 zn-!wS`v-!^LLg=KMTben?WhjcLsiPOM$V-TKO|0D?kz?m{Igk&DFV0)iNEE7>C6%|!sNchs>MN@sX20Aigt)|Vbh~fLBmng_ z55HsBT75L3O@P*Uj+~O$$IU%BDgBD1VLXSte0m7ia+pqJ(ehh@`zdPe>BAx{<$W26 zx=AkxrCnXGOg)L0#Sjo4Ekqq1xC|s~HBE1i*gbyo1p-09P(Q~1~thy8s0(u1|V zdGE!6KwT=m!a!=rYd!HzA=wS2I^p_Msf`T?OmpPCT~wmq1MEW1c9ccOS$+H7^oa6< zwF~`$XawfKL0aceq;=Ao$jF=ssk(n|+&T#boz0|Rvp6R^Zme99!J|E5ECJLxqmz1|xo}%O9Q?ZP2 z!uBIIWV;lSrF^^M4oAxDxYqGM>Y<(X=H9)iiflh);Kh?Jq%uV4oEGPJXjz+-5Sdz= zYcyCaBJ>C15b$qa((T z-k&2t10JT9-5(1Omatqrx+5NW;A`8*yFGNcWjqBYFH>++_!{}Xs$lhuvoErn%jz_g5^aTAtCH+RH zB!1F8joR~aVxq2jNl7=RA15!1c7!Nr?M?y0rW4 zuD674YOPPV#FgoF-k$IIV6aF_>pFdeD}_t(;7;OkF!tz8r2SfYM+XryctNDek?C>@3_(^LxDb6!vhL)8tdA?d+vj z-Et%bo_1Tel1MW6SH6lnucpY0%b^n_j|4~4ha0(P!fy~-R>^awl%u+K`BJj2qZS5( zQ`Is?^9=5+%XeGxH`agnUvUR1rw5&=qaN*8O?Y3N>1Q$BGmnGs4rIbP-qVi1S~#}| zhMKc;b8>lClM~*`f%2P3hRqdooM4RBqK-B=Ec9e{6QcNkH@OS`Z2t4WQF1#!zTxTw zb=PfYu`klf18WS`+XV?cH8ADM)PBDG+Dg#O)7du9`QLI zlqA=@(TU>2oL;gVaVvsjo*&Bb-)@K#p-#54J9?qb=2dJO)ur^OpLNc43!-OGwy7Z^ z(Z@HfJRL#H7ZjYqdfxm6?ObzO?{R{4*Gu$dGux^-vD|rAixeia@F2I?X=~oWl(Sbx zWR~AULc_j1R1~|_-oec4BfEDQykoKuRaA1#37d_cdHLq4ew?4X+4ekHHIk%xKPmr; zuxgUX&#Q7ZO&XScmI z)zgIVjwiM}miNUCTs;pZj94}6{ijzsQ(Bep1t(14>1WE4yvX=^Vs>SmC9#r}^wOSHF!j^^ z{`TbUaTk+LGBGiQTtk}`a-UYdZI8o!LWgo+w3$5vXOj#n7wmp*%3pThs9=+QSsXh; zz&uN#=@!d8^dGOCT$vg}DVw3@Qr=`S-y@V<^C2*7883ApfkV04lk%i_Rwa={@3FVNv_Z4#Jr?u9WY*6zIm*kQ{+CU?!pZJ<=_9 zvrMwFNg>IE*r+FUZn;7jQ_|Qd-}pyf;I5r81kC?v=mQm@LFEqvDG8Cq%0`N^xv~bS z;6105dxIg$N7yo&F23nXAFgyaTf6ohw+mU7(gpAZQfTG8`%5wI#ffu{t2Hxxd$W|uW$G2m z+AVw1gAnxAe0-u>!njIyr&A_y8YR^ zJ~t$nM#}8hrxiH@YZeRCV?BE%r|4v`z2y$dM#?t`-+{4)nh41`V!tIsl_v1*z0_L~MVk=cQp6_`bqYaSikSONnt~oL>&er4pV%C4EwQ2v<;qeD3^bUS zaQwtRSEZCw-em$RGBGxGDLR@a&*Zl>PVp&+eZOGFkn4kunF|ZL>#Z$v$l{md-&V6- zyGm_F>(yUS<>*NI?J-QY-P;~W1@PN_TT6?fr3}ekGy~uW*+qxP<{yUm|ryppLOYF+1X#JJ&=$RD*&pmrtzZNrX+PQ-?p1WX&uCbBh1E(5T zrhJc-qD!Uzbm@3VA+Fcpru-2Y(i0mGZh9f}|2)MLxo*aIIK1VKvY2U&D9VHGm4|~% z(mg2Uvs$qW{+}P;fUHWvSGy-wskXcdyFYq#hVtNQ6550Ef)pN~&&Svxra!$oURn(K z1JGko01rId>xWpoNqlNvmcUT5mrL;nivPCCe@TmPqq^9R%Vz(`O9krMp{fHMf>Zbx zukjc{IbtA7!zC+^Ios7x*Km{l-%5=FD5%G7L|Bh-?=R$ZO9;ALq%z<_ls}up|VqdTPGalj7m&c#T5>J?v&_f zO6mA97J83!BW3&J6l4|ydI@?J3JMD3XA%+;qHHlq$puD(`Ao>%=N0N!{aR3RbgqQ9 zwS1Yt(ZTvy<-6|Xht*Q_4;ueb6`-D&t@owr&ey2(8ZI!2%9VwDMYUvWy-k42V<<~Q zxXz1GE3R6hA-*Hq>BzCDLiVo1QqjzLbRNRCSJk?qEvNOq*cP`F_5eD#WKV1<{;hW5 zg0QWlw0>#_ns8xJ8w48Q%cPutFrQJevG~~KV&K+vOBnfxXmX7ds#BaRFenIPSLXI_ z#fQffWm7@Qafdr-@6l{6_h_+<)YMeD6nWOQH~3V)TckndaMB^LfeL`BCZ#4L&c*Jqv$f1N-xXzP2!DRcy zznwK9%3^t>OhEA7f=7 z1ph-#Nzf3MtK?P)E?(r^qTK2bV>#XJD4v*w25+(O@ZFg_<6-1tGSu13NOa54b>0e# zaL_GzRi<2*gp*z~|3kx=Yuf>D%Ac-~6gceavsSEdJkHHfPl7Pd#9v8+E!1z z7)hD~_Fy*|Rqu17c-%|zhL<#y-6MYB8djF~cc}v`<-_1zQ%%7sW7gZl*5vya=Lhmq z&KEA1?|V?@Z(zE`7EK59jgqz6BKbfS0)ouj_zIGfF|*_Our6n*9-AK}o8umdl1|>- zO9~)uA*KRk-s)Ezu<`H=_NDDJ2SKuPZQsxala$c46TxGx?+N%dM*m=~iN#W5@urvb zh1k^fA0^W155G;l%Wl>0ggV-Y(~(2qA#?F;i~x4$@#yAEl#|tbk9e^J?`ky^(q~Hq zkFbYMyHmkyYi4O$hkKiMA}stomfK@pjQiWCz4clKflA5MtEtkKyoxJD2SMv zI>TgDgCb8vA|YIsJJ0Ox6nj%ckPLH08y@DR@3Ck`HHa2Z5i1!LQwh^jsF}BL&|^hZ zN|%b~_j-$0Ystg7Oqe}A$vFHfz8Ch7ldMLXeml!GWctpdV!f58dk5{sV+`)XxzdlD z$7&(bSm@?_TEPf?*pStr5oTb4A)_>g`Wc1LyBGg6nSp-ALyMKMN(^P>84yzbHs$X? zV=x0xd>(DLF`H$(sgM4SRL(cF*_%sH&eeUrVmYIpfL#v3Dx!k6Y%@3Qagxu0+l&#Yi3DsutblUAM zs8VZDNXf{^%YP}y`;wd6)i*;3dB`m5%&d}{ z`SszxAvEj4+P=-SAyUv81hyQ%-LV$)$+z?W;oA+7#vRBd(4hbk08Nc?1_3OWn>TN= zvv=)$Gx{nx?b=Kn!uB80(nGW8^XIQOS%iTDvvTG?Z-Kzn(b?(m??1Ir3(KjkeIhI@ z{N#!ADNA3Qn>j+$9?cXX0<7+u%ncsUdt_i_WMp7qYvqJuy7ODPTtY?7JiTEA^0%na zdk4b1dJDf&6crT#b;4&o6xta;p0k+ifP;W-3Q`Y#aatWFWGST;@TC0yKX1n|=Afm7 zHLwF&k$nO{fWOq(1LB&mm1>9q>gpXB_J&44K)qF0US1w(C_oxAGs_NN0L3cQ7@Q;- z*&S^-e(HZ;P7mv*qf1Im{Qbw$Z@!jqe^Zj3SC0c6LT1cB!wL-!4)*t_xq|>o93P(p zsA5B1{z@?aHJbyXwa&g1lp%Lml{H)In|*g_a-L56*;?HNYCvi#`@g@@-Q9gE4%mv5 zGc!%xtt~BbgvlC8%_&hHdOeRF$#_1~tP5(pHgOrU4-@|@Lhgt{x9F@ z@0%**gNa`jE_*7W2{f4ScIXcIAyMBqF9@5;`pqnn|!{Q1QnTJyIj?%I2@0b}#E^P9l5u#d4T9IcFy+mfA;&o{p5 z^{p3?13&3rQ|vExMf`2xd~N&N9a-)S5X&39x)A7ZKdAcJ*dyNKc}!z`edcGY{Xg7| zkH>$&15yOcj)w;{iGPqg{`tVyVpQ&Reh%Q7{L3U}YE^Hsk|4$3ew|2ndMGgp1e1Ew zR1?aPEg`f7s1F`P!}Xj(7sR=Y=e`|zodwu;XR{YQ95cv{oA(SiatdKb8OMwHTuJkP z|H)Lq%h9gAf*-qs26wjxPCk;`TpRlG(Es%~W?LWqd?)Tn^Ho)9hmCeft!q8WNr;K_ z!3F?0bs})Ym=$VPcbu%xZKG!kf=AXX@u}?(R_iosJwonVVq%2cVGcs{b9nNrQ#~W@ z92kyeqq_n>WgAm4eUuDbrw3E`^_OGj2Ky^bVlE{vubZELa3T;-C_X6sAdUb1+q@X) z?TSb87RAL)RuKxMf__-xpZr0tsrwkat*Ai!d0}l zfaBQL6X@$rG{?th>Vd#8H+VkG^PpsIXl{lEy(JI~Kr1Jsq8#^<7IwQ8)H%Fzcz?c| z_ezYH7C2$c8Dy>39*&1lL!v$eBwL_abxW(NI;^*FiQNQGdfzs+`>##p`2buIS+mFP z&TM+(9Lno~B$!*{hlmX{+x} z%mjqSyjQCev0Kvn#r^#`Is$;hhfAzY0BZQ(7KhID?IRrOJWsRe5a3&0R$Ocg{ncI- zbI*ljhyAUi-8QG@{oSRKO}s z54^Dsna_bZ3<*nyV=pcavrZ>OIqDDOCY7spOuG>=7%mB0%zlpsfQqqp&HM1-1E(;C zd~?xmdns@>#j)1{(E=y2JIP~gB6 z7{9<*I><>**58P+DML$ zcTYFy%IATmK%|)XB7wu^kt|e&R7h<`9k%Dl=RINp;Oqei$lZc0Alz|puEP;B16@xB zg>>0>ogE#yPxv->i~X`ZDdmN5w4ev?W{}!%YOlqlR^`d0eE7PuV(MTA`_W$pnguWy z%jW@|25(s{4$P4oVTMZzJWA)jgl%|Q*0$ex?0l^lIMXzXxC8ECb=b4uK(Me#a;^Mo z=?X0`7OsEYR+(v`P8(G>zuDx|$Gz?><<}-vD9Qk&X-;}_jU<}nTDv3dfbAMBR%WJ1 zeVibiS?UqxVazu;r@2;2xNlScv9VPCiD7CTVC@?PtQ!vOX(3vyBnG1C}57KgSvK% zK&}GGgMIbKOa6Bxm!OL1V?Ch@=?|IVa!oNI--ge|)@*xK-wU~)UMF3PSl949t-I-B z*8strO}ALEKi={8SK_kND;&Xb^bDxlWu-@#)yh)p-(k{QVXg3V1{}H{4dtTw>=bVwbr9-lBSgNNhgkEcKev^KXLvnJSNVq0W#NUf&36bZzQzwAUf`|hI zDgx%h2YI{)D^>b&Wy-m|Y8pT=2bQ7ezP}`YlF2hkNfYqyHZu`mX8aB%I&y}iAqUNM zTdFYnqlWu&Cu1ORN@IEfzsh2afjUSsvQ~ZCg>XZ?eH3N9BFe z&s*3t>U5NbTmX?Wu=4HrfFaA?Oyzzi$JAX;Ki_EG~6J5;H2AZYZ|-3zFHb z(y$E<1?;WOs?KBCt$MHgoc;on*O_8Za;|(Ja{yAmtTYt`Ixq43`S;8hRUYV4Xz{wf zm3FtiXgc$f?&p|lsU{I|alYM2e^|<)pWo$%7?_aVYvr~`oOzqw16paiV3wdCJWdFc zc`*>5+1S}-ClYVn(}>z8y_{q~BIbGwS}16|zMXk|Gon3C$Kk(*d@$ln_vI`a*maNp z!JzblAWU4HAo|G{v~b7GQxLOJBYhl#$ao>-Lll}SEe_WiquaVXS84VtE8vGkdN)tp zPN{3Bbx`v$eYBh92p6%|Cc`|HWED7n&h~xmlJKzRCPMV|%lNV_xuMNAm!iG;Teui< z{rYdme=3e^b6+Evs@t=y?^9Yd;m~QN>7J$EBv8Q7Bu$?+T=y!j!=M6W=GBP?t!q_w zOf<0UM8|g@zTW!?3z)dOkR2vuq_Mv$&A` z1z>6(`U&|*?e;}9MW6X8=S#w<=WzjW;O|MJBbkH9 z(vaW}$OiilD9_#fjf5l^C{qCe0pa1{K)nVs6R_9A!oq+fuc)X9IiHl&i|}W7cz8;30RN#Kd|6wFAFE8YikMtnM z!*g&Y15&G79Z(X3D*`{RKA|;F;_VO~pZBZNAOH`9=$u#>;g2fz7MCe zJ=o;Ee#c!a~Tb2QuMyAk0O#wHmMP^1&g&3IBE3D>L&uA_VA{isg!15?52- z8t;SGq(b!!3RBzxJn!D7m+xUJ-{Fg0v)f-RST350?3CaU&m$z~Y%bLL`RY_^$DN19 z6Rvk6pC3IF5z!kd-34$77Y`jb9xOxU45$0>_7T;s@lQe&md~1E{NCQWNLpf`?+EX_ zMDwJc+IV3l6!H!%AeOmK9jFu6@=NBB@GR!pJ%@Wia8s-efj)m&=kK^P?qU|3QMMIo z{JHn13E|b?(AE?wpd@7?C%+25PbP&m4phRn;}ee=Li()m0okjcc1G$AY5WbrDSiL{GbEuK&BG_rVZ zXqZZNG#zF_R?L66A*1Is_6Gm_qAl2j{(2;z9oarcT279`c4HP`2sQuYyZaWiE0BJO zU1UFRh2?K(Y3VNBSb{hkX6H|vee3>a8}t@ZPB2r4u`O~)gtOGFqRIgQt?ffDY1o(i zWs5Sd!x9o%u?dbX8yAy_+17}&)3q9D#EjQ^i_C?SGBc%GbNAyRl)TpP_tc8QA+{f} z@|TlNHSLfeZpQgb_^ID=fzB;pA?-CgFlBP?Vms>R3xW4=GWz6LSDr5Z78 zf1(tP(r(f{%qbI1Lck;)Ci@faEXjiyD6W>PCVDqqID7V9?z|_pfSM7u;ZD@GeG0$l z){s0T8BIB#A*ABf{eFG%(fngVKFz|ba|aH7!NIW78NmNZt2z;u@-s+DzRds|6SJfG zvRf75pelZxa?R$ueH)$^2O_xD-Oy-Y-k8Tvg_)GMo5a*dU8hsE)oBgaTUfuyQq#_) zOzg1Mz|gDiBoxMZC%GhM%hABHfp%td-nyyY_np7rmrn)yeMCf?fyLC2yqwY*IFtrg z_3LxU=ShPddTz{gPw}3rSXZFngUpjwUgWy$t`2M*kWkPToU??0BY^deyEM>}kxW|! zi}S06qIy|&wltRR#FIrfxC%y2Q^E)OBv-PaRKW}>xBp}mTnvM5rm_LMf8rNTZ&%lQ zTimx+<%|%Qdf4!TFq?>P;vhQKYr>AFndT%|I`1AJo16>|VOTJjlcA2 z>L@!b8|e~eM=vX7?8nv4A#69h6@mi;=SqgSIfoyVEVf2vkh#<)l{F5G%n&uKiY<$C z4Qno}Tx_dtcXR8u9=43wI|Yf&!ECIxprCzZ1Z5d8`0^a+q)F}XQXc^q{zJ}Ve|k_kVAc^cy~H1{xH-ay&b9fBH>KfsTbho;t!#a zt#Cxas`>Q!qPs%g3A3jU^NOB2JebdE<4>_n3ifWiDQ%E72Sp;;f=FNA7YjL(`@fIC zjZ_VFaZg4?x#e#k2=Z#7H_IVW*S@e|_&AuS?hCnY!SL?79C`(zg~}+-Hy+lXm8P;= zxHnfe8{_UlIWpdl*qd-a>{7SJB;CnS;qK;r&^_wJ^3jV*!+2Xf?Prhw;YDif+oE1O zt>f?^_9s@+RJn-6PvHE#%iu-EqpxpVw%PMJHa2+Aui^8+Hv5(U60A4=a4sQAo`$wQ z$ro-zDli4BI~MKDY{MKC7E41)c_#hY@lde=hf=T`oo6e_yZU}WM_Sr1tF7FdfA6VL zU`UAGLQ0Yn5EU?#9Qpx0ia$@dtKZNXYv0}1|8A{?Ycw$(F2iZ4GxbY8Uo;5w zguPWFLO&s-RPP#(l=ctgMNgj~PU0~5k|Ohff`bH-gOgVQz;F^95mzQ%(3SU!eRt-9 z^t(mhzSt+wep#-*Lg+}2a3!EH(qdG4KHZJQ(n;BNbeOr(Ft-Wgd-UBKX_*MK`{vQbH zoDNo-016cE;$bXvw_YZcS*1<-+@z@hATlOQ4X!O9DE)VDsj6@RGrK>LtG}mEn2@Rd zsn9_5EVwslQAMZXu2>dK6^uG|o=G9}D1$cB)Hbfe=LoL5S55&+fKyS>6$~ELdVPRJ zds`lrbtX_3KiD`}ZzJDdkYOPwhR|D(CAlrm1mU)mY~C`etMHOA-z!7T!FkJa!=;BI ze0KSm4ks$V$osvJ0CQTsaxp;Vs+PQ?_8Ur3uuh9Fe5C|%^R50UYq6e;hs_lo`kNE$ z(C&LYED)M+r0h*~IPm6F()8-ybp@rOX-}?5-I0T_JDd#AI12ojNX>$uv`O|X95GZX zx%;?_N3{k=crCQF_UZ|-k^=_Gv!l7{hj}dT^LM3nX1s?U{-yI8?b?^Z2VQGWA?|~p z`0&MoJ&EJSyMlNS|J94TwW*B1eH0+?_GX1gxwDpagYip`$Z=p!Ces zOe#t6hhKlLL5^R~t=CDTwB#)6{37J)(tdpqjE$l$uXm9+ihgi$((aoHRxd|kcXd)m zf&2v&(bmZO$Qksk3pLdqe?m$|`Q)%Q{&}i{Sup9#vioMU)zz+BTgyB3l>cT6ZTi_Uj*xr|xo9_$tj>_#av26s&0$kcBZ@Lb zK218T@1V80Jytkn1R%7&=Vq~_z6FXM3T>n5h`zA@k`Vqy3Mhs?{$9DT>YtSn6yA9K z4!=jEjEZ|KjqpY6*t?m{)w%UHbp6$VFiN8W+l5y8&*pe@IJJpNQZbd);)r6}PX};OPh?G&3PGtYXi^u$3>aQu@!Nyc+ z{wUcJqK0CmhE%(>Yj8&&@RIHJtxYE_adh{8`j?6PL1X_~sHay>CoEr6F>9cGh@W9; z;TMIgCH1JmCEL{gN|L+D%!l0qbCl(9Yens;L~|ePy^c5Fwzxwe^{IvrFcouoG4G z6YXFN4!w>z=>PT2P^Q;NnO~sXi`(;8wL{P5^;!iRLHl;Cj#|n&z06L*5@Uh_ zr`HyF%ORNf>)VUv*4sV69Li(fRfWo{z|k&Y)x`*p*q7hlZ#SPx9_B{^vwe94Um$A% zXcB!D0z#wwdL7Y{-J;?bvWlXv?+dHx{AEdY?b@gRlg53WKy3igN>*K~Kl-r?d=i0( zcyd``p`yGabY=G{fzQ$16AJn7UOKS9Q>@Mg0kCMd=H7yiM6!GO!#wKOxvy4VGS!PT zs%HLC`TE2uT-zOrwYp*T*DPzMN9>ln%ad<$aVZ?W@r#{6qw^{`HY+3@j}EODUo~gk zw8|_XYoiP+vzloOF5|n439P~~W~^M5*P#+D*6Xl6tfRY41q7~#@2I4l*1%b6E?KIC zaZ&Fv_k>P(Onn2Yo8ns%#>lab)w!LqkN;e8_v zoLm;PMIPqODO}uH$RR8fOS4&@HY1r6?kTj0+L*VVEn$#EjQ`Sq1l}{jlDjW#!dD}w zR}HymfPB1s_3N8c(A_cUO7v}Es1lXyk3PRZ2RulVQq*k9yAj)YI`a&4 z=sk^q0r|J#MFmKbT<41p9oi+ks=?A2qEhBMsj&Ujt#9oEhJ*w>77RzblA|L2{9VCY z_a{N5N#+8ZOaKbU`ZTTE&lFbGp=5)M9rQ^7RzQpYf*!D(KI6zN5LqB!8^@`8kl$sq zV(Vor;6bwTOS$l=Er0f33K!cJf##}3o{7_n%!|p9SKyQLnDOm83!T7{h;&+m z(R^K9<(+abXJ~^}aJ;27DF=LyIMnciShqzUs7<{>$8p0)A$d431H+P%+bpyAailHA z7$if+HvK)&scMQpO+GC&`OLMEUonW+HgsOL2f9Z2PMh82$?Yeq1}%)163THM3X0>t zAaz~)0|fv>aH~^9#1ZO0WF_NLnC{*x7ea-j=B6ft!Td!~2IJ-ZryPDyHCP-qwZp=s z)v3x1A{I^DQIQD~v&|vuiHsJ&wG6SN>`jz%iCNfLT@JO2mzH_l_1cB1SZ;Lbzt*wU zpOU;f9hTwOrJA|?8u{vSxcMshd(sjF&yP+xN zfi{$Km924xTXcoySzQpKnu3Hd4)u_ua5{bUMu+}B&KDSaYc9kt#Xvwq{=%#A5BQsl zUZ*|x|y7s%yRREB^?2A={%CfsNJyRX_t zCNY(E%(Y6~)C6X}9EPp79P@Ztpj+5~8!jwk_&OzU@W!yLR()hY~d2bUXsH z8k^T28A+8+b|F}iGN9$KtKc{n{ZXU)P$Q?H(B$E#QVjPNG}KkkyUNNzwb%A{uP1^O z2a12-nz^4onY5f*kb~Bk_V=0ww|aJe?<#GG|*;m`UN;Fs;8-|3~ewJ+uE=+>6a3MNB1v-m;FeO!nse zr9xshZ4Xw$=Xu&K8`h(I7!AFtDE+F8a@(rkU$w_9cQ?H@DVoxM9Q6OQ$Z#U*1(6){K(qu!;lsY(Pq?bZeQ!@w3)Lfl9dl?2mTIg_`F(d41QdkGdTE)~PE_~KM4(iJboPCw8%RrIbA)FyE_rM^Jy^yT*2z|(geKI|k5*p$4k54m*Xk7fE1fJ{z_qj`q zFGU+*jQfZenTrybb0O6tw_yzrK|2r^r+?2CRemg?*d7so|>12Dn1) z#qsioFF2qG3)FtNVGpX^XP=DE&j}pl;Yrb%wvJ7kgg~6fD+vSZTNhg6!fOwzjjW$3 zzb}~GQ$(Tv#cPMfOvjW|;n#@?`AmvCZcQbrJKasYOCn^IVwj&)Cmk&)H*vowbUEyV zd$NitFVmKQs%P3>Jt5gj{9+R~QdEpbE)gL3wMCfw&3(ayjF>obE#oBDm{|+C{Z(9N z8eD)vi~sYB1;OP1tUu|Q|F@s!5%a$J-Chv`js{b%oKj*#_HS4j^>0w=rxUq~5BvgQ zJe`qtm1%~KBRW0fcgI3 z%I3SNajnQHG)UWWNBY11)Ulj!-q!s_w>R7q^(i-Msai-*#1PwX0lFZF8!gPV2S+Yc z9%SMm@)ZAx;#Vr{D2=*5Q2pl0$U;IS7;JwM<-`9$-r$uEl7#s__Wt^m4v~2IH%CyE zZB0eyC+K}$>Q^>o;Vr)`vN!qh6r*9DoiA;Ls-QOl?)_SlAphc*^Bz>yZ!g$CzBI63 zKUqY}|Gi{dn47l)z$RRHE3-w8$s#U}d3=?;M2`8Dqxe60$Q^1iW?5b0M_lh07(1$O zd}ny=cTr-x3rmHrMiGfnN~6WE4;i8DFnMsP375;?f44M%b$e~32X9X7-hC{}bH!$_ zeZ$kfPswXF-HXFY^ICO7F%yqKton@i? z-1ow%+Zl=0k2m<+f79Ri;pEN9U8xcs1wim^ZETRJ@Esv1HH-b;Ft1jE5y)K)%{Pc@ zNk~YX?=UTTbaujG;<4WKocXt1NxnPeCcdX8o&Ul$PiNd`WK~5In#yS_Zg9DD)!nV! z0-(?l@>xDUe*gL0|3MYJElqcwb5;J~o+7op+2$>JH@2K-t+%hD8=w`Yr4Ny8?<=9d zd3V>y5rb=`e!n!eHn--G{gr(=0`?nHLCDpdJX!iwJ$0`i5)aT6kT+&NKE9K;rM$3k zWP0KSB>ppC8VXzd2lE}IW*#3@|e!mO|n zItd`*-tGel|Dj_%SE)0hC_pSp{%UhB zM@3Oy?!2>YD2FzxGK+xp%6b9W6nHEj@r={Y#-^Y>r=&i#)+1+g+vu*OwNB>e_4V7^ z+UP|b72Lm)NPBLSp1bAH${a;&O~t&bhz>A(L!Rq2p$>M{3>*%2tUe!KJ!gTgZPQ2E zQ!UwfPw~xiwV~&mI%%7#5alx*cK-R}%Qz@wI|MAWTwHSUc#Df@LPt0Zb#;~x%igTL zlEb1xT~=0h*k$7RTs9eLm&va=4iZR#I+f#j1A~49$~Mw42i~!B2Y)oIk~%&2CFt>u zt}VOI%v4diHb2SdWwYYC{$lF48C9QH&jbn2L z!I@FYzYFtAib7EDkE^YH*I7p35K4u}^w_MG*;o%I*lpcX)0&|lb^9a6os=V1A5n_f zlrr%AdgjmW&ySI_IEv&9%5_~_W`KXjFHEND9M#e%wWV8644y5D0<(9jmz?AgCrN*e z5w`Ma+tAn5>Y~sED zKYuh(P+5AF%2>TETJ(~U_|ne@X}En(ee;X9(JA?wzN^LP5ZM_;s9K30H6U#M?^n89 zFFglq;Qz3D#XpkzkY-$e_dSAv-=kP~%sWNF%duNLwuX?Ant9GsBX;>cuvdmlCm~FZ zbXo;pSAks$BmaA>5xY~7XS~L^Gyum-R9oE5rj{Sw`(L|x=?OajlwDBF?xt8DC~lBk z^wOG2(QonH9^1~?Y6n|PEngl*`R|CER~`>9sgU<8fEt(>9Ee{p&OzSTan+yy?w#T* z;Xg*siKYIAobSIQLnaG>4$^#CCe;aTZEZxhu8DD;>mFu*&7V}*$z^Z zxSI$ACY@M3oAR059?)FT)I@HF{&ct#M? zPhD9hQt;B6muI)62K8i|{4Uz1%{I8K>0KqXX-)zW>L|SnC8wP(gO~Px!UR0kNH@Ww z0l?H}*&52p`Oh_PvcR(E5WJS#FHMiUt6bc$3(r90W(hi^(t5+vJG;H?P~kyHLY+K$ zQcmt0n4hqlUeO%8{$mqZw#1!RWDEq+%N7S35~;y&USQI}1^|};$&K09jE#S8tn1P^ zg#+K;-f#ze>AGz7UJM>bkIu`Ez*`NMbMbFdZ*<<3Ijt!Ln>~Hu=dW*aTup-+jMS*fLc0U_IYL9_j`hekY;8K zl)K9JGMyBty@?hLiS0_@haV)2S&jg_OS5XJNVR^5rX|lMFy|LwUX;( z^~!^c>ssj*1Cu0xH9L@j1y(NB`!p5q#HghBD@v(N$1%mSGvw6P;SF)e7f!LlTBeq+ zJ6w9_6F`RQiNHQWHrND+`lRyJ)q*X|Z#+xSDGxQh%JER9t6n@{vWj_v*_e+ayvy4z zYO`nsc$6bM8G;|nSvb!}e-!|vYP)2S-jv&EB~L*PCs>T*fQ>zRuoL=u^=Rx5h$05qWZ z-DVtJZ(Lrs#u8~<6^z<91mc;HK?+K42IL$38X?;~`$GmpE$>ZSQGS&k58&{FBW|!X z>r<00Ml$)rECCYa1NrlA=30+pV+*K6m!mjkik@=)JH@M;u)wo)+bOAkzu(gYVu7#@ z!SY1Pl=az*DD2%~r)z7s=1sJ$8<_%r)8yFd$Fc=iq^iATWz@CoYp8Qe;M>9^7wmpI zK}BY|br|Pek#&BmHb1OTl1P8MjP=zwyx5;(orb%MThRHZk+~K9vduFC1X4NcC6CBbJ;i?)+1Kx!%VAvuta0D6X=$`0jftG{hq~_PqM_MED z%SuiaO+mFo)7?{TOM&1N$N+J#iGnW?3xzdVQUMH8D=62W^^Hai+rufFdjbO+dY?8p zkM-?Zm!OuE;8zhbAKNf~-$5s%U$q#-^$1G1PoekZNQ$r9i~l*6jzddOL^|S6aOSEM z5cNd9(po6eyS;uR4fngW=eu}#l-nzaJ?6)Y#7u10fQ}n7yxcbLx2ny61rjWeU9W#K zcW$be+XfG!W8Ak!k6t_FycaE7caiazjKosdGo=X9WyH4&7lTz+_X^6bTF=%WSJBL} ziQ$iNV;*lXP2xKap5jAlD7!YK4Q{{CJ_3%8%6#AF#{o0S>2-6U;8Y3clf3EvqxEicleWD& zF=p=+CqTIL|2=^B$N41n#cb(S#o}4}bH~5=OU6HmEolD;FF&1|o&A)b7AiA`D*&}6 zG_gUwVWfJ(e}^!ON}NKBYzTNXPXd*$a{2qy^2u(1iK`W{xcSOVRBo4%$Y!aMT)0q7 z?_F+@_u2mXUcBx-trTjwBB?`tvW-^a*W_RtGbOFi4B-!rL%0j*G z$bXtNo;dJkJCu>b9+5i?d^2Ydu(Ta681cFXn?Lb-h=# zy80TMD=8?rv|0LI8Lp;BWYby}hscht3}roxv6*7_k|s9ubc-H zw)Dz-(c`VF0w8)<)_PsI|HV;*c_=XSZV^8i%;^t?ZSwpLlbSx8k%#vMiwFFdt%O(e zu03{(xQbO4Hx*qql_@>k(r^v7!{Nqfhlo;6b#+WH(y8jRv^|CquCcKTl>otJ;MJ%n zpL;JG!ZM4Rcgb;%2eS8~9*wdb&9H3xCUT}vFPJKU+%NhQuX%%t0U=$B3yU0K_>TXz z3^A6<0}sET82j^^7J_KYew#x{!H zu{FE-^1Ab5A!<5Y6x7q(A2k|P6<>^AE>;+R|&;jL(yJ^g_(V0$Y_ zv$pNUA%5{l=HInvDZ@3#suD-3JTb1eSKcIbO<|LmF%;!HhJqNPom2OWT%4hW#vq$A zjB%8_?|YQU>VvNvnWo5d{o4iU&d>JWp5 zK-UYqy;J#<-VCtlalb zF)%F5xm>6-F87?CUT^gi2k^(@-9=GS+Y#dBaIoa2@dk+wPR{z~ze)NCm&_ zNqAC~*MjPgkmU+%gklG6o{YY}J-j{XW&a_X2w{h3P70s8CAVqsr8qU5;6y)|!kFbW zbrbYf;+ly)mv_l&#bf@2tVX+Ko@+VO$c-yCs6H{RT?@BvUn`ME6jf9}q zy_Fy>0VdL8pWKfc#d^WZpD9GXLC(VlmO#(y&DAwrx5tkz6X|b$;97KlmHYU&D8_t- zs?OqTi`O#Y&o8bW%h4_bW;|<&(&{O#4^!gUwVB3!MspSbsb_C4QyOo788MnSubpOj~ z)WUfPM3Vh9bzDUtkg^rNc~ZT$|Db}PZF1MBRC>$JV= zGEaVuJ*t}OoVRI(HE!vsXa4*t$)dz>Wc9i-`asP}Cnw#Sr%pj^6Z!KmPe2TAYWbi3 zBs&DOzlN_R0HmZOl-V(w9W(ldKn!S-z2OEI4eoD>}J>%DQUjpYAd_>8zsC z9@Q^v@KV-9nWW$!!OA8wc4jbt<};t=nJ|gFJL)26pM8v$ny#u+zp-)OPN9@T?Cj6f zl5SK5A3IG`X}@=ID2u@*3IG)&#CeyZL`serrcd=TI&6G3XKv{n(3G)O$?)2u`&26{ zsQC72c+Vvt&X|3LR53Brh#EF6Ij5wnm20-dH$2^T!ta3TCszI5njhc%cYFcu^j6J* zdVUMvfvRqQ+j60|(vffsLv`muBacQD7s;eN3uT9g)A-PgRZT9X{B{aWp*;OH3c`aR zf<}9mx1kgi!LCh*qub+p2X=l*c`H2M#oJnLvF^~%6MbWr2WUZce%)9z=GJ@Vvqi>n zgNXXH)ibPy^laO3E04! zE*!sg6{e=;5e59?6t#2_H+mhUa#R2Qc*NY_mCUHwyKUkM&RCvuR!sh{zdw7nEGkA9 zZVI--pMzgQ8eWOoQu{rj`qZwl!J2At8aE@Wq#) zh`yU_*>T@?9N)ff)+X-yZ>OE5GrduJ-5&qNz+F5`hFZHJF4z04elC5&ZvQ>LfA7`y z=oF(Y&KoA4(W@E%JVs>VLekWy`bFx>7luaI>OY_h<{N*S&Ob1VSL^=kK_1)wGv--N zLj3=q1JMzum)sus7k&X4;eSLTOJAS!%G0(oZE z0FVVx;SX*$?mjLu+W7p&%K$egPti@w>Q9XAsCkkvx``V&_#cn0Ujz++-Ty3HFj&xSAZYHhJP^KaWQAAVx#4#lX}GJOMUyM^QI*V^K}NW3jUdC4clxeAN%!hvvno4jYBoc z6}?+_J3c8KNg43i7=Ztu(2fs|4$-^K7}^>twL1VtEfEePSW6%Ob6U*nQ}zKR1wy;| zEAb7OAgk|hu%Pene|WCB)44n7-f@Q?1X65Q3#2%S+5uW2vmh@xfdfRok$wVHA^C7Y zMO}?$LJ~r9LK^?BF+9%)3zZ{J#N=M-!Q}F6QF^2w7%;UWifn05R-gqj@55{iX+}EM39#-y4XMR!!MPI?J3P z6sPr^II&BLx$uA#YayEyM6EKwA}A5 z=o%ug)VK&$Kl=ixy2k7O4pdFNtT;l#U&~*Y;hM;8AQva7%PJ~rcQXAAo*{##lHq~X zB|ewAYypR!xlv4Qwd701&=Byj$Gk%QGXEvejdwW#Y7g#Y(R{UJQ-ci_FygtR`s)N2 z(doNu4xr3u0k<|LCjjVQuL1Jo9e4cqpYgw1xR?IF{O?6aX!6bNg+ulC_aZNXM7)i= zIb+NJo|}-zEN=rFMO;^tip!NlHuV27kvR%9{xi;lFUP6(IWV|bRfxK7#6MaWvSHKG zeWwscc1ALTyH7Xt!KWYT@EC6Mo5)kIq~r)pH1j0pkubfV*1uxe6LLg*qqf^Arh0Au z6lRY>Z)yE24oh%6G4&j3*PA$R)R@FyW>%;2*rN5!Y>@WfpBLXReyF{1pU*O@VBwGr z4kQ3*k^YZ*4)X%jbt>kV-1_rD5Dqfi?<|PXYXPw(&r-CFcE&+h-a2l{1BM z`e(*JtuXCl)4!+uy=Rs#gPMLmks`>VQVWzZdTI*j0db#MDo(q+7R7FHd{lZ0SkqTV^nj63o0w6uI3W1 zv}m&ehBn~O?;3n;?JLH;=LzV8rF!t?p?sxImPx@B=DQ($N`;s~eBZ9>lPN|fCJ9w( z&|gBrrYm#x1Qh|S#dTMOF7srOQ@cLf`$;)FH&&O;&s=uT%I1`bi3tcioVZJCD_n!dwoD0u7nxgOQoJ|!M@RGtwIK#_jCYJfG>ZEcX3U`!@?CmpFR3ZUX6a{>>+H#W) zP9;)ec1OSK+Oz1^UiMtX^!6yxr1`|`RU%nLMUEbpOC~JBo;|qt1ANT%6}Fu~(7h*c znbn33i38T&=0tWb(EJdY^ekZ^wl070sIva~wH(wD)58xj#~Y9uL2ptGNdJnQ{5Qm`=p(Oe#*t zb;QTs8n0L(@^k^u(Td z++D>%Sfv2l$4JF`7!j$#aEn8Uzbv0eDC{8Vm8s(w)rWS((T|KxeN+;e@?JIjHXapz zG~|fxTGE5$OJcHXf|oY57QgkB_p0gM(4$3B;ws6yG{^a}%|AXof)oxN_6qb&;bia z=w2QbNd%J;T>jEJcxQTm$=JQ}p>6ZFjjBHkPMaE(MRb_Uy*Kq`OVHsl;mNnz4%%~o z?~~%^ao>JKWH@SNaPDMa)*aYwVba94p#jIZhMq~y`U%^^N*G_~Y@Et}c6d-<@J^ zFf^!Lkv@5{5rz*~xZmR7kM=q&?$xWaf*NiAVfaKWK?1-PvUKg-P%W z2++-Qal$+ZG`ZYDy02*u$&viuQ}o?Cy5SG=r)Z9~A(mE)8|HwJ`QbJG1k1PAheI=i z=r6_2j_M(ElzdFFFY_?`_;HHiaUBu3ZW_a=mTca{^{b^2ZYWlpqO171(@o9rm(5%C z%jStM+Ptg3Z64{tk>7{$>QU>eGpX*{&a#=cKYe17PsuzIuks2Ah(NuK%iVyi$GzZY zw6#`6!N?P>PkO``>c4F?G{TCbAU_5~b763Cx{n0rO%DH}2Us2QXW6IC1{<%qcft6% z_*L}PIh=3LFDh&&ENCEA7!t3jGCr^ppQxZOZUTO0I zN^Rz85GmdYa1!tmVLYe<1xoC4UHEHI9TxZl>?zhNirY@y5~kRX@e}k$@s9*{ z#Q9Ef(JAu)hmMT2ny?+;;|165V)^}_DCt)?4bB_s@^#o9{BiKs0dlgX--9WL%KS?5 zV2BhEe+P5Nw_@Q8Lu>#dH1sQFrC>xr^&pXm!wojZOq{FAf=~~o6k#d}K80#rRHb=8auzF#64;Q{~dI$}5^T8*YwsxO2yj>i{!J6wV1{I8i_7^wbEkNLr! z=6QvfB_h{rO(m|bI7UWNykV)c^jwdWsJ`W-sEtiI3!Du+Szoe#73tWHJg0hi;KczA zQhY6O(?C3JQG{kI1d~NNYa-ScVFA4{|PK-M_aA zIzu2zrfwQv@U*3iJ+m>Rc+DFvU)Ygv7^HSOckRBwr$p_$LwF1s zW~KR=x#~MaQD(3VOP)f(B?fz!Ls>^egd9U@PWugT090dF!owLPk%e$p~_g$9naop z`8@UBXWNs&pl{#fanEpHe7ixQ3!)US*xxBOE#fl7y=}|kZ_=%J0LQk%eNK;I8wiNe zzPcBGq&G|epsAwx2!6~o>MBQj3#sM`x{JC4NQ3%K4d=rnzp zKt(1&j2oE%wiIb0E6NqHE!de;qF*AmTx8^=-lLPfegaAjKr||^)GW^RMEigbRS?54 z^$j+jMGbcKxgXm1*E=*?OP&0l)X=jq!HbqRexjguonX3RnJ^mRYWn^VOdzM@GdZ8f zVbTQ^+wAm@1Cm;Hm6BYNO+4`@djU!%P`i)S8%l1QdxlBno`yzU*A@@8Aqz^<%#B6! zzqM(?nG6X*$-VwMPz!FDc;~gHS|@Uqq$&L@;5bkKc3pwR5MZB)n3-|OGF7*NW;;lm z+goEAOR#iRy1|O>Z&VI^cFy|DQz4>!yp4-md-^3WkD7`D8RJgY3+ZaxCLG$!LKKjwBrib1aWLa}CcF^)tM|=BSYU-h4)}%PP z@PlVBa~U=IjLu#J?zvrg!r@q%du+_p-klfwlDC%}RpvKu*h{2>k#UUpDYWp;#oOE4 zxNu>QX!%Ejil&$fVichs42br8?$u19o)k2sno??K`q>|uO;zk7$hb>xqlSaDvB)i@ z4{zrs_q#|K8E|;VQ7cGImB;!Clcc}5VE9&=zIFs6*DJ&cyuuscgTlk&Dnf){lV`h6R3{p^2ng_z0CYFK8>pd*A1F7(wY>bhz{tq^_OKy^?B@D10J z5aI|@)X#zFZAvW!;q-JwAfoM0u)X@2TLD`pOm*V(+an0xSEcHER0LL3naf^QW$gGk z4HLh>n*xrmlRLFlO^XYfAfUfe)#vy1N}8CMEcUu~@A|k~&kAsi4I@7Jq4917hE?Nz zC;CMu08;Ik9IaEk^?Aa7Bgym7uk;><9m=U|F_&Hxr%=pScP`{Y?w*REzE4TIVxtu( zrtc@%iBR$)uw*+tE=W3*-(;umOI3KOV@W4!AHOBEmBc>=Cl0NYI7ZLTd@+Zu*SQ^7 zERu5$W@ddjcks&zryg6E(CgM+6&x!2Xjt{Y7i4^e92O+D{`2=&9(`QJ;MlzAia^z( zpCIQZk@|#?*PVMHt?!dm{mE-l)9Z3b62T&q7f;g87Jg?Q#xQ{=o8$P4AVyZCFO~ct{XK$6C7(q->z&H3ESY z(%JV9U$lp#?VSD9V4KIOefyNsuZ^EOK$`gNKGp?9M+3tVaU4WZC&c5Z(CRxl7%h(Y zT@R3ILmo&Q-WXW;LH>2pg1?C$=pniib(sJ`Fjnq=y=PWW0&y=PSh59I3B)JC)6x}j*Cz#U+oiKTl;b;8O zAkA#lB23}sMcKQ zzcZ}S@KFu}8c60mPy8`^+9mOJO{}c>fSNhAT6)%$NS-}wYfqd>gQ)q?i&1j<7dx6l zV>ftY0;RSzLI*%bQBk-06n)Tg zkvl+SQ-XAt?gGE>&DxLxX>H#PE9fBsfvdOf_U{zo=evG%Brd=%e+Yg5GM)lA^S2b?PT>d zAPlr&{G?xy`8&lIOc)Uya=rfULutpiObS*@80eP~{arox<9~~dLfOI=lR=1A9n@2e zx<)(51&$X-e_>P}jh%usECq~Z}jmYmdg+O z9FqVZPItGy=z7v>Mr0W(>l+XdeGyC*w+m#;PE)+N^;n6skcwWuF`aAo4?@isUb~b( zy$~p;(3p2e?ZcE3$!b#wdvli=0gIW3tMBrTW7FvWW6}?45+NqiX>B>hQm)Gs{V}d} zMNy!|e959uh%{clkg6)6Te>ec9G|u_nb(mFhi_)na|<_m-(015XVg@seP{DdZ@L*rB_k^ z4ji~%=KqiWXe1YUAa3yYa1ow?<1M;sf@*Pv{wjVEDrciS!)vb3jcb?;4G?x5Qi%|> z05d4184SwLOnV5OEcdC;5jv=G`=luaMG<1z8t- zLV{$)_5v)@Q7>tt6)oEoL^iDvdJI?GU~rc9HwQav>d-5PKW6_a0z9V49|YWSOyzwg zShJcIS&|!xQWcZEoSaF>Z@~Z5MvtG$bdRP#*4KEyT=;fnBjlN}Ix~2bCLD=LA}l;!%DQFqW^$^a3S6urZZi|`(LU%Paaj@1_M1YR)K|`{-P;O#{Upl zf2wUfX{NRP1ZP{G1MbquIWJ9<*NEuBcrbX1xMZOEGSRC6E`Gran;+@5bBF~yzO2#L zM?nz(6KOVHi$^ZjDlOwpb7KOt_Il^qZkCn=Z((?>G{y57sxgx}V6S#)2O}f$BqSzc z|E`2A-FgzrMsTKDY(8hev7_ZPk)}QbUj;GVzBN_=BT_CREZ4*TWc{NFY2=e~pXGcB~CE(5*6M0piv%-L`$kvKS9WaH4Gy&lwUe`k-W70uf? z)c9W+E>2iuTD-1S@Zfzy+84_k`Rg|pZ?jc$G~>Ft5Cg|CzbGEL&C$&7z952DCt8e2imgRcN_iXF2KA< zR$li`eF2wJ zgBrPI?&#@}hpKn|Q-ckU+p8%T1n`>TyO~l6aad8ZiEH;lHVp3kE3ry%NWGd(;2yCO z@ppouwNr7Q*R)x6DPQ}LuZ5Q*U zohn{t*b?{d4Z>hLhg!rV0A%WN#1DM7zCBzDO!xSy_@?LS1UPbj?D9H}k4&U|tJIX& zS8$QAbZGiWS((gw^Q>EO``#%{fSRf&8*(pZimHtXHbhHN&?G5DUY`1V;B-&G!(e0m z*Io-tNp#Db!0eZXsXQBq#<%yxmOMM=<`Oi1{|T7bDvPDlpYVGNPW#Ro6Z?s z&)xIFkiMwx^j_;qe7q5;_Emkr9)4y?5S>d(A?Ya@aS+Pnc^zSs6E##Xe?-lpD;N}d zGw=XFH;-GZ7Fk#cYB$2S2CnzB=b!HX8Pb9dOp4=o9z1wfv6ZUyzOY)E|8_2k2v+6^ zuruTjb??1q@}kXcD4h4`9vk2C}#LDfr0}w9bM-xLcy;3 z>0~I&h8q++`9&#QV>VGS$v-gD7#1$Fc^q!zUHSkV-i~$miov+urHq=-^3qaXa&W=H ztTEQOPztsC{j4xtW$vUu)wmB0cS0KSg* zd`-*BaE<(y(q)(0Z9b1dJD=CI=43nbl}9OFTbL4>b`WKiWxXdTw2_iD{~YV5VFf!} zOon8FAP0xsST?TCGBGZ?sbWaN5;#K&dL2ls+pU9tf#nJ|X_8Zn27Qb5?YUC0epHim zv?cOJwWF(a?*}T!`YqpNw^u-ZXG&pvF?mvCYI^*HB|E^OQC7lD=oc`@^+yZx5fGx& zsG-7j^3Cq^DWZjeZzg0b&V54NfuW9;bJu1Ni#5^YrK*BtN>JwVLW0=$eV|EQKrJ&K z4sym<#VNkETb_SQYZgJRiP{cK_x#`uv91$(=l13yZ4su%vYVlEO~hTm+a-O#J}nv0 z5bFkg){5?+Ir8r6&mS9KR!@OgeHC zPZB+*_Xcv9SBd7?KMA%-`k|{=kkIvCCW}0nZd#6HFBvvFxDK^RRk&h z(caAHipU()mb0imbE#HUYj58%Eh8-?%ymsofAoTfK-@7FRmqI@TDug8$uNd&2$V21 zC9)x;SB6>^4Q`NoBnmI+L{J8WrQ3Tz6|`?$W({n8o<2S}DWBkNwcky`Vxl|~wP0$l zo0@5Yq_~{ zh{(Qv{40-!fA-v5GP`ijNPrwqe_zJKqxtVF=5M?C6CCEbjEr&3p>z$6*0=`Q>@y~h zQxci{_Y5xh6m`Z8Re6Z}%^oz=h>Uc2_r5IUu+&EqW+BFa{QbPWikg(BpT*Ft7pEys zWyg&83cqA`>BGbD;LMu%^f57oJ{EQh1YJt?q94`o=xAtN$e#_L^${4?nss)=tLBa`0CFv zwuIJof2;B%>6YY<1qnUP5unu6zG@#{UpX>7Dp z|MO|@lG(spUK>U5mLpSE(qov5q3H^0#B`hr>by7_!`d6G3ECTu1n`7{#js2Koy>3Q z@_&u;SR=s&`@pa`$iIplZHTLLF`!$BN`FNu|BoU_#{}bb(=Sbzt==!M%D<~;VM7i{ ze70|^z0#DM$(%LPjAiJyB`MhJ#F>fzB($5gHrL0R&u9O{d4FGPk&Yl5OfoAkGyUaJ z$dHhlgFJc7du+M@x)t@O1WJ-!RXfH)*G#vtM{sa`OCni3L81^uQ6Kq)uS2VmfrPiq z*^;HmdBttvQ}^tJK)raS*ssFxNc~^y-fs6fR(B)FI@Bwhc^|`V`(s*5B4ZPQhaBHS zkktH-hMdw}n-ul$##nptbH*aQjC0I}V7Ljt(Lpg}<+XnohE?m-mw%ZR)N3NNwymUG z^F6`rT_v;RznelIh=Kc%SfO^c#qo55j#BkfgW{;3Q~Rq7+@7ofpDTRmx$l=G{3tHt zQh5!5A`z=zBKJ9?KW2?{2it|;B(Nl*B|-#2FZ-dw-x5a=rzSb6Lt@_L|HhSAYrq<< zoO7KMtaE&+!+gi3&h+tT7L2B59V$jS=1Xpi{FF^n(GBE>G%q4OMhEZssTH4j{(OHI zG}x}hCBKhwd28n8K;<#=Min2c=>5mX_MQ5Y;`Lc9E2(LkZ_dIm8U&&K)faK3k8fK< zHL3%S-ffu%k!BpU@atO z;eU7c{{~mSFP0JO))7T43s)6kUI3sFmf$yc^KHp5>qJmi{{@p4tjGVK{^M075zOb6q&i#E+!O2E9nyYyr1Unl)D8G&h;|0SpC0y>7%qa>{`ILk&#VPWK0*5> zKOVQ|6}{BHZ+%Bq0+shO$vGdH%~>W+6Yo%%K2n~|Gtk4ZZCfTN^|Y->w_sbx6Ior%7LE373 z$D3<{v{qyTW?s>rqT%Wj%dL46AWw94oi%UsvTyZaUn1chyC5Qho@r3%5S&VQn7cST zAYp*2)Z!C|5WXSan3}_#5x}#~-HORyc8Bi8@L(HP+I9#u{d%{l#SK~kiyRbp0F^}H zge)_G6@eg${MWv~{)Ti`VPRp=yqh53GfoV>|6L_o=X`k)3beN8GczQsJgj#6lWV;a z*0dF_LaP+i6cn*Kp)VG5E)$!;znTIkE7DI$ZQmH6**W6C=u=nn&>@U>;KANZD-WL1Z5 zn7$W7Pd8s}eQwi|#XavQIt2BB9#%?o&uFr3gXO1vqCwn8nMZ8S1F?zbJS)m+=o^6+qaS9h4;!n@bRD5avqAR`P(`Khb7kia?bqN5bdVoZNJQbetzQ^bx4 z{j$|zgnxfS0vID`XM-HuA-#h2PBIk{V(yqX0L#M(zvU|iS1j!b7iy^i%slEu&^?ie zPdbLKwwC5U+amk!a%5fS^M`GnBFEk-0#I6540iuK#4RkpWG;pibkH&jEEP2OLxRbB zHgVO$)p1SCk;$JZW>@Nmq{k@y&$+?36jN!E>a}!_7(;WZIdyV~OcY1M1e-qrXZA>L zmgU{!e_itK16$UXIF!;atjO5g>>x?iJ@@&|!+x%Zv#gnNo=^e;D|M;<$JL#)@GqbJ z&CWd#a__4j89);y)U5JRdjc%VFsUYV54n=q3Y~wr?Ym4{mKle9As`*5CY7|@sB3A? z;ARAP9i#t>PQN~_rS5Kt@)4pY3VBXX0;8n@Xj!4MalTNB!Kn?r>NtQMIb%vnZk&ti5Iav zt&q*5ZiC{SZ!Y;D1rh?E#*+gN99!0ma8yd0`AOrV~_jQbYvVx`uat zuv2Vqh=NbhWx|T@+(y6Q+!>+U!9D#B3_~2#+Rfv!t(=L3z+oVc7s}3u7D~?mgCJXxXh@IAXGklMK{D37X4f4|(I=9dxV`?_fClv@3fY`X)en{d%!^s)j0E`zt z3l=TwwBSyWU_NgLxK~4KY2-oPVdf^;@Li(z5y<3x)@m+PMNO4 z@H=qf12>TYaIL0aoYy1>DvZidbBu zkHuz-MB4Q^3@a}`FHm$U_X`P%uWAM+cy>KCou90?(mub?y+8H7<+;8bN=*UhrU)4W zGywA*^?r9E{T~$E6%fR;L~`U2H5GoYM#tEh{QD;^09lIDEZijXZPK^YnX^>QBxRWRH@Qj^`0uvx2)9y zokX`BUQWJXuQr{Bhv4bExflHHmSXtrS)z4xFtv~T|LQ5 znwovJ3H{bjE_XPyKuP-fG{<}GTKC>h+jD?K`3WTQ<)EwKN_{bj7$D##p+Kp^3bp;C zSH_6`=gTT#xM{8sLJ8T0c_3@l+#%Y&5lishZ3FhXs`6GAl?foOY3lM`D%9-Edh~oc za!l(bzIjF0=<%b!D}`>Bd z@{IuL|9#mUx>flQexZt{Cx2wf)p8Rq_CZ%!WI`M|sWqvPtT8z2^;({3uj0sV+(UC?6#^&Vs z?FivPSr3Ga6(i`-`nF9BWnpUB@!730Y1wnN$K6;bNQ*i_S#fcks&gQqxWspCG{Nnx-A>t0y;w*zA2T+8HVK#|_)U z97SPBJx5tDn2jYycb~6!KB)k`&7-+v5nI|@Ha<<5ytFX~WaTFbYUfMGt5PXOM~bXf zkOk{PFU<*fLj={*wVd232OY$4cins%Q&CSn#dRWc2-g-nJCVY5ZP?4mcy!~Ls4$lq zEcwswVKhA@DtppIA-%WqeQrqLW?Yn#3)Y#mVEhON^R}RO*IP{Si!D+w?YeEgSvR?i z_&J#X$i&G;*i+*7mXc6{!wrea*Vj?^AMFriA^O8E$gzt-FRc!q2;v#jmyVYlQjA^? z2|9!5=D-$w>sEA<2dk`iG&&QTsyQ9rUTfeLjVk{QFFYJFP~W{1ZsqIyg0$Z7mBHP> z{b&TYAabTYM4?7AsTiKWDWZ$v9qsTrKdW85@_6ClCTK&DnYZlOpawnP+%7*{Gh{7B zuU6)yqMU5X3gH2)l^pJlfDsMqt-4Uvx?HqCn6|oB3!NUNpvi02NS?W_jM}gm$846` zFA4T+IF-p@TV*Br<~y8im;7wsl8~FoI$T7OLg99Ca}PQuCf)H}2VI`5?}Ie5^>n z$ecKOlTeoB_Ka>9UyS`1FFtbXH2Nj}#G)^;%m4QBMZU)F4|8G{$Cnu@*U!(p^T=%y zI>sau)e@N(ME_Y^=Bq@EgmkQM|08-?z|-E|O4gkp%UtK(oa|ctBa;;D==yIKQ=V#3 z^R+RV;c7d0YekQA*n+wZ#(o&fy!r5Yn3M#IF-hCps7H3!OpU zRC3j_ix*RcusVvqC0xC)#8ATrg&!ntFZx768|S<1>I;* z8G0`n8W`YnY6N-3Gl-8VnHXvc4TZ4o}kbA4GO~ZaPhhAR~X1xB@YCPCkw{c@ z>P^gi)C;aCPulY2kf$LV4!mhauX?0}9&xwCZSdl3K(00>;(#J5veuk{qjJk#_d>Pm z^&ub{EGJE5Z?jE;>xyRW$2Z*UiW#U*vux7&;+ZSRVl10ZCoS=rLfP9j-21#lHS3R0 zno-Brj79`)pY1?{m(ZDMsNB6oKvLz-f;zBI6#TxSRT|lL#cRbd695<{XEe(l`NHh>q$Osie zQV|KEtjvUr(nXWXu24zJ$R@kYG;E3Ny^2KkUeEhSIyvLMpZoRP_j8|r&g*r~<+^^q z@BEDSh)Z=L9q3}S*IS}UptkPc6f}~!;hY3N+On{d(%WSg-ve7O+S5Jp4u^V1S^ij5H%nDg^XZec&gh<~P0cVkvwAs#l z5H0Bu^0<@0N|(L4ilhQJh$cL=>>r7z<%Ag=R4`3LFh+o9(LF1R&~$bUjPw86C-d3M zsRZ3YIqo--#%qP_0jlVa2i1ZI)UZyKqSW}yr$0-q{hs5*EbUxhOGpDN1Ug=l_ZORT zkLt+v-<2M>*L5>q(H5_`@~>AEu&O^=T2>k?H`L8c8dN~uN;+t+^l`7@!?X~7H`wyg zgKsklR)xHAg8jb0bitZe=Op~|l*MlLGKbJmf9>(24$%yZU>9&h1{nsx6ukTVj2a<7 z3h-rcI$F&vIR$3l8#6P9Ly_!2?lU@N(5z{-xElwJ-2_^rN*el&{ozb+wPwaubSTz| ztkA5!_V5r=;5HmU9=QQTW3p43!0)_@?K!ixG^Yeqm$1koka@l@8{bwR92_h=0ibrm zVdraY$qdqnI<&PmWw8h3gpq$lNcFi_SkqyXxl&xH=~a^B})!ma%Zf$Jom>h789Yf7ky&Oep>ryEArggCK| zR;Zvbv_|;FL`2m0^+uu&B0GUXUINYB<6vD}Fx;gaUWT0u36K{(rOqAZMhDG-8A`dH z$tmDw#LOOqPGeL88o`Qv}0rAN@$e76DDOHP5D^!0+n^k<1ps@Cb<^0odJCD(Ln37);p~7SOO6ov=t!p6W zup6EH7y$xPBA2~tEJSKhFzTjuthrKSXs9?>fM5+=WWJ|hJ0*ByC=lX@MPmbON_m)x znnfw6FTXWe?1Nk{N*R9SfHG@{y}hdj%3(3TemmTC-xuV{#1B%zmd}T$*HAXw%@W5* z`zos{9JMb14yrMWL=%_*z;D`6(weXacC>*;W=dg-QpR^tC%GqW)eR-Y&%uNxcE*9* zx?N=2J3KiVJRmYe=D~gvxD9AZ{WB;uFLv|OiP z>LnNZR9R*2mZEC|m2L)+#i+$aYQB!hUGin*@a%hQ&w+O|aNt*{X>XGD*`*qgazjfc z@)7|2S85Xsb^h(A4e7oS6}DkNIhS!kj*#R0Vvy@~H{ZT%@%@>)kH_ORXWk^=73qU?Kc>d^-Ajd(a6!^ga*4Zcz9=|%dt=UhFL~`$IHWKA&i#elu?HyO4sLV} zq_Qegv7wJUA)|I+98>K|N-3^{)#F-M()G{5Vv;s6ozKn)NI0%j>fkIZ>HbA{=k_gb z`O^yVyRExUN5vw_FI5EJrv7a_lufoJZjKkEw=gSU8$Uz}jS+tp0o}kY=}=V87Mopz zEaV6@tSlM5E+gYq=<2>t?6J}*gJ8IuM zJf%5U!t6A==SZoxonawC8pGK{z;JkISmpBMcq7s)!Hs8dij`e4gN*H$(jlCSbRwTf zMMrVEm3J*Mzu)9V8J6AZ#br+Y>3!k5&36I?*j^jd0_$<5FXSMBA^9Oi>3`9(x9Ol& zSQMa-2ze#|uW$g01K9%)sKww569%^eitoHqB;iX|iTqSnZFOVN9KnME9 zjl~XIULJ$;k48)?3d%#RsJ3c^DQ?Si+H+c9Tc7Oo;h`p2_5?70cW*OSTPo+k*b>?S zBPo=c*=`{!%hfr#!VjMOJkd-u>%+VHJ4 zVY&CT;D-|IZk)zp4#sVLIFJvEYfe`|&GY^4F2Fy^yCzp#{4}l}I*~2Ie zlpbIi1UH(9jLkdu>t8K8^pGkujwN{E1M6-yMX2*I3%H9;j^LRyk$cVrl*YU0ZSLc40u1^3M|7(0QOFFgR+T|AX%4V1x>HB2o+5`$N0|~8 zVNvszTjrsSnW$~t%?E?&HDGIP+_-#4Zmrl5simjZ)e3Kit3n5CLd1y{Nw~^=-;DYe zO+s;N7@*${hM_)X>$qEa3_$%MV*F7W?A*0zN=Dw^ej4PCHqU(ky`uzIV<&>s*R;Ck z2KlOcYs3q*&CFmBl{WARAymO2kFB>K``YgWACPkCCypwc-X9G*Ni&w`n)@1QZ|&S> ztS51=*H%xC@%F&(_>0K)DA^SgWa%SO&OTZPg%elOou^`M+nvW>vv$9~R~ekMIcv6?PaC8~t$DRgswH&OdJkCn;-bWVqf5OWFnCw#f+c5zevh`{ z4HbbP`h`!}6hKIw*D%u6!7diZ1@`GK{6eRrll-UZIt2m-fpWW z5#DF3_v4%36W_<%1~~pWevv#KSh+_osPk0UN5xYD?gO(QTS*q?B51Tkis4$BuAj_# zbU!V4vh8JqW*+qk(Q^HwhHV}9c z&@JxJ$#7=91qNLGhMDCNfiE-djv^1+a!QKumCO|3lvkAl zot+((5{+Jzvwu36Z02BJg2Lh^#1&~D{OsIn}#pKyXRG0R>8mBfW#CWSusXmugybz={(HIOKnaZm;d3lJxj&WS8g*9wKZ+(?j!&ti-5G_p z?i~UhfKlAOu8QLI;(wN0k~Uc!nPVfj)}iJXyY?dazsxnSBqO=v(trFl#YR(5YGscf zho;Nx*!Mlm`)ywliCq0>dk6@l&;p8wS>)!=Xdj_dtBZTh@mxNjifqS;8ulK=PmLg~ zz5``;wGJ3+&&48Trb!S=f%0&!3|)+cpDJT{qa5^@GjTJa_N@n?ZW}j&F36e=Xmw{2 z6}IlG%64TaFbhMA9gGuX?|Pep40Ck3P@FAWv!aL~cQU^$ z^xYS8=8c7;C(-I_9&ZLhBQk}coq}Uw+J+>wYoB{yP5QBC`>TP(@75$bBqV@hJzDid zQ1I9AED_T}%NO$2A~B&4K8FIOQZ@y-Gdw+>nRcCPy)5YOMi1ujULd)W4@IeuKF8=8xUbNlX7$$4>V>V?x{_Ug=*abJOzxuF}uS(DOD#2>TUX zxxwyb2w$Rv^=Y`zgqn$4emjc7QZNZ+Cbd8sY9f|nm`KGhuKt|tOc1DQ)Dw+@&C0S1 zK9waqgOlXLp?o9-^7xujyrrVBQTc%tvqXFTD#|)2r5^O+2f6{u6cT7%BCBpi+WW(f zFkMi3Pc*s1RHBWz(+3p|dn#l61x~NJmqI!DqDqjS(FOh2V_IAG{$Pl5a4w_Ccsrq% z=q)n>^l)@Lru>f3{4s^;_H>NKg0Hu(HLYQRTDc!ARGtc39T7iFFwht_D1z;gm{oBw zwn{MEObHM{gfB8G1bzFzzmS`y*%G5LUR+5yZBx>jV1Jfs#_7rqdF{yBe*9S^WzuYZ zix|f%8q;9F<@uAYW#^gVgPaWOEa$JhH5@ftDK+R<1fu}sIqb^r*fj!2>G0u;agVJ| z96idY%$&xy(XoQ+`!f)f|1nqcx1)*XXpIeOY+{zVyWBXyG)QZIW>?nS2d4*vZs5)z z8$BFIxL|8gagcYB`5>y2P;0q7WD`-f zDtf$En)vp~R_2)#-GnD_@{;K0*-81glb`ra5xv#j`NsmQ4|I%TKGZzrgCn`zy3oPT0s)uutIoRcJ|c za_%ee;lUX);d>zkB2ZD1cc~EjueNt;gNIEpk#8X%WQKGcnEPn<+FO~drstDME^kC< z{P++=Z%-~mlrMr!X9W2eq8=bd8aH^q>qfBn8gqbgIstg=s!tsOkZGG`xS67t#~3&y z9XZko=Oyj!Gsf5WqGc$CBv$by@|_L}vSU7qoD5XO3qpyYLnWtd)6Pza)7sbD9nH$P zi5wqC$tl!9O}$|X(ASs4JRw0kTMQ?Y==5PV(;!782mpGKXD&YF=~}Ri(#BJ3A7NYK zBK2x8hsEszS~7q}mxU|K4aeKRqMClD!1no6#3^}(7>6AkO^d@`#j)I75TZy}I44Q? z+UH*}noP?#_2%n3WkREjYlQc5e;cwwJzZUcn2+_do=Jl7SYw>ClqMtI)AH|sHD~l*Tm<@r6KGI{AF~hEF z?|-dmUe20t`n%|bFHBo$+$1FF4&3-?qQ@C+ByH6HN8%zeC{-INa;11|pf#Sej_Rqn zvu??K2VDi_ouR%NXP(38+R$CrZjh6~oNp-aQh~0NWo>ec`;t8Q`MO+&a{!*KG@+@= z(ENeqm7R9JGj#=_W%4r-geOLgPAOAS{>z_ojPfL-mjQ38MGh%4&zGU`(>*HE1@(+q zUsg6wYYcahMZ1+A6X{-I;BF7p^Gh-QlLcno5u3@H8>a_CGLqaq%I0sYb@2gQy$vNU z<7<~uD0B~(Tt2V$xxh|((FgUyQ%No1)@%xc@%uvtw&*x<0?Im@ib*;MuN})vu`JHy z7j%OvB-`Oa6@mEh&9c-}yEaG{tueu+0a|w=%lMbexdHN|o{sbKS3L1K&8MdXT2HVk z55^y5%-cA%YbLee%bt&*!>A*Mz@Y^NZ2}i0vH8w?wuUE> zlv3{{6x6Ogl0$wQbjRNNytp7ZMmk_l6N1cWC?E!0!zg%`vGc$Mx4_Q8gdyf=N}IED zWw`)xzuKKOt7lQ&+MMh-L|jw_T9Mpt9t}8W7w@K&{i_f*aw(eI`%^@nqvXmhj`vgJ zSa=`l?ft7I=&>@y(kgZk6$+UkGVQG!PYHZrh&MqodcFy%*m+6Qc2{H7QZi4uFfU5; zce{LXZOu0$kF}E#3C^ko-}&}Cs^E!>Q~=xNr)xUWBo>6 z7>A2=J`roWw1&uq(yplrAiS8bl05yih-in>?k>=uOCfdhzlOvvS(7vOrWb`Ni0-WB z+g-lqmWX|n4x=slMQAqFTC879Fp!8g(86Dw>*FqXi@7xSj~|=g5DQ*lZt4B;o1iYw zHi;KJ`&@3ka6D%7^*hX7IQCZ(;{C*=$XqC1J|8ptv|jA@DGA87hC7lmC1Hwq+c& zc>8#_l|QXfN&<##c!WQ7zd0zqf-U#c>d<84uh&8|9*zJUmYd^QR1)Q1e#tDEGyBaea zt9;7R&#&KjrU&SoQ>p2&2+K076GhPqNd?%UVrbq;&~DYXc9}xc26$O}Ky0y#J>odk zcZYmX_`xr|#$;>*oUkwJNbeUi@ZJDe;_tmSeCgST17DXT^vI|YXVKc?^CA5_4Sox6 z!=n&zYrK{q*y-%k>6pqai&t0Uf9k|9A7>+zz{$)ZTZiaPp**CaiU|>I4^l|9x9w zpC^Y&;}KPs~7)4I^?;>zUboUW--zfhc?Hs+B7fvhV1p zRnZw%#|784BU;-xe0xWLXw2PynJ1`#Jj_e?jTdKQ65%r#uJj#o#dN4jl4{0F zv$_(Hi#-X!PhK6z{bbHwQB^wc-(KW%WR`wkr}JdDzx=s4P0J6UEC!Dt;pemdApbC) zv1p9*BSfly9Z3?3$J#9pKim)`pnC7c>(y(N?zK5#mI|qJrB`CXCRFE zvA6g3uW{yQ*jOb>#nsrK3^@f%YCuBU!#b?r-|pudKphNfdm1wxF7|P}*CY*<6RiK* z8~a~DM$mYPg@r`|cRKoB#yW%U=aKl2)LFU@=LrJ=>9_a1n}Fi+{31Y){A(Lj`~`vo8> zs3p`W2JJ*}letFVRS?hNb2FZ>oW9c6HZxf~6GQy$2Z)M+n zEdsezzH?(IQhaNK`URQA=t-hgX}oP3wd=uJA<}q4*_TpHKpvn)b%5#aem1S982CuO zpl7`uCg}sDOBmM~z+MxV3@RrM+p-xF{9@Xw+I|nEz)5wc5P>S@M?NUfNDdM6*l)K@ zrwpa}L}Xvm;#JJHPy2h7%z*XRODoI&y0|QTt7{;D0$$SFW_D_2q%p1tS4e|mSXS%% z$0XANVCC-)jxSb5!r`S%w%j56{p0nSKi`!=qsMB5TQg{OVoZ`Zl(^iweDv@Y7um@B z*=S>^Ooem{UKy_H^%E6{e%*9P^*P)}SRL#i@6prs+8b$dj)`Hq#Vs2Zj7N66O3!10 zw?F02VP4*Dk&sI!w7H|Ubw^e^4+XAAqOim6^G9LFqv^{STH57HWhsNw2ai=J8v9I( z7qxUizYzy1>r^|EqSvuFD)(5xKohO*Oxrm0X~usDVW$_vr@&R1bJ9~kL7H=0T$wWg z_cwC*>ZPJIL3HTFDJbcKGA=7lpH{9-L@z4SZ^ee~ql-UI;hjR%+E`@8`p8RfOe;UE z;CcFm$(@Z5^E`6vL`=m4Aw}Lu04K-$2)qS74|zn=hBoG!R{#B%Oen*VURUZDw%2N_#a_ zy_)cq6e3&Ass3no?W4Lt|BcCcu$ub&vsg{bhs2It1|#de*>0mUy<-Ij5vk18YGvBK zPvWFf4p-_Uk52B02=FLuF_1wkz}pj}kety+cm_9JvU!?EfXAljVOqyIS<u@;1We|=Z9nxyfmx?EJE(MM0B>Q%ITpM9c51xkO% zXpvgh)_Z{jj>F|)zeZzKg5gQ6Ci#m>n&yEFPQ1XrTKueZSS7uHtH~th?xk+TO z#ssXCJ`Kt#XmTsv-4E&0sE;XpWlZkPQa4-NM1FbO{On0#Tpj*-Y$YpTTmtn8r7Y0eKp~3>6M!e`r#^;^AxF&VpYt@yU zHesYZ?>@%rARv`;KC+TA7zmm@gm4zIK-$I%ROh2hs>{O6qE`~0_#vyOpSS_~3WAAA z4F4{WH9p04n(8?A+cczIHd?jq$ivrwp$zh;9~@;ZdL*hA^%`M8C8b8z$Mj+0Jeb*p z?&CA!P!4D7Cd!%uRVjRYcKchPp24x$5k>;x#9Hk5sLC7PtlhVcIi%(47BO0~h-X~Ya zp$wD1`|t_}T^W6Mfq)jxT5+W#MByP$gCUlskSeZV z&Nuq&T%aC$bEZ<$E-IE)?C(1uk;)Q9c!Wp#!Co~ocd51kn@A{0GCNH20^*mR!7b>v zl6?@NWi%-*h`ITI9j?OTjmO_r(&-o57=uM`}KC0_a}?tUXy823K3 zUsbVSmOtpuy*ck#xe;!$R)dz%I-BqwN4w}ZAfnteiU;Bjq?OXy-EUuzS??bzNIz+E z?^5yU7@>RPeBYoBK_}9}>ePV^;R>Sn6N+S%{@*FPp7^7Gj9B8$1$czda6 z&%T+|t-_^~yfw!n_1Q*=9bF4aCHl-OLq_FPdW_1PwNRQN^k}#z3Gr75ca>$|axfX? znz42WXbEkuZgW4*Xi7JFrUg?LIpN;s=XspMn zwaIkHsl8NJiI~C6`xY)0XCZle5QpXW}wK?biB(^wwgnPru=PO<&%GpS)f7u}VcLw=^6}wRG!7 z_vt{^uZ_5L`)~KHj3qq1Of6BwMN#t|bJ(q`3De7+?O1Z6crI?%2NnewB1OeeE((WN zA&rxLqY@kA6!URpm1n$7K9QSgr87lT!x2aYM*y2xldMgUa=E&@M1JV9j`#KV5L>*F z!H|*v>WU~^0L7Fm!C+L9lZ-cur8u<5x3Bj+8<@x%hadQ{>iNe`JVo$n$XxtufIOKD zd8_A^K!UkT*zpJVDZ-{ts#gPA%G!-c?TdrfCqyP?6l=zA9P$x2&|}!E??N9&3Jar} zo*kvub<*!I3*40%aT$8TiVWr3sB$F-7hT%$pOS#*`XLU^wS~^ z1KSlm&hvGZL(pvx_X_57<~)S4`p}p#!fFs1JS(^zd>+0Vw-GS%d4etzTZxphN+FYb zV~__Sr=7yIl|TInHOs(Gh7s}xy4SXS+Ecbx8d5S_RKXX3=RD&Q!1q1&TLTm|b|c^h zUAOrW^8J8XnvS=b5&BsP;)9AGAZN4ha*Ei%z^YjBMoLm`(R zc__Y4k@b66?o zREC{Ak1#vD4|r{rn4b^g6cc6o)KH#7WzQe@_lyIpr{PsPRJ;231jOj->l;l3A-bO# z5T9Xnc%IT#5ptY)Di^6<#5qNg{6*rpnW751`bOnfs`lY#4z&^Y=2ZDf_$`ZuY1aFA zdk-gPP8IDwy*&U)U8hQiEYm7`Er0TE^9DqV{U`5Dp!7oYBlz>*=fbponUna$IG3?a zrKE6cbMc)=d-U#&GlQmFvuHdU>Yg1vR3*>$O{8uWE!B?mJ6$A`t5cfIYYklUk<^vF zHTi_aarKO&E0NLkoA!#ZCF-yiskFr1Qzjr*Loc<*gpgD>d2to~ZJa-97s2=MC;)XN zsm$$_&wEe5Hj7wuvZYw-STo2u1EzKrp80bK2FIYMpOQ^$D*$2b-gb^^8Ti2hVB}62 zXSdZ|Hoo@L{(RnW4{(&q8FK8C?^f~1C~WJ-$$e6tLGa>pdiJ5g%{Fx}ro53+%Xks0 zbX$F$F9y-YOZ!3%y=DeoMY@#jM;~qJCUWQ(^~^gz1b>QvYx$M^83*n*rrX)PHzp?l ze>kBdelTUc-L{4p|2rrgovJ}PCaWXe6mQwKwsQLX^)3$xOd8;~v&|RbNSc7hcsOY= zl)43=z3I2f1^L5YOXz#n-8*%FmWGBv11@$PKmJ%%h$$h$=Ls%U?X{zt^ zWYX;bv#j@6xAh6h*z=R^qrCx0A=^J}TUHg?;OY%J6qZE&@#`JP+v zUXp!(VSpn!4^1i*>*-QisrMH&J5Nt~<^NT0K%Mpe&ezwL1t^?=%-Rj$;%D|wsm4T^ zKqp&mT2%)Nf@UMlPo3CY+DaM&55P zXE*m1U%!4ufw83bv3dnmsxI_;90{_BC&fM-@L5pJc4IqoY7wOk=dN9aw%S3Jr;>C< zeZjc~E6c=$%ZVa_P@azSG*@Z4{nnmXYoT>N{9;W&=$I zj2J_JkY7XqfrkT6My}WN{TDN{D~2^DsqH*1p+o*hAz1kfrglp^T(jO?7#~I`@MMhv|*IAt^=d)mM*w_wH;w zvzc<92r}OR*g`(BhC8i4qlua$*}*4Wbz)!7X3F^<*8GR4S>i*{$6NBx2Ey_z)v|Gm z(77hZpGAE+()cd=Z~yi;-Yqv`oIkB;{nx+JyS}SNR_;Z!)*AlV7RiDR1G`*Y$9>0o zrFE`@vwxgDM>%?V<`2rzuSfQNqC}HO0y=NDAGF{IUN+ZO;3Ai$nMxUXWB@=Onkfr* z3(+o-J9s;%-&MZk-2aA7%|E_;V6GQ457b`JLHYZ-{?E43|KRm!TSQDC|@krM~ZS%Na1R zve&%5{x4m#7ihO_pKFXQIAFlpzPRCE8gihbzg{udXIn6P)X+$|_4i(1(}yo(1Qi+v z5JCQX0TF=n2?GWBE@0{b<}#{+R!OqO*CVZWuEAMy(w}U|UmVE=z+k& z-(Q?GK8Sl+95f4{@M};-NZ{Ufs&+kUB?wWQ2^)K+Ng&sB*8-VUv%9dD0a7V@?I&&N zco^W(bE?-i`1x~mb;L$-RdcX9Q8FaiPhAl=r~cXU0g8s&f3D-3@yFVcz!5sN391!m zfQWJQM1#W;v~-u&s~NzX_0%L5>^^-cu+z&y?loFgLDSr&Tf4!t1Gp|YW9lAfw8to| zd$-KT6Cl7%Z3@N=-M)Q$+;hB95IG(I9-TRa4sq69C8h%eTIKzbhdWu!p>7!spX0iB zs+l$uYK|t2=mty4jFyTJ|_{@W7 zh*EdfCZ5>g*##&I?3jX#v{EjG83F4S*_I3+rfzPcMmr4E)KkWNITu8LHiA`9Wpb_q zQS&g;gpKpI$1@1$L2sVsaXcpwI?~ zsUKRz6RhqjgdS(85i|1742}JLA2yU~f-yMz0QZ+3qq~ea_Xk5_W9ae9drMUep}!Se zvB#`oKmRCdwqGbGAs~36<)Ig4$sZSu;8%Er4-`i{_R`Yr;_M`9My$zZjTgEGCcZX@ zH2{)t>^i=7Y3Ud3HsE_MbgZOf)k)k87HT`#!ge525O^t}XMiqr?R7`3@9S*6(KQeV zK*gJg`(HAQ!bQFA1E2~4S;T^wYnNZl|9&Pt_tYbjs`Fun$G*PC_&rF2M_qARO&7rb z)fQ&9K>4a}ABapJujNKg=NN)Y(FfBRB`(PO0VoGu)$Ax-FG3=1`P zhOWK2SK@5%<`LyQL=q(bcVtTw?MQA66gtWCrk~N%=Tld)$1t#y7Y;OvHVu3 zu$S{qS(QrJte%h}lY8v(k%kgb8BZAVt+HDGQO3a~3HGXNhCn>IG(*iHrvwH$;aSLi zEB7@(?(9OBxHHs?) zU$w>zlGsrtX44E)FW}R1@cOug!dO`2UU;$*W>5LOI2UgIJ{RVuStjhuWdb?>;1jY7 z$O;F28$mkl(C%jg{Vkx^`q3hmdkPWhOaTi3H)%C4d9F@{s*K(>-8YzS`A54C-sa7- za*UDUoge4{bRNR9@IU?bU+za2Zks)UOP!KJEfRaMbeZqeVTVw`PVtc=XSJF(+=uGx zZi}{D2so$I?T*ax%2I&Ovv;OF7B?2QP)?O~}CCQF!GjEv(tJ zy9uHtZ$OA*`y>w|G<4as4_-f$4AKjP(_vWD2Zk22;Ke3LhKG|*L^YrYHhuisiz(Dr z!b#v(IYtB3p;!ZvvtToqa_hE(N8~W-B9}ULY)53(TwkUt8&J38qlYaRlgcNe=Hokp**B+(x- zdcRol=&eJvG>*nSul_5I0uA{!?QK}6H+cVyLWv%6w?*j609^&LK942<{btXL`QXs; z!_!ZcgpVs(3kNSJ!+qxkNl%}c9|Mn*x5+X1a+~#OR(q^m08LsK^5ycKf*0GKO!b*T z=fd{hmwbK3dqE2#1c}1q?Y?5F87U*2EVK65e*(&i?Ju4^d^j66FTiNM!Ds`AK#0K$ zmR$huKZ6&0X8n!DuyUs3Ug%+-QAt@ zqt>Uf#wLl|&0hH2_<541W;H4!P8kdqY1P&S?l!4U!fq$_XdtC4e4Ub)8LZJr)j#Yn z?w8(E=d=uxO1i-5P!$3ljFa#a$neIQ@810JT2BO1z6Tp-UH{S|5TZLEQC&OPUcqSf zWyYumkig+b2@zgguj@_HUXbtr++9OgV_OZ6Ur6n)on(^O<`spSCF(>}h0q(6XH-_) z=N3LA{$fUa!$pc;EZ8T4;Xmz$J3FEr9&5bR>wT>0;H%!3RDEW1Fz|*ON~2Hhh;~a! zor)MN+4Irjf#v6?pKjV`){j?pEn8b?(*N1z+gj4+Vcy5m?@fnqE}5zS`u)vXO7C6c z-*06)AcnyvfoD(y%qK2f_zAJY1g+*Xz*doYpj;pz$t*o%+tcB(?_2rLO^lL>>W9lk z5+sf4XvjVsn*$yO(LauZo}`2C15LVk-8`zts(Ar>-XL>*I0hhW$k9HW^e*a`w#+v- zAJLj(5luHxm!AT;69OdEA5l8tduMGFPBFa(}ER4?Jb z!|eyrU{OHp1Fupnz;=4SB z>Otp+H%MWmZV8~w1(T@ayng=t?Q1CthzidF)b7}nSQ~sft|cm5Lx3B@Xy(C{|I6g1y2d}3BXeDJj$wr0Cb@E&iBV7QJqY9JnKb!$LRxThzIfLRC{Lp zg}!_7-amv}+|SpS^UD(-AIRk#Ja`cBA#>+7;KTA^S?3w${x`6J_ zFa6`5(Tm4eFaTS*>B!IgWo(2@?W_U>2es+#oK>J=Hdm(Sc*rdJAjuJFav<(k0=7Z@ zk7Qcn$VPm&uJ^VX*?sQdQvz(y{+*FF3v?vdYJXwhe#ylAlRWmnAm;La`fKMP`wM}^ zAkWQ{)c~Vke1L;>mexlgF&FUp@Sz2~zyI?e__i3t(ELxI;HprEpa^%Dc9)|Dp*-@j zEj%K6542|hvrj`DntkfS^>f@n+d{^`0fsLDfzxln&a|9EyzEH&6JvQ#puHy3VFntv zrPwsxuT+q5TcVLp00*hOT}BSFMYeVXNI9cRGXVkzy~sKW$2Wqoq(<%o&u{~88P!=9 zAn1Cbg%RED0*Z8VB&h=>-%bp)7egf`-1==L%BQ%XhdRq2>%Uh z0R)ilAfyl(3UMjx(h%Abs1ZZ5nws%C_1)*CrvZFIwAb+Yw%`gOS_BREvk4o;#?W7E z%Rkqz+#}GZv^GCYC3JM8v~hAGP;%NQh zc1a)!(aVU?H)9gVwZ9?qpwW-0eFpp&wbhfbpvN1m>FyDNm>G z8Y@*q_Xo+`ygihQ`=H3!%=6d?xkxVDsDgvH#Dbci6VBfyV&&pli z{QW9K5=AsY-9o|QkZq1&-U|Z7n3Ut;VC3zkLkLzQX6k^NoNVW>JQFBTPVnYN(UjL5 zwErl6s5&`38KVuAmI|BOtY}(6rW3vdj#t0#@mn*N$z>r|>&<~71 z7c{-^$nz`s8wNguEvH7Hob-3$1Rrwgk&CH{#jDs_NT1U z=eTd=a5fj;J{_lfH=#08HU8DB6OGSq070I&fS3@ZRw8ij-BSLWw3@ar$_6`cUPc%C zWz3o2=yasDSFgK!Okr1C8WFSmdSvCv@Ao4^%|@J(_4Lp!4W}MP>x{jc=XKL!E9t4- z%FJ@PWxq6gWK&MeJcb@ylK$rmlHFALyUVx0s5_kGuf?9V0C^oIQ799FCN zCVFCOP}@%&PkxE{98a#{Ac`aD#D;S%5FlMY?sVU&ebv1KL~AqKgE^Gpn`i5J?!^KA zs~ondM2Nlta*Sjb9%Ul4d*S+0l&VGO7d%Xqg&q!tZ`-#o8DUMvfv8C4H|L9)l$Xl& zeu?fJEl#)Sfs(dKm^cevrlqD19R~IADty((J)3hBF7LiCgRC!N z&9S?m!HoHld`|2g*j~p>bpggz(-8z)=;V+MVd|x(Uj@buPQoBw_}4@G0>vMX*PtV9 z+mwk^DUO1uFQhAtqNd_QNie+P@=-}6L~XqM5v-$Rl?GNDa3F+%a>ds8z@#mihxYZl zHxiBVf?{a55rj=Nyij;j>SjIc^4XnmcvdEp0|nCT;6tVDPS>sZ)tRqjQ3hGJ!U=Sy zO7g&{^cu_c58iw}g9E2@n}b^h@BD4~*NGzI7tjs9S9r(OuGpNxZp0WWmQTEt+Zft{ zbba1w)CAx0nK)7aN%E`LojDv;_B&>N1X>(niOC#sn~YXrt=^B$SE_ zjj(vRV6qhN`$AHjmR`29)C$TH-x*Gx*OO3OsGCs6UUMo&GwK`A&U%i~DA&nMfYPLA z;6NA&X*3{jL~}b4E3>}`NXSi&w=?y^O3G#4e|_!&<(l^nw+Ope`p15L8ke4X;m8lQ zlLykfs(pmuyM?PTk0x#*PZb_=WFt9PbW)jHSuq*9}r3}QJuCt01|oWSyz@VRxGq|=FL zZY5Se;^Q}uRrkd7f2msJ^h*#%F~opi0hHI}iBBI_=xo(wa+oxKuYuJXsJRq+Sz+M$ z<%+j$T0VWvzc+b5)LZy1aI;D!uRpZ9)nL^9#FSzmU~Sa(jvI%*i|CK2VKsJ6)izGQ zW8-QnL$_FEnWdvs8O1G zqeIi%MML4@T20&TpcuH%?T&6iO>R@f!>qa4fUDsNuDJKk7vATifEMv{V}GhFj_?;( zv}~Knqj*o1pjh2U(Qs4*1qOoU$fKoMufpqm0Ejoi#iH0mM!hIcS}k#)WxNiD*zjzI zHT}KrjNcC3wddvo#o>N5)_Nzgkd{!n&vS&V?j<38SKA&9^qbyONi>_r4TMy!s-*J1^Lp0kQ+TDxb6LQGP6XbpqFQRA!C zY%-Gc8rq3|NYV-XcqvvrJO-WsDzBu{Id!i@@;O?-5m{MUtJ>CXyq<7e0H7>?t0k<0 z7LQhK8-MfpQg=-`t?l@ae>|uF`|a|&+iCCUN)fG>pD#Aj8VKcS;cqq@1Je8iD;Aky z*D9*_g7nj@Wer+3*aQ@rWTl0OyaIl1oQx7^K{%tFj_l(LebEicpptFdYdxJbl1x+$ zyS{|DPv5kTY>WvtQ@X+G!MNL~7m~f9K(;n54PcBx;H>w=jY<3yff>9f8Xp^p00iCVb zmUK1o@$mqV@7H1j;z@dEG|mPP2o#7*3W>gXnEm`uBIj|el z<1*UO;bZTmOAa$%PlzZ2iZAv;Q%{-RKGM?s;$j|^=%+j#&ere5e+?IWgN{qxx)4iISgY^xbt>?0g3CSXlLDBk4V-}a@nv`pm`qmYFp$>A_+(yJ>sy>E;g zw%UwtQFVghgV@y2!NE&(m$S%eJ7N@nR>w3F%og6lWTn*?1oW7K+iXMh%G%DM26{UZ@SSU|+q(*Aeg)&u+#d#aF8V!a~ z{M+hL7)Q@I`AJtOs9f)W#8O57XZ%2PkaUPU;l&4C?pu)poe@Vefkq`KDeMKG0 zYI!*jFEcCrbdIab-C!0F9xBR>04ztx$L*>Xtk^7t8YQ za79zQV&6Ec5GLBe<=df2bf)^rNd?a0A5RHv$(m2<6{BVkQ)LZ1l+jSQiv`#n834kP zozRRRq^lmGA3#XG8F^D`{n&c`j1}2ncdbg}&$VU+`M{GWE|JZzBceoj!`<+Y>8P|L zq9v$jpLmb%PXza6O!ZGJ(zRm^3hXiEL+W8kdcL^ZcL#Z5XqFxuQal%o=xL9b=m9K+ zM|3aT1LFeAthh=Llf%t*KMcBRe%R|7JK6+1A-{Vkz!_CxPd;vugRYt15#c~iuUaZD zqMY2Q1jzy_g5h&@&g)R(d|sr36^_Y+5m9PYcY3A$VUAS&~a}2mA z+ml$Wl3s|GV^BPQ56UY8bbP7_mWq6^V!Xb5H^b&~r!43^iH^!YYKhHZI%!i9-C%I9 zJ`OxGA>xd;Kdq*whFdzpCzAu6JVkaTLm&!HRaD2kSw$!Pktopv&1QNPau}HXPY1nsCv?d@WgJ$T<%FY~*!COT)h9#>8)vHe;L7etWDRrX*s)#WaE>V{^R zosxNblC{V_u#s)?ECFh*qw*0SZc%7Mfw25U>Nx<)G85>Y85oQ>k=l0C@;+XbmrkIz zArp5)Tv3EvMPSRh-!GeFP>`4BX|nzNiE5MFDns>Ab?>d}9A;xb+Ip}fAH|9sI5Gyg zjH~DfR`hHtlc^^_;e`<7LIj9wG5hB=OeCR|4uZ5OwlMotjw{0s_ln-_!b?^h>L){i z9Xby?9iGRE+|HxUjedsiC*CD78){}_5=3|@(GY(QXs1q@3az}=vcoSTcT?R$I)c-1 zd3$c(UfOT(@B*Q5gp>$V3`SgI+9lVF!;0+Rc>gGVm{h@&7A0a()jc0P(CLymH29

61?SfF8}r)eslJdX~8*zVhBQ9TA+`ebD4)v}TYm7t>uU?b!o17er- z`S|$k_(AX|TsOD>OTxOuq!!C>W*MoNi>e8qQdDM8xB5S-(esDa+=m#00?=s|HKav# z^LIkBX=0|qPp?jojH)H|b(G1)r3+Gsb(sP3Ls!O@2=!2QwP1c3c+r&daRzhu11B1xVn?OQk*eydVl58z@7 zsE!~Dpe?fW@S;36Px6K^&)SkMWwH|IZ$i2G%R=UbDxMqs`3g6`%wHFOfBb(}koxnt zipc*>41(J9&)4FHfXo7Qr$5Ky%-aRY@M&68A`pJtg=+bb*TkprM#E$62M1C_CoZ3=nO~QsWuK?>Hd|$SJ7(-V`zr4y&L$qAB%JrC}$`tGAU^0+^_j+ z%6}C^r(T|IJgB1;9@h{-*20B>G%q7w;t!2utCE*jP~KNrCVAy#<*|7ABu2Ld?V)ea zcXjey!1N?z+CC`I<_=r`sWMj~w0eNq0#(HDQNbGpQQA3QBdgX>cTD67U3UK(qhdt zZL1y?7axgwFR7`L?tQb%Q-<;O?`4QZfT6he@RH?T8p_T4W>TWF)&p@?#$0c|WOl0n zPdUFOZd#RKAmr=O4ZL94*|1k+9Y5Cv%hD$W#bf-_lieORU)_#nhV`785+)^>hmgtK z=?TzGMXQB-eyhzsX3a~Vm*hFej@NrPj^CR7m_Y?T@q2@1r5MEjOnmuMWFp(?U8-=+ zA$#u7zIIoM?fEg54BBmDmTKxE|zK_u^`fjLUG-% zQ(*3uivofsrtGABXNVRBQ%iz1ozr4=SVqnwhcOS~1Q@Y?7Fq(MdIxlrFH$5f~FJ;ZDBACeZ z*4+M^ZXmYZ4^87FIpO!S(hD-%^tumqF4SV2`?(G|VXN3nnqLL*qU&XU*4z$)DBvGL zb90|M?RBYB`}=G!p>HPHhUcP2`3Q54{1*pK6)tttA8{3WQE|27`{LE~qYC(HD{71q z1tR!UwNAZ>HhSrG>g7vsfq2RF%X`;w1niVOvi!xJd!F=ETRHlrmu_sH@$A{pRP5fk z$lk}2B+Behv37rQWAlh;V^7b-u+0*+ycIgMCT#ZkU-=v&k|dEef*PFmuunBiV6V>kBAWU0HY z$DS6ShjRSuwOp&rwzxUIy;`cDQNegpn9TZISHF;dF`+%rtVYuSUxMpnK}A=igkD}E z>v~u9)l$sA`ihX7H;*QJH$)aWn=BG`rNPE+@qn!Fn40C$?_^cCV+-1^ip39E0N%NS z^>1H(!yl*qTc!^s>mD7iDXe^=bA;k8w~I#aUTlo2n}7SBRrb&yB(wYb!)F!af;+pm z#b9~i4%2VOMZCdF&eCRckJ4eKb{+iN6O)VM`ne|hdjNk8PSbhplvfnyd`rJQ5Ew}O z_Na8xt5rI*lZ1=V@ZU$|hX3WcSKf>slFHk!2CBC3s9W%tKE-2K^?!U7)x9BLV5ZUK1N-;`4vJU`2s>!qvVb zhS0P*v&bj#KVCJ;2Xga*bblMe{~Z1Q-z& z`dYzXtIEh!kbkOSy8n@nmzNiU=e2f_^2LfS(HDz*%<6XK8n(BlTVQE4%ZRBU-S17F z#MRownxZu6|Ez+exw!a4{n*38^6l2Cc7=5N+}^a==tO7Q)KQL*Mtw6KE)^_c9=Wpf zn~i(Ez+D@0PSr~dcii^?yJ%sta^=c<&dz9IM?^%p?ps2(Uhl78{p(QKa!b~CzY9jQ zptbsu^o(fJJ73MI)+zKXuA&VG6z4F?dL*zCd3kx`6HHD34QB&4E>=^)qEcm*7h#gK(}@q%HbbbSx<`iwYZd;=rWl;w`YJjM!8vd5d2qr z2nEax_|N1@_?bNL^z_6~J$S&XO0?#PIxr_^1ZFBKil1pc*;bBQp7IimLu3n%zJtpj z2&{MvaLjGAYI9r9XliN#E=9Zr7Z;aT zPFi?)I5b=Thc5sSKygu#ms9MhG)0cn(W@l&TUiw{WN-W_LnCy=RW!CkQYTq$@ohgUrA-y|>+w(qdj zODe2UW z4ydxRIScUdZTiozy(Y^*)^kpGVBz(%=z#!P!~5KCzb_uKQBp_$m)DEArRVO&v!%=4 z+HIxuq$6a9L#zuiH9j_a=|q9dmf z26?d*YR$>w>7$>lLqxBT{I8pi$heEe^~i^4T!bWqW{IRdy!&d=N7YHABYU-u)wg&^ z_(v1@7DNk^2VWk*I$DhbspExnAiQhE+7kuUGHip{X#Tn|2v1wrN}RK}A*kVaOIX|f zfLToE_%{Mt2QNNZwA~5SRDgk-Xr0bn!@r{oik~!`vzmCGWH&f|v*%Uk<@`4mPyJ^m z+tF_ODb)Vd5+%62o^0PmWUF}N7Uh#h>O`1?XW=8I{s$QJols5b+`UMy?u35Ra^V+w!i{R5ZHi{iiC8-QNc|JNK1o+ zbc&ReC?O@SprC-XfOMyTw6tuxrMv6C3q9wn^ZR}G{&V*jXAB2t@3rQdYtDDR@jTB< z-G1%urMiymLP9Q(2#0M}1O2I>aU=qJ`1VayQt~~E&b>Q#DgnZmBm64BahI`CthY#M ze>jP@1q3GmBY(?oaR|76SIlux3}3(D7|0Wb{>!BkGcq#b;^LB%>wn;ae{@b6vPW&&pP+7V^4%nc6JCjNHR(f9=r|?4u1Q#z+(6gvDf3qH-XS90aD91fSULyuc+!> zc8Qa6G$sMpaS+D(<4$F*(mqe0ST9Xpl2|Wvcjy6>2eck_ zYJ9`;=i4QDyZ9{|Lo393BFOvoeNSCkYPr~;prBW;Ucrf?LxHqY)&+$kOE?KwHz&r% zboKN=^e_(2(73q9%2efOwe#z7b0Y(+I?(m1Hp*c-2`ThLVh%Kfi~qMNf&&E>Om1%1 z?{@%KWSu3veEIUFOJn2XdXFDBcp?3VpTs59s#z+%3C^`GTz7_UCed~y-iXK*sN|Bd zJQBWt-}isJOH51*oGoc-%|CG8p)n0a=^_5mZ{n9PE{W3zBY=k;8F@tf^30htD=RD3 z*49~p@5yZS@+mf#%(@4#p3?Zlthz7(Vq#*y=WMGlh#a!=6HPiS1653dd=%nxY% zfvEaGvo$#Zw~S|7R-;WQ*O!#HGS$CJc;tX8i#XvPw6}tWu#tdKFDB+zczPhy<^{)0 zWw>r->~g~Ezm^ebV2Kf$8W`L{)@drH;b>{-!07PnqOyo=Kk%Tyy9p8N1+X?$Bi@CD zAw-qYc$C&Pj?6k~;&`lz(cl-NJ|M;}LRF?dgI1ZHj}J+6)I_?;v1H+0w7jGkt9N7& zzeGNfb_r9p;Yi&j@u5j*Y%0`naVf4$+nAXfSj;3cO?5G5Q+b>4N z$g~rxA9x*lcSemOc_o860cVwUns?^ju$l31$~kv;R^$-%bFM${rS|dPYNrCe>M+Nld!Z?x-wcYI!19u-^tW3a zKyx5Y#}V9aEEf{6Sey*h{cOSp)gj_0YM*-7u#gaH9TjBr8pGPJp{h)xC24&jNu=iH~u>F)VnVL_VCRMe^T=tHRl9vTFHlXY96o~fs= zKQTFJj?GR2YiuXXtstzQ3+L|3&Pqe&wI>ED8@Qtp1ID-EQZJE9QR_mlPcwOoOvT(l zONMLLv_V3SHA0NA30y4}Qu9n1?>Z<1iv}~v)0~HlOfA|2ksMq?-kc^%mmjBpf^3l@l&`HNagD?mVu^pKn z34mXAO@Z@cQ&?X={zYT<5KIr%4R$UrTgaTVhJd9M(`$u23_7?Z0VflT+8YVo-jQO4 ztpU11o*G*iC~{;2Sp=u*!T?IJwhh0pk4BJML3eK6yh-EL)zKkJC}1(1)9KT*q;&%tT8>%l#3Kf$J&{jI<2^xOrM0bkk&ik;==SoS$L($=pC@z&^Lj>*vB zMQxCa(qI$#MAKAnFQ=4x>9OG*?`#oNz9@J4bBvQ2)ab0*=k zD1KTJHdRfa@fl?^45`AUTx)Ori&a4Jd%QJ$1G8YCRHD?H>1qyZ3`Jhm$a%ln58SB$ zl%wZ z|F7vfP4B>Nx(QHHLBmH6qXGjh0ra8?6)E6+dngco_+^CuX}XBl;ek3j~E-C3}=|k&AaVZ8;fMT+_(H0_fs%MbR6;TexX>{C9JDNX?6(RTiQ~f|JWH35yhYdw&FQJG>|? zECj^f@EaX}8AC~)^&dK*D>4p;5;13285X~|=@8`UuMSTp>dC6>mF67&N)-84HGav?C!n+JD@hJAf?s}Y+X&AH{#oJp3 zf}mJ3C?p`9L1%j{G~>;iMf=+`NR2c{&1_?v_Clr2&XGUle=p_L3~%JFT{6?g9X@+nmBz_;$}`E%3Y$i8@Ak zI%tFzj>W2&YTvzE1&yOrm6?X+8VaH4CFhTN6um@(H0b^JYt_0&u_SIPT3Ka^ z8z4@bjh`Q^AR`b_w9a{{@g3rJDWSb5%1DPf z(lF?RRSa#EGN(a@1R@TB>BLwlL2m+&iGp)?-oh39U28kihIr_};G0qkf$HLf?)kaTz@E#2kQaeJ8{@bB1=yW2n0^q>DJM2z{L4}5vZDMq$9Zp$^8X0Wxd>JQx*{Z|GLlc&DXgF@o0JPd~ zhJ+MR+Ur6ZD5_pznB~Z&@i(el1XYV$X=fe*f&dyH7SAq&^GadcXSv(}QLeI*(&Iiz zIb%sNjAqKH=HG`_i;g}it==1GqW^t0}ttZg>2?shU?e=8Y|NGc>8!iU6fsA zei}js*&96A)9l$NaM^UxOq`};T`c7J6p9BVjZY~<(T&+fGSWNnRp1iB2At`||40C1O>6Cas{ zD;Uzqph*xKO7ZVXyRmIlhDaJ2MS?AU2W`SKg(tKz^G=KXadhu2o~I&8r3gcnk&CAa zY4Kg;4b8vjz-V%qo#$vZP)4Oe-2Ug;CdYQW`Woer>@~;f(zon5$8Mrr9j?1>N| zL~hjzu&8TcmOhEzS`9}nh>#7WjUBaTw|v7-jil!cmjn`n!uUasBYDdMx^syS6)(J1{bi8 zp*s%jN$~L1-~((u2>wm`z{SmfVLXyphuj%u@p5tW=Nlh0Qs`_BP<&dccW**MLLgrO z^2ZR5p~`90&S9FO@jL0itgNXJDx?o9esZDVYIvWaR(9MqJ&~JUh((ugfmepep<=TT!<%Wm7g?5lOwGo5mj&?G6Rzh4m^|o z!cIFj)X^m3x-h1?*_XlCC5Ag$|4RTUwm?YJ1rzqA{Kmxkc_E)pl1&c zq>NyQ5Ss#U=rDpi>Z)^TvF%oQ2uyMOOF9X$IMfh50L`ud66`w?-5}x+z^{k8zj_PT9lNtAxRP+Ut=eXvN$`Ec(|;sM-3t!%rlU|<9Eb^EwKl9?FH8M=fOFd zesSOX`ubqfM9=jD(6T-TLPRjlNNoV^{>vX-7DabniDsY)i{CR*5!FL*K{E2$liW_1Y)Zr10Lc75bQNMgu)F1MT6sCtU1PXQTaxvbKTSzQ|LdAerfV8fGf6DxR zt-tS#a+Ut~I0A)=*7{|-ykav*7|)U4o`I8pKSjQ$(+{__M6DKlmY zvVC3N@SWIK4>_S{g0sWTDCvy2js$2JtNF0AE5FWNfV4YB2 z=9Brsw@Hg)vPQ1p5at9>4~-P?%z zDKdh3Fb^tZ%z5%uw$bx`N{NDFGcj0RADHX9IjW4>duQ{w zJd5hxhzKm%S$~SkZ+=o20b2sUWxXF4A0MBP08QETA@O=eMqXYXE)R)iIXRu;4ou7iXTRMlKa`zX0sfkr!2h=qP=R)|_{Dy^!hDL9=@+IrN zv9YmB@F5}s(4vx(5-IcTd^~rYPt1ivS~Ph9<>aI+eFNxudRz^DSRo&%WQN0^UPjvI zLY4E&moG51wrX8pQEBOx`uh5Y2ADc}=u`xiUybJ$r2qTdo}-Td$TVH_Ggj!+12n+; zD=a`BJFFr5&d$yPrv`$J2Aq?^1b;uC^{=f+@fF-M0DD$J1JfS3NLDlN47eEcpw?qq zL<=Sl^3Putl+-&RA_|t`6>}zra~4vqmPIu+U?EE-p)nKvL5P=217jZIK7mR&hZ%|C z6KeY1wlqp&vTPPgC^N9ISb}`vzZb>-=SKvM(w&Wkh0c_4Z2yOkA1gAJAV{FTPXe+! z^AKs`?XC`kaB^}E958^6ACtk5ecHDNS~_vAFZb`o12XV%ZwR$P%@N){oM2G6t!rvx zWMYDJu;T8Atpj8fEjLzo90>`fI z3k?m;c8-k5e=!I!#qiqQ8H9#kTx=Y?3bE|~Xh}n~sGg>+05N*u8q`4`Z1#_Ww+g`b z_s$C0t$~S)4Q|Jd$9VqjrY0vH`3d1#+7x~3tIj%ImG2rN#cdz!vTUK8Kbol}_v0b-e0PPSB2-9<)LZQlN3mgO@ z+%Jf-`4Ze$KG|_YVl0MtD(>P@C6Qb-_a9dsVz>-Cx+irXOTWD}-05~~Cy7L8KNK1@ zOKhL+`$52=Q{y=Oaaibp_{Z-N$*$hhGOqu}8iGgX1v>NEb+curCMd*UIJqHE^to9L&=6r8zlbcA~dvt;jK72T~h;X;!>1`fsWAuf%|lda5dx_vR~Tv z+k~qi;d6iPZF>g)($zNi!Dnn3dS+&``jC$$4(cgkXL@KYFhrfUgP)RwBsE=jdQCke z%pVM4>+3(c)qaWhiuLkL?Ht4tw0x`+mzL!?ZWXuzeuNb2!p`o;<&Z zLqX=t!+5o0xa$&P#25299WI+x5}6b*A_nAA#d+>`+=W(pCWEDU5{$~MEEdec%Roe~ zm{_c0;B5p;ckvPWGNKu8)B$DV?7rB+8m!W&T`NRUQJLwwpzW-peWF zQCb}HykyxChxiYa+($2Bs)%5o=NJmtzqP}PTyYFuAY(PmDL-U&6&<0 zEltoYb>8!Z3TCEKx^WB7MO@* zE4cprjPrV*wF?ljWQH`7b>qPfw`kaOR<{MyMAb3t)RyMExUflAUoivUW+|_)4XJ|8 zV%Pf0{SR6CS|}~w+41aJ5o9mQUYE_oF&OFudG4O?vS`yir?y8t7OsD+3R`^t z9z`N~{~4V{cvpwpv74hK9(zjxTv0Y%(zX#cU`>wRoOPjY%zXZ_SV=IrFu{MFkXy1Uo2wd_LIP_l8$>FE^aIarx)xF$ox zw2j=!&=YDJz+s@3mp;~51e_g2WueRnvQ#y5PhdlHLLTW{gReUjMrCXEi3wc zJmY;yvJ^s`AY=InQxEr_kF~5+L7{JPC1zDhAg5uvGn#lki2lY~y6_@x9m|=|O1RBO z*YcJJ99s-EC#}K3IZm#uaC6ka*uSr9M|ir|TuzU~w69RT2-g3eQrR??Nfd3`{?}_T z`hNYosJv1?fwRT4tbq57VK2mZhR!Q3URypH5gmOl-=~z+d4DUeyk!}B%SMBO%O}%x z$)iV|c9%Ys>)^~_hoeo6!??1)80RfFHX$zd4OuFSyLOfxx|dj)!I?jAf`9XIYX#1( z(@tqenSuiIqAPzN`#oy^nAT+f)h<=(B!!LsZdKLm;qmwHLV39vx{5llG@-o}&Jg)` z2PtS}w=<1#qx+RKg`wz(`A}Dg?rt$)P zDL7~VY9tVAG#)v&pX5;4z$|oSR&i{Ij5j-6HINO>Hu17tNIWICMkbglZ%r^MMb)xZ z1Xt63;L9kuyX&e&oKQgSuwSWJpWidiktmuNF;HCyCOmX&=w#h%=%UXmh8q|}%TNob z$HdMubJpW>KOGwP(+|1P(mB<|oh{DxMYuQAJ14{d7PZPxTQ?;#S(1(LV{ zo;&bd#YBb)p(*Q-%VI@?Q6ydTu7tLB=5eVlVhW-Ax$I~^Ptup%B*d_=-ip?JI_S4G z+Qd7Bs*n33l_2b6^#B_1xI5wEhS-^Dl>nljA5L)2XgK zZ_*xT;QiqW0^S1HoOxmiarL!mfFUo_cr^4^K{)vHAPZRx8^|^_D;|JJ)(}!c^YIUJ8^MT_q68};duDk)^@_9 zB;s>!O=}m0vO>mAT&dt>f{?&wMKh}f`;PdY{vaPo(E(Y^hOI?(g3EphZ<^rd!+~sBhm^(&X&;OFBzB6;Ng^O`%_3grF?D&AA zBeCM!04J+OXtX;dvA}C9sOadnGZ`%{TU5MXxI}zv>a06P;b$*lntm z(@&#QHTK@B4CF1$xjAwi_l~{RN5>e3xZcunIDQFHg&1}7CVl=DmE75jISYFmgXHMrqcC$<+(Rd$?^Xw)*-+*ZMlc--g z0NF*ow5%U;`fw62LizM|4rmstRZ*kT!hUhIQmTKN=cDnBFz()3);|P& z6m#sYjRMG(eiGQs<nDZ3PhO(2}Kpv|(mD`SivC z9PtlG4Jguf_IH>QX%OR?ZEz<`;o+OUc-2#>Cu>?c`{}TBpZ&;o9u0jYc@89o`F|Kv zkM#?R1;QJ1JFFJRf=PIm?Q_hBJnfQHN}pw7hZbBGVl~YM@M14vsGM_~m%GGA1P<_@Eiq)x&)f*LbN^5t? z#c-2N)d~p~sJG_@;LKB!(OT^2r&PmpiB`Af4$xtDnm|-3usrtPcMD#@H&CkBnKtqb zpdie56RWPqljAF0t`|DmEiM@?c*pd6*}>piLsOA<$cVw$mfW84Yft9%1KPU|1B;H6 zeIFeCLhE|B0120uS<&;DV!u#A;aULsFZVXLCFYoMQv~(e@V$}c2AA`8*U8P$moUb8 z^VjzcYJxPRU7j}PUE7Ek@mFZXZ6oci(T!*hkNz~=9;`s-zS;`Sh~TP zJaf&yk5v^1yr*{)8@2SDZ#F5$9iDcpt4l^(a4fMc8puMw0_P%E?te0N7T@h=zX+um zZ-OU=E#bRq;jWcqDEA7x6s8(+&@4N*a%EL>yzRRzmkEnM=gxOy=SGj~?@Y5A?*7C! zktclq?TgtBR~|G|&X?|lmFFaPBv>6U{X{v|TJC?ci_9QvX+G!f6 zxt=UFr-(|#mC8sLG|nZ(@rlJIJd|+8?`zn7lT7KDTM?F*V~oou75O{T%{a?#bUZ9t zPY=^bDG##U>U$WMAtG8&eg`{~ufMFMnQ?GZ`i0Bm<5So>aLDb9{@f0Fz#c3<6Ox-}c4 zUJtTY+KWS&HBA9}K9FjuFt-o1kJG+aq+P|ZwpPK4bzbl3_0SP7<9Oy~ev*t<){_0j z&KSU=7p_>&<%Am!-YB-xn>BZC|9sbTJ>i{|?4SOTMA55vY>(zV9Y-efpE=`Tr`Abes0tf4#N+=rl zYs(Y~&eK;$Fc1Mk~hlfl};dHFNWH@5VZjM*hJ^&-u+c^YqpMO@|)6 zNz$ii)-jfxX-}cuiYkJ^8{LcT(u1*1^}C0=TNT?_q@BTywfKoAKNmqBG~NdXVMXZ8 zgUEMH0Z9tSTR49#dvHEA4Ia%t%zRVw9hES7FqqeuW|(Vnu$Nc1j->*Tr8j5GAj=%1 zB51c5>xTOeI}Gk>n=W8i^o!#2T2^N^F!r-{5V?&VNl|YPFFo!|dX9k0kF%x~n>lwT zZ8oK!Dp~&^RcTn&T;X#xk=>wJot5&<-Ye@tqu*M6xwIIIc!N6NJk9owr@WXM6l9;G z1jdf#eMb;tuyeba#!p?;AiFgbP5<1;d4DB(T4=4|fxW$DxB7;}-uf%_81yRcFem=C z^9^>K+P<%<031ce&-W;V*54rtl^ij+tNPaw_1xVuzfSO;jukCXhQ?C8*D41B0jVR()fw=jOrf* z`*;>b$STD3?M7?MSS_@KrW{Y4@Ww9h?!LI~PEHQXVNdc3(>N?=m(Ae{CrH$=Oa*`5 zit(zf90Q@h+fM^YAXaeLwyWaHA&DqG`f%^EhpkRT$Mzaq2NO23IP$Y1d4c4HH~m&` zdz;|1xg3lx^VYGP9nIX3$l#jO#g{*;SpVr-f#Ez$qb|l&>AbhUxih#?yfrcJv@-zG z;x5s=YkvBJ9dQb#b5_JhI=EaV(js}R)kb_JE0AHyf_G5<# znK$?JkHcKIW$TCA$`6oL_^)-rRR35_0WR?(qM)KxlNsYD$0Yo(*0%cdETl67h6J!R z;@1&s+D>akf|z;-D6;q;=1j@|r{{0uR#7co$f)*$3lL^EBI>m4ce(l1iM2-8( z>0QtK&5XtUV-MEDd!z}}Gj;0#0STRS#?v}37y`f_%1}%1C|@Aex!;NTzboK9B*BEQ zJKrlhbK0}yvK{VAH7oYHZ_#@T0ze`GVR((wX9d>+f#W7JbxIbg9UZ==|DiObj_%hi z!5oP9C)<49`?3TDCXk|mB3|2tq`m|o9>_SO zDGv42n>S-ugVg`~;27V(Pukm)Fn7GQIB+U!>J3e8hriHxGu@i)3}_5y zWoClpObHMb3m(G)qTFAX`R|XNv)t4ArnIF&0N7Y#z!-^(qh1T@fAc2i&N4<2{`{ivfG09cw*G#|| z1`1Pt{=@k`uQI2Q|F%qtFrRk^T5lY@)wP-o3lHz^>LO`j=KnACtlC0u`mq04-In2l z9H4Vmpc<)>X8f$gOj}zUYOjDoUK*>s`(NsU41TfO(rgiXSsH6LJ#HH^CuwQ}W64Ub z54NmKOi~FkAPUV7d<7_bL#4T~v2k~I7YyI@w9#nYOV9uIj3gN22HR=P^dhsbe7~;U z>QCJL#j)>&Sdb9SODUt6>Q(?|L9JOF4IK)sS4Xakywp7O(cR{xWGunNU2s!x`84i# zo@#L+hT;088h==g%u=UyY_{XI0*RLXNJ5;N2F_4$@~k(b=2jB>3ckwJcaFb9QdK|Z zFI~oL;4+;5v8JXnaE0aQ0aN{RtLADQ8+3nBEd3TPmyzw)Vu^(xN_!$&-%RxCO08a0 zZOmGh`A2Wwune(sI`l`m$dV+Y~eraxXMK6enyYum=7c>=Zjni)Q_!{LxtwuY{droR(83XFJbVeQFwJ z!Y{Cc`Yh!PbNWx6F&L4-Ov+Qe9jYjz(83Ax=_o%RA2~~T^?bk((EB$>3%P*sBuMq< zGWa8lj)q3WOhxJssk=FO(-N*cb4IO9T5J8#!L|SxEC|S4!*uaD4&MEb|8dV*?^u8? z5~}qmQP2iUPZzBB=c%qJ7ajT|6oDcw1p?%0Ah7?|_sy1E|FcLuT}5WtpR#9RfA4ls2%IBaTsi2-e4 zMXREDv@xmmb{cVk)!24mif9^5K@1eDCB((SQur#7^1IzW77Xb~Nj2W1jy7K{46XBh z?lO`0ju_~)TgQ1Q%^7iQ?Dn>&6*}%SFQ`4)(;P>#3`e>69(M0a9u)rsDYXu{SbBdc ze7n&^-97LJIyyUvTWC*%a{xzpTYI~ltSq2jm>56DEGPUSF~%F1BJwYz0Xh*_eMZu& zS}Ztt&%`%yO-9tg4MnUFXmm`(#zgIPz6$BMuEon($EFYWAs7B zVrhvZBO}YpR>lLnXJ=Rpv`+u$TX8{$KFfEoZ!X@^cr{~}!(xGx;;&RYxc_jsHaM~= zCYp2O+C8fS@viRqzU^&?QF~!P1^p&&_7#o|cXY^~s<9G0^>ozg#r3 zQ*uE_J4nzgdBbNq>t|eiI%()j0LMesRvr3=ue1I{-bGgz!a8rEI?V}iL$iL~t#%;$ z!g~RX5g?5K5Tt*EF>ppWjj%v}tUhoClSWw(Huj4CP#qw9qNyc=+#N?Bj`GO-C&$;P zy@uN+EP!&%zg{a-=NWW?=4O3K2J{O!^;7JNrKP#=tCDR&Mz5Nu2QwiR3sP^n#aI(w zG#Yw-(`#F$INQ^w^F7q#=y!6E0I+S2@4bV`HLqiMjgf$SjIwT z;H^eymGg~*O37bM$m()k4z-fJh{#K|s;=TK;x3)Tx!mah-YF+wMo*j}gytg?6BFWHO45En zFnhQnu71r_Sy7QT@21Op_6%V&v1%*Up8tH69K7E+OnO|B5X1H@{y&XOKr8^a0KRqM zE0@WSs~g|IfDkdNP=Beb z-0-LCu>R;~DSsv=({1}jB9N((7xggX4?UT+r3YB!4~#{RU$V#b#bhV$x+zGGp#kzL zb0k|h?IH)|$v?N$^(kg6Jk@ng`iv{?IQ0K%R(3`ccaxSMD{++QDoMmOgfmCCZ|E`l z*Bneu0e3|#5==Y=da8={BJKUx+{uF1i~#2C5kMdImDx70ufb|ksvxX!s)EU zQ08_7j){6>EsPEg$p^FzP@@?G&3l!anz}KP z%N%-;fU%wylc~!NG67FFhoN2$Af^DPMoW3e`bm1r--#8*oO*qMN{L@c)+g47oGjUC z^gFE5Fbl8UsE`muF&%j^K&7G(2B!YCI>lwi1){^J!L@pTR>)2ev(_X@scubmDM@jf z`rb$NDL$U*VTKm;w*eATsGyfo^n?3=FozGWl^WWVf0f;EKZU}`l6~^!#!Y;uh3_CQ z&xWszg>KR_zyg6eao>LZXwCQfZNR#sQ12SOE#+@qSq&t_&_oyw3Wi*~%EiUS%xn(m zr?>~mH!OTaYg(79Z_?bomkgxb#o-Nqjf0HbXG=Qf?5a1TD2VM|>q|7Z+f5^1Mj4B+ z`V;<)YI$N+XHOzchWttEkYfaRRvZL$i$b~LQ4(Y97XWn&tiDkAH&x0X8*0XG^IMIT zR}lsLUQ*$SM0CbW*o6Z^a0?*dDR~%K=2Rb0T8e-3iZR4Tl^3Ld^jj$V`G|8D5FdK0P*th zxKaRqnH$%=n#33#j>v`lD?ssV9P{os-)n9bXfBgd1YBcMer)Xuz93JvNE!cnE`X96S=d>W~G5EkR4|fwh%i(f>F&+*d9^~*D zwT}INyTDK%_qJXcR}MFQnQ?<3%j&sbch2{^J8ICgI}RiT8i@{iowEXmbWVVfk9_4; zS()p4D>Ma0G*dW?>-U6TL=#~)6y~H#HkmyblEuRsRQ~x#sodC%GQrXK+5oQ)>H%Ky znYk7=ZYw6*Gg*;E4`(*mF%Rz#JZ#s9* z#K7PO)G0tsAUB<>iGRk{^Wv0DzpSRcxlAz779hX?H2?%;3D6`sHrCeGYGRKe7em*a zw|vsuR{Y|iKv5#HPTg#~Y%MZ}p%6%8(4@&J%S3O4z>NQ$D4)iA){)qkXNbfp6)d0Z zZLfhKYAPgAQc{AQ{PGURWpM$lFtv1Dv`TY`8vRtqYY_l311hL^JIj6vc*wcFLi^hx z-g52j?QE>9;46T;2u!Es3rVvQl!xntE{n&%%d{7Hrq%Syel(wEST}sSx)c=@Ob1I# zQd93|{^XLhx+mFM7SAh1akq+pgL2O!b3t5h3R?1gb$aRl>TEh-mY&9$6dNQ zEAK$Sn?Nq%0t1bP__vU&g~P9joiy7Pg6xLh`%Ew*6&hew=&^;0+RkA`{u~RVKPUQ@ zv%AE)`(1n{0=u{K&^?^`Wg4F@9He!5{HcSM+cpFY8rj!D*(xznlt#8E@XvdzqW7i? zWVS`$TDFhk?aa9AwE~P-!BZ6do{NiSD%_=YL2xH+QZe-*bXfiX&oBDtJ?Z?-u7oEN z1Sb(4=xKJE0c#^Vx-3&nLu25XUd?Qaa~Hm3U{3PZAQl%+oWawqItOXHik z%>}ak%C;9eE_>D4Z%>>!k(rKm3!g_Ue_v;pBx0CSys$%ga6v zjAqWk=@H+U8*1)*8@p_#XkKu!lY44Z2w5KQL)(CEDC90oH?p0s#ys2q?qTWe*951e zrR5T+y@T*@4)lkgoi%YH41KM9Nvr3B<#rWq^v+Ik>SYiegpUQQ&xk?Q{V3;n6A4g-qd*nHXH0X#&BN-oa(-71224 zB0~=et6OJrJ%5glWb$bmK&P@@y+ULHuF?ywDa+^HfP@6Mu(Oim<u$>Z5%7X$Hqg6?z2`C$UxffTIE-vO!Fg~krMt0kmV6J7(e8<8 zR#C7hvVY2-$^^tl>P*&>*=)voOuVzk^yj{xP?kT)VS?F(v&Bub&k9ItAEX&8`K$L8vm|^B#D{*pyppkpl+oEKWA(Ct{p0bP&y?nuP3}^12r(ePfr=Rgh7=$D@ag24?dxy$hF-fjL^_gWg;IR#ePnR< zS(}1?#!x`Zl(bH>-=39HS_fU5A~|qRfF)xY7;u=rr8vrF=1{Ed;v}DCpkuAPF|?9q z+}$)apya~3vcDa(-|o=+Mieh(Xb+j zIY_Et%YxDr*?zifmsy9QT^f9@qR;!pI_8>4%=X=ta9ZAJ?z1rp1xb`~CEwhrFwr#% zZPRl3nrQT@Hw2@R?NE&AUOwq~d-eBC@NSO$Y`&V>81rgfFRn(e_4mfD6C>E-t715&oX-OXM)OYhU9N^B+@jl>XV0aBB%}84am>R|DRobMLzU!NRaA5DXSNXMd-}hP%uc#@rY~8wr(Ah=(=^=2R8o#zoCW|pMW379nRf!Fhbk9TA7$StW!3zF|oVjU}DT` z=*oN7!NFEmM8wwWj*Ww(wUw|D+Ipv`%z<_5e&I5|e$(O4->>@@G~*KEd;Kc9Q*?({ z?ng{sr6%Xq#>_|OHCi&$d-h(vy51_o-{`|zBjubk9IBKV`(4*|-K}UEn^q*36p|-7 zjjndd?@>6^{@MG+A1iJ~2m7P0);ygI<*p7taMo}E@0 zUCQXU{8Ze2f^@1S1}kSemh_S9k3&yI`&FOj2pq|Kbfv(s^4)QZ@@%c>gvl6p``*JM z)+Nto6&j>miX5UG;nh12nf@B{+vBZHzszdb zTqO({A8&TB|0TO`a%IDiRKdkgXQkMSiQh_yKAyTd`$+dq+3paJpp&_qajCI+al)qd2?I-Ge_sMxt{OYH-QzA;ePvCQ;p4of98?Jh>Kj;uM%Tn8YXW~ z`)k$6TyEVhmsN9OF~=`g!=B05f}3lq^`q>&qQvP~BD%ZtZQJFfUlL=L+1kadFWKC8 z?$=+A!#J{!>^daKOE|dKFW%=X?)PP{O(xWsm>zY0gX`(X?Qy@kZ}xZ|SsN36(q<>O zy}9e>UtOx69l%p9ej(`ERd0(MA@0E_NMdd{d3pxS+C7~cWj88VL@&1 z!njK8b&22fk*oP`tOu{~V-xey_G>N=`dRZ$1itt>R=mD+;Lz_Ylj$fvwkH$awR{_n z_SE+s8$0Bn8cMr%BEGi%RC(sQb-%53v|G>()p^Ky za6sz{hn~xw1wZ;^yB?`x550S+He)at<>lfc?WT_W`oro@K zK;4Wz$G0t^;o*V8kvR9T_(H>qN23sh)~yr8%=J*K{O0jPnn&sx*AeEkzQCPfOlw8Z5Z2KYGv0^!J)5n^=hUUg%lMPMIw=O3!NOD zoQR8yfk8oP>gvkh2WuAB#e)hKjXuxsrI^Kvm2;ZBAS^fdSp4(n&#mdYoB#BY|*u}H6p3@jL7aIJ#m8KCIL2nF+)V-2D9fCU4U}dFxpwB@}ZGqot>R6 zEfS)l2H)qX?D16aDsz^(!@z^0jU7zfF1-0v#|(E}yEgCf@$oe6-0AN8tm5M0jEwqp zdYlgN-Pgsl!eQDp`f;Z#Gq$|Eypjjw@y=^@paQ=-EEQhJZqWuY zh{{yoj#IMt&h~m+^_4M;T#m!qeY;dhH>M9oYr0&|>t3(0#Ha3B&e^+T`ZnR~8CD4? zDQ5?Vg}<7wdrE&?=5ym0tP?7^)^0Rl_GU{usTakcI?%R*HU4%E;B3~I6kbj zn>#YfP3Ct%%5v&!n>+I4bCFr$kA~Mk3%ir{cZt*CKi~XTSz#mckKIc zKPf4xB}EI}{_c)}0k13JO>*2gY5-52!e48nEn#TR(h{<=QL>9gFvPH2hfee4r%#`P zsoD&F3S?DW?hE3Q>+I@Un(C4g6EkGk`Lo0kbIeeappTUzm#o8Gn8fPBf^QMpCr+G@ zv}(VitzGCzCZ0Xi(9|S;>Xh-H?;Ntg?7kDi(hZ>%9$y{^D2K_Nn9zpD3ko)E+VtnN zUe}pI-xsLkEi|eO8q$ru_i0~>R)$`#jjp5PVr!bV^K^GdZ*Ol~o7tZY4_IKBb?$BI z@L^&V)-5>YYLudxc4_+dJCm9S@ML9f*N@*P*}bBL%APl{4SWBofYwp;WSENZpH7uF z+KK;FGg~PqJzdzo~y}RuP|=a?#G`pDMB|Z4j4mf4qI{>es1Ph$S%L|^-OJTEf*J;r>AE^ zLPAqhQ$rJCoWJd^Xs5EL8g9o94h}-5-!g5@2vAF%?=6io+o4PQIXRamJF=W-di(qP ztE(?EyyWzzKVQ7RM?jMgJu{w?k^cJi1(*TruAH7iXB4sB2n^YZ;hg(+o0GMlmGP>) z2`HflIhP2#>t|oy2oBrhNsqGx!Edi0oK4|AB0#c0vTNV1&sTSb&R^19-c&$eFoU-A6eL-^egqz177X%GO6~jU%z&D$6Vk8+XeF? zPWN=-@u*X$PDx5iN=WQcV1br@+jxd7aLC*04Kv;Vx&a-41-7)bgl}kRX`#_GA3l7j zs;U|qGF~`^^n`uek6uGD^8Wq%S(l>B%uM(Pbic5$Fe3x);^Jaxc*t!(@;I~KkJ*4C z;HF@X>-?~bd~b8}lM8&Za&qqO?o3Qfm6eqV$;d3fGq{U6cQ!=Gv7b{=L_{CVU64Hm z0tqx~V`F1!IWac2Z|~k6^xVB>`oJ}W=|L|QvSmt&<=wj%_;$fypsX@7GGbWPP0?)J zp+i*>1q7A|aBaQffgatM9(!Lx6(U#ZtXChmwXv)8n+pXte|m33Q?JTj@_7*Yy9Rj#@6bOcXln*DsSHC ziG%d_uH5|I)*@qVj-~3nM`3xZhTRx#?ABzoYp+no{}n2$#>Ox(%Fa%(05BOa0y3El zcA$Lz{HMywW^Y9io$Dal(dh_N@N=gbCl7)o@6y0D;&>WP{d-v|$x9@pO%wxq87&u~t zRf1Ym!Gce8LMYY2IjoA;sTn3q3SMox!D%ErLVX|J=WyxlLPdpW8UH({sZOXzp&=Lx zST%G3{sD0rvR7N16jY8UPww>e$l_fyxyK&z$|;a+XPl?4J(laG$^~~^U)#g$O2lf4YP9}*dijL@YEIyir$TY2=}GU24O-0U`!E!D z?}=p0-E@D3Io_c!(7+a~`ZW5j*EgO6+aohP+mieo$IKtXSnXKCpUDY%gx9a4OgI3dP^j4Uk#R|nwBfHQCIkd zi;0i$xCJiELaB=4Du0^?F(qEV>GtyyF){B6w2Kp}BQC@12u0HF6vIWg3LyTnTfRzd z!5VMdxH7>JOD@7xq!ifK1g0n!J9IP>;xuBHz1i?{LGv{{>6cI^9S=}B^-IlSJ-i6{ zV^ZM(Yoo})FRl#_UFV9Fa=^O0JK77=Rf3b>Bp5D{+Guqd{?2mYWbW0%1^dH?ms9)L zwDHcKq}n0FwQ**%y`F<%obh(LFHm0Ex5e9eEe2i2b=+>zq*&r+qX?Sf&s0NL6fMh- zb8Lv`^l&2y)sojvE+oUXOM0g+KvUHeA3r(o7#h0 zc>Aq-Fl!sOls_Fs?QRd7_i?{~%QRRW5aI59L(Gb&Tp?W-O)s4GES(%dVN_j)if4+C zN!v}mpHbBpTob7oa~yWCidsWi+Ei&Yf)Tx~5-+DX%Mrf~EoMH3O~k(~L^;;_5u=vU zimVz2&SkM+bsafH@?@76Jn<{0q(H7+^k6CNH-rQp(UEif!x#N{yOyVenJQCo4(@J3 zEXs}}5s5Y1a~rigB~rI+zQIo+0%W-mVa!I zW4cl+H$8RkPD4T&!MXL7A+64 zJpVqmMuE5VnDOD{VZ^h3ml2UYscyOzi&~A&;M$Jmp+I-T2Nk?Gq zO#D684y~er#8R^!kNK7{jnX_~=MpzR!ypeKrNpn#=3lbS8z=F~?ah$xK2}dTjr1~} z9Iag@cbQbTR1#exSa{W)%H-p|d77{IWeM>;ZkI>vVw--1;-1H>o}+}ioD|KT9o!6r z_t@=!wt?dCq@WDVUasCdjmaf08YJxG`9*BNpKUItp|>hduu}Vkpo=bDU0zbpC|$T> z33*0wbS3+zo{|?ziQ^plyANbg_0GASV5vk+9z)FGJz848^A zCEQAmbDLB5nzJRBh$@=8g&X1&pL1iBO5{2ajf01HE$|vuJj(jiJFjaC{w|R?r&4!oG zeyh=^qG%t$n+_Th&Pt@;!oiP29l_{RP`wS`YNF@(#_Gxvn+(-<*h&+uF5Fj_ghB|G=t!?HA ztEOh}(}J7-^hv0G2!2OK()2y1k?dD`>Of1Zw%)yAfpYR?+1ZW!C1XoeTndWPAKbl~ zDW&hxYc3+I;Odd1lyj%YZ?Ha4NCuVXzrd*yILje*6WMEt`|O(Q||tBYpkv*nsM|kcj0$EpF%q*%c^dq&vHlWQ^bGA&f4%I=>VMLx zm8e?@>1ny8-fGVHlw}i}1?d^T{K$7;4qk7fw=(~Z(i9~DAh{+=Cc~Yax(%u1)0RGbI3|AFi0jhVq-Nd=i=#krR0d*)wsPn2lLcO74tGbHDVp28blj!4_p3_Y^buGmSbgS<0JlZ^>w!W zWZBglJHj~EHn5>Xhjnco1)IXP{n@A_*|xTU|GT@>D(w)7?{jqsNxPe|uHQeuF%)sr z4IM=+jL&;lA(c5G)nm~q!XayGSJ+MempkCK>#-S|&;7q}h&zn!75=l&!zTZyA$nW& zes^Fcq{@RCMt`4SUV177^wk&2eW4rwR%RNMtg=lrPmSe!wV} zxk^wJMcYDJLsSJoLgT35klq+1hBSO2bS5_5j(Js4VD{+k`*$b3*`zl$I(n zTF|Nb-ihhyX(Evb00SVYF7kQ+H3C?720$+WIS2s$ zx3NtE?h4=e@Zq$+zCMgoU0of93ii>JDZCt1D#cQQCZzeyaLeECli{k>kS=;cBQ#J5oEYQ!Y)uiWRG9Pg5PLn=;{7PaFqx*fRO;thX^6$7Jy~| zoqhZEtr}mbqk2!JB%#l9BU;GCxs=oDFL<}}HhA%a_rWUm!k-=e+81zi7yVLg=3ZUG zrs(MCE+F*W+<bmoE)jDui5=OQW~;Y7tt!ojHn1 zf!PAv27X*x`WU?$7Bu#@%CrP%)ynE|}t@cXH$DZmu-^YdT4ILIB`cD38vd3Vv99~0GG==?KS%!Oz)-WhDh zR;1_V<^mL*m6es2CKP%hJ3IT-U*ASp)B^_&?Ar(OllZu}pb{gbgsAl8?t81Fb+R|e*nK>Oc1rh??o807bWzmZk!Qt zu`DfQ?(J)Dzlr?>^bU`_izq1wL8xzvZs;(S`q>qCKGG%xg@G#~bF2mn2ro$6_Vtze zAexdNef>XzD44(hOc)mHGgy_t46rkU<_lX3{xuU^8}Q_9L4* z0{FPptyM9du5M%>IUQ0PomHbcO;1q%}Z-fx2cIkHgTJxB;+%264o0{&-*>U=OTJ(=D^u zryiZTJx*P~C4=Il7YG?EEa;dx!N7TVP_})i8EoG%Lq^9P5Y9cGc#cCi+q@|W3Jf4s z--DC9fA0vsytD+WhRdp|z=I!iJBkc=w}AD%?Hf8gKv1HhIQ8EUFD0I%4=H{-mu$Aj z%G}U;+*D2%R7sMcmU5hEg^~#<>{q}Q85n$E5ZO=I>7S4<97~E0V_h8x5COjTCeF(f zY~Rz9lCE0_>=K!d{3DDKonJhi$(ZRZE;%PYp5=XJF;_J;bAZKxQV580C`S}P0S0U_ zOq`uvqa=OH_hc)4Xjq|Yx+`~PI2v8DI#*LKGZG_^o_9#LxQ|QT#dfSQvD&NzRfwc>D}o?xsg05V&fMDvrW68usr5EiR;I}BaAhzjj$&owle?Tb%n=Q(keAKh~kK5=EVDewrL(cga|_5u|(13Ixq(dW(5h zs+84Gl!fM}Dv`pJ1rUs&X+(5GOTD~(o368OjZMK=QeRbW$zob$(a@3V!_Z2w&*5N2 z(kLK(v~ew*tj_a=mmGj;n*e3x)?fzH73(_uynjG{*;oJOdy5-{H2g}PvmXxLfC4Qqs{yscY&o-=2W1=+t6rGcS2q3MbQerks~E#--(kmgk5Z{^GP2VG87h zi6Wlnd6U|BlIFNX8%XBt0?VTd()Dpvzyx{lRAO#2H)=Xx3D|Pq%19A??o_mu)#^un z#hu(m!%>#hCGjBG0-ea81LfMb={q272f;^Z^N+NO4#kiN{-_wc zM)6#{m%Fs1&ZQ6*>bGwq7}vQzu;Jz9!C?R7)SH=yTvvZ*Q@el*ybgYYh*UI%Z)cBA z7tTNc0)f#PkY*C6xPkJu(MB3>cg<#Ns3+*|fT|UUF zuyDl%>BTaLmzJJ{Z}%UxCFVWh)z;JF<}MlvQ@N%N+fe3YP+dmLJ{3;Q)zbHL%(GO2 z?GdC3Ev>c>AAb9(U;l!Boiz?LGdV73*#@)9qLRt@LfINxgao zBXzO;%|f}|VX{xBAzxld_vo3>i|l^?2NZJ?t!bs_K%WAUnxTCgf)@JORt}HL=e0;DPYW~X}EuEdh7kWG-=ah@D)wu-m$9v3` zkf+_jUY{2@S{+-ANG}+FOK>5jXNYg?Kyo`>QYx+iycyL{+VR^{EyX3btAFYa?fw(p zVWQ!uoC^h_yb$yj78Z)eRMA_t{Pc*}NTAElv!l=RKbB@2n83*z-2lSVwu96DYr z-}+~PGK`3bfE43f)0o(MEzkUP-zQG=<@_&qphpRcj~qf#&Q90wbm`{XC4OI*tIs81H8$WS#fs3x!qnvB@OB<5KVwO#?4KZA?ev2K4Kp5YHOFFgW)DfQ8O4CxjgF^ zMEO1LJ;H)*)3I00>w6@S{s37U*O6Eb;pG7i++J=>FRwdgvCW?uG`4KqP@Q00cIS)7xb^aqyKt1Q zes3tz3Cow2oFMo0&w?9*&e=}`cIjx3LC*4y!E4@=q{WGHpX6AlPRwd0=65rb{>iL* zHNA0I(A57>aR&W@c-RMr5Qi|5%NbsxtK2zZpszY4hpsWlvyJE*ig);kKBfPf5m*k^v(? zt@g8mpa=GFc!HnQ@BChna@2Hb%^K>(1YePDW|$>sj5EYM*dUUZW?0*vL`M2Et4a6& zjw7Yu+*W5RF$5o;Zo3*GL zjvCDyH((3Kr@m4HgKqA)&O;eh)}V>Me+2lJghZRLcFrVJZfZ7MKU{`AUcD6DwKg17M~gQ=I*q8U5CcX-XaSKjF;Jkvx^F+{Wds^D4a;nY}5E;PH(jE=sp<-5MvEneH@(ZMGVi@spa>FB>^@ z-a#m9KHQ)2O>wbVLqIe2LhL2CK~DTKk~;e_akgb!>M5_wIYk6-Vfns2etm0G#|NZd zm;VMsV3fF&;o9h2>n?zm3JMEh=Ln}1zQ@jns2{P@Ca>QQNY_36*sqO=Dq3l`pXwQ{ zSBK&Yh)3V%o^?Sg%-H*VRocCC5zP{n3S`byMC+@OYtN#94q>tC%pN-;;(9SpFwY+` zBzfDu50KQ5nv$@rPifKjO+Fy+Lg;m$K_tlWF>c=k^j&L&axY)L{5UYscfv;`dhQ@< z-iK$k4_hNFXYmU)QJ<99*MC<1S!r5sZ$jkAS5*kRE_v4{e0x2a{DcSb9A3rl52Q5=RH$T*Ea__Y{`<&nHP0A2(^S zmxm2iq0`i*UJS3xC3}jverfq-ug~Vmv6`@10E-Iblmbbx51eiQ4H_P{PgPY9z6b5w z^-b&-_efTbek>y(XEvavhJ^Zpfky&m{`1x9UShHe7}(-sj`Vzq1}3r~s-N zInJZN&-CYU4gd7p?@#1gmLh`P{rkCHhyJYQzOdib{-U;*CxMOm6H*WZLWLB}NEQ*1 z9ngp;H3Nw5^Ja8BhQ2R4hwO_OCm8+nxX=$+INw|O7RfkE@!Pc*LUs3fwdG;Y7B(}0 z)S}KpE~78}qoSkb{#1?qd+(@3-#oJi1Dtw9C1S&j;eSt=eC0ZQ7a#EX(H?=YjKTj@ zmwfta1N#W?Htdy~4LqvIKKjz{SaGI?6Pq^fqBLwk_JC)P$=UBnGrYpP_5r)SzI&(} zf*?$yEDa3}?dX|m3zVY3)0l1=g15RB2NO;%?g6P?c3o54(#0d$Ov}4 zu#k;2+5`_?`9kmT@l*o;J3zx>0stF>8oRXd#;gaVcQDk$FX>aLa>o~S z9}F0b4G=WI(cle`_1W5rb{PMdz$>Tz-R_GQFY@zc0B3_B3&MTC-QjU)-O9=ec4mw^ zW}K+}bLzxv`6F>#Q4?(4vWe{FC^uEdB#SgsBCA z;l_=Y=4PNDpll2Z3Mwfn0l1x^1>eo`Q}efObwq(SnSQ(q8V2y8lYUGC#I!GenivNB z{6{n0jIZ6KQ&XqkG%>zSrv-nzmW()r${hyRov6lG0EW`*QY^!M7}|#?vW!kJM1{v3 z8M6~XNA$0ZGZy;4`9Y=c+T@_Xou2RK8AmgZIp$jgRPrgcKKu5dr1QHv`ALD!`wF8l zUdu0bXZ5GPALhKIo8CEa@;F+F`1Qs1gx%j6VbC_yU$2s9@SS2cH?-xCZo!@(X0UmP z(0SnG#SjUx@09WvyB7A~i{7cBuD_$-LHu}E5Q*EjZG+EVR#Q9wmycezQzG)CIu)0%tl%PgmX>v$6>`RFN>M%-)}RfQO&pvk z+Gczo#8ZG2fii^TH#qA8ig@^kySqD}@L;_J0^#GwvkQOe(~+IV$;v#_l)B=;8S2?d zUk*Qx%RHR=4*lsW=;a1{4`-@6?m=kJW}X?aJvi}lLO=jcXFyp39{?5(Y#dGqh@&<*Q(1D^Ml(&Ma5&z zAMm~-{ou0LLFtF7ar*G#Rb&!hvNO0xW)QM(Gk5KmK{8gjjt^GOlMT;8rZ(&|2b zogG})?8c9nWCb)8zmH`LVljK5CNc9Wp!|7Lr1*@?EL)7|onO0+3q_;1(!D_e+|f{P zTvLfy+xGS-X0o|;v5-rP)Tc1^sbC{p9a|lH-K~37=KZT<0a25O>BLb8;}u2vE1wmY zzqJya``)k#R3}so}=JiRy#Q`oEgiQ1-`1BB1IIbr+tfZjLbbHbL?v; zFZL&X;>tMwiLQ-Y`x$K8B>33;wcO2EG>X$x%Bf6AzxHBapsA9%G;LWGAHFD6(urcQ z^c~;c3JoVt?=ZGRl zi(wA(wJ|R@4zjKc;XXQdMKHy?@OfGpmc1|AGZOFR`p@ro_)OwC)RCSn|LaVRsTsMp zbs!2G?6qn%n`YV&$IF>6ap%Ly{(}DTF>SGj3@v39-5@Gt1oIODj9IZ+^+ks!PZal! zJ4n{X1bDfad&GCV=dbeHqP49pO>snSO#9JDpj4dKP-r}qZh#|sb^CI}5yRtkWKBL7 zXW$h1i^XutbYhgZ5aM~!?vZyxLBe52s&Z1@+{(5q2hS)N8-8nd5Dzq4jXyeFGBQ2u zdA>Kdi>$6Nlg+bAW|8V85B76lJn_Mk9M)*F5EiWic(V%^aWDG08>QGyOT8w z^|M-}a4Sz223EP(T0%^Dm|Vey2wrkLYY$IOaHloB`m^_<182xzLfm4M0bN*s& zmv5dLTL`EdZ7I}p_p!2e9XmPVmx5a$WHd<;^=UWqyKH8dIY^UctZ*!ptnX^l86y)+ z9pJz#jK5ar^PZf@s9)*An@0vYUcfIAlj+*qR*0>^F1>S0~MePtA$bNm9ol z#5<(@k2pJo=6Fv=k)Ee@Es+dmpPJT9B}@m+h|c+7a3_ncYLXnjZt3Tyw>P1WI;b;R z&O_}haIAl|-sG8ON9fE#P!{+-OR^u{`0|m@0}a|3&^^|RCe#YaN*=`TDqll zzjdzeo*o(i@H^u9EfRpd`WG-WC4Jr*!a6s1t2MUY+%rX)4Hj{o%-lJvWvP|=OvZ(v zc!!c(;&^GmtAyN>RYv^RdZ))3?aik~-lo(AQQ5?NCKub{d2&34#d-Aev0|NKh9CDd zU`&TImP~{G(GPfVMTHVoaIs23xM`hM9d#rl>bz5jW8^}VP+TK(`j({~(|o!IwKC!` z<8R`FGu$ULm8mQBM;=N?hgU8TV9xlSE{!dQ(l!zIa*oNF0;vJP?sjZS$ zH?x6f@DJ2T>W-F{|0!QFqLj9h)0hx$GpC9OO$q6AgTCU?l5&F?Po~5+tJx>I_dN6b zL0-OfUu{A#)hbw_mq)h%jh~vy8yx>q9L<7dmA7qjidGbSXIkt1vBR{^z<;;k4xXNv0J+8{1W1${1GfXUOMew zgMl1JbCmxc&ddd>a^|Is)n%4aX1O-WO<^_MY9s1>t*L%i@+q3N#p7?Y67-c=kVPEO zg-%84$$AuC7Y|Iz%se4m{p@7!Iqd;-RT4*KmeUkZyqDWhRj3q-@IjS7MwHKU&eo-U zS%fwhx{&#h*S-2kvOg_o+4-45^aMcXqDG(434zcrB#^W(=ht&ZC{}BuTh5xf z^xel$%`+yI;BJudMiqb7z3&E{qN&rZ5P>Iiy2v>y8#_iH0a@lk+V+r_GtH`IESV=# zvHUzE-7JNr)x-s>doMP;s~WP^kZ_dcr48b!FO?UcZzPbUe&4+8$n~DpZ-VPvK%+dvB6IS zjHyM*I0uq%c=(6TtggBv-7@h}+syC@DLE$YHSA&Hd=Tu#|LJ_rk}#?p@Ye zzBD9(*2s^z|Ffq;#xf~nVeYD-UU{OHIJ;^?9EEtx#O-v&t%Ln?o=qOvdscO_`4K5^Lr4V0AQpwcE}zkJMBy zqK#t<(zE6$5Nm+ zU|Y{Ly+21ELs^;qB&b9b(3g>&l%0GRT*1G^>_J@-xWf^49_MbeG9p|7aj?5_vV(>n zZNP2zUm9N)7rVad?EC%W>7LJe^){`qiqfyqhm;DOY%fo@9$( z9(9VA9afdnJ!Lmk3${Ao&0Mmdk~0QkiM=A)SYwZc8y&#aeg%HG5=UJOY#`E>gD(P* zuiXwjKaXuCmzKY{j&qM|;dFsYyIu3u_+_9iaIDO*YW*)8Fq1F*y-pqQ>NKyMes>1{ z;!H3Y{CureYa42(2z5f=?1019zPp}q@{Q)Sz|vt9tRSY>(Y@Ntk8-tb-&^N2ozLH6 zU%v>{DY}0Z)FhxYaJ)p4lw@pNiX#73jQ)yCsDuq%rk$1Svrig1#^Z`U+O(n@NhNX% zl;#nX=k$#c&xuZElzUl&91bVpY|}>N)s}JkHU8icil3kR1$?^}j^yjCpVm?*$GR81 z;bWT?W! zI!KN>pL4h$H=Wa!ehL3iQ3+OCv}MGDpI*)zi+V2Ucy=uflE0+KD&?$(S(ZDNw>0JM zu7zUux#U#a5*}0jV5e5M=hAzPV%;i`aoN%$D!g}(>Y4KJ{xAJ}vn{mQ;B$NS;I=GfS+sO7kUqw^4s(>( z54q#z_=^R))$>wp(IzH19jx)HUk>V(z?xm+_X?WZm{#I4zN~lV6YJjFl7-T-s)NUM z#g32;mAYG~hp@Dr=ox!v+he=9AoQ&kdN~E|KP9`&U)1>b^i|DmT>b^WkX(F8t(Z?& zO+0z1qq@>FZE;B<%Thf=h^N=B!nS9jcH!%DnfVv@2B%#H18L;dvKkT8y@dvUf1WB} znu{TGHTh>_{&Bvx7IGD)V8y=MWF#nr#E{|LD9Z%B2L$sVEVZD2t>zLFh z1&uJp6ZS_@4(N&ZBvzI-Rs3bvSWcTf-qj7Hg)z_37d%|B-VHoQn2Fu?xj@!AxOw`Y z|Jz1tE)Iecws6`?H>>NOiFoBJHVe1&DBV>wYtZs^tri9hRwRFHj&qvQAj03RMeJ@~ z`1~j@0Pv-M`ud2Pp&PkZFU+<3EQ}O zdQ}`uey@o;T=(T-xb79%MR7CVd4G5%5&a=s;-?pO8J8EW+`h3w)i-CsFvZD&U&5B( z^hBlFN@Qy%XB|&^SV?xZ*xGld*^H%ZEU>gyg^r#e%X<8>Mg3*3(caO*%>FMHlkAVz z)QNAjH+BR@m+0>BRF}M5{U-8Bt+1L@tCN~^j>q!1hBsw0o^K3l)=qbGkGIuC5oHov zICEkOl`ZkhcIl*{)s!03K$WFdLAF-);$?E892Z;N4nRGIGhD1^*T&ldqmZ6ckbLV< zlz1Fowxm8JECF}RZ9dHec4;GRw260jW`uIp6o~r#3;T9)?S)pt74yw$Keb^U5;!~) zkgOR`i4F5g!wGS!j_K*gxGc!9`RnVs&Aw06(nF0k&Zu*HRWuvb#pW$-nT>jO< zsBXx3>_PCAn|AT~DAZ5$!}tr`ad*ocTm9*Aoe&9a*R{^!om#E9W}S{GwHmKYuK@94 zgV(GL;ItiUAp^dupRuD|#;U}%V1@O2UQ0I;qYGAW4$x2!o{(d-V338>i139@8AcDH zpCb7$=XQuHCZ>7e!P<7VV2_g54rIfvaL@mR!}uS5zEP7Io0QC$#}B3mxCQf^ZO<5h zqyPf*ZNVnRGD70JTL@@ip0crHq4J_?@ZL4<{Xboe|KTwHr=S0SU<`I##!?7mUQ|@{ z>Xq@AXD1WR2kw`#8-fc1xv2{Gr&SqI*E%JqBF-jyLkHYxbL0B;%TcG^4v-fzD3#qwX`Sru z1=hQaBjEz7yA3Z_=11zIBvRn;z~?8&fnuwusF-f(D^us_}}&MMWL}Vjpop_wV!N-}CeEB1Pbyl-q?) z*8eciFna_L3IkmSioMssBEnU4ARz@b{M$dZ1p+oJ8yn=-t$%0>xug>CdFWjth*@u8 zUx7v$S_CcWjelwjB($)ZurW8ks5s`tI6~%D@aK#Hv#ALJE)a$QmjNw;Pz(fR!g@t{ ze$zto34~W=^IO%0NK%IzOpOai0RmZ2a24@Qs<_Zop{3kWQ@&l2S4H82}@?>-n1 z?78*VS#N0vYLSIgk}uvtjuGS(dNi#A6nZ4-=hQ%#rwt+qSQAZjV|RBEsGE-#t|BvUQhvpVhYjec-%w8`lFH?I_ge{h=>RXzyx=XHY6nAwLK2l9e1lNBeVAw5T<>l z-T_|(<^t3ggHT@yLJlo_wcd=4m4Nc{xJJ^GCr=)8$w}H^L*%Xovdn0^Oq3OJ^nS>< zAAxv*NW9_RI1b{N25oge2c3p(4lr9%i%wNYUZLAT|fLK?JUA-v_k|+!714X?MOo9Fc@;6+a*R zOW#2n!@;?KKR8?m*flWuLvqOd*{9*4r;{c$41J3fymbv|Ot_T|E-O4yl}HHkl@cmK z_op$>=((&%UQWH)(A=C2L?k%Tn)h3wS1>S$ix6c&A5iErJFx$+?`x&&>}zQU9|r$X zT(e{d{|lF+LR|S)6A6b8&)#FV<1aGmS7rXOZome<{*;rQ4YHwwYuc5ZrNq6rA@IN@T#yn9A-T=e4vU5qHSE@v0rVAmN4 zFf8@|{NnHPk)x4g6mS3_;cA{Eh@@AC8?EK5Dk`U`AwAPNg7Bdze_k3Wn(ROQs1l2OtLUPxe@ zXv@GOnYj@02;L0(pKb0R4we@qz1YLS!M}w3{ zSJjJ?yOo@niwI@R4XkOPr-NGHIar2SCnOddHa9D$NY4ot7 z&*!`C>x(JGuIiqBnrXL@RhEgCr>)L+aPSwwozoz(i!ZxBCXz{ogA5PrWZ>pdI13<= zDP_Gl-qK+GdlypP*g1D$yU$#K!vmCsO)UFQSv0?fUfwZ+OaOHY6sKU~c`+IE!-FAG zvYNXty1=cvm0ZprE#WBBjIR)YYG3u-r}m(`|1b95J1pw6-4^yuv7w+Mpi-^G0;njx zNGwDVh#`n{Q3RDPy$qw$M5F{1M4F0%ihzPrq>KVmqzM*4%1G}Fy$;M-zZsHflKt+z zzjMy@UDx;RKNFdmr{2$9)>=1^$WWiAZV7N1$m}HG=HIeQ2^nxZGiIoQYH%bXPsHTD z0a)-!k$~#~UF3`?2TDPXCd8>R2{8k{IzVW}K;&?Y8scZ;-Z5Dnmir9v~z+wtfk(`1gZRpvQ{!E`|sTDHYbqGxPH34~<>1*bA)^Xc3b#-R| z*M!dGCoQIcYB8@x=z&ig*#k=WX~kvNV`lqIV{_{$WCoZxdz%DCdp?-KbsRc|)Lr?- ze|-zAf25C~yVP{rOVDlVfy@^-V7&a6!&uLFM9cT!u2CRw{nPnSqoB+*((=y5t427$ zyu{d59|ry5LdO!1;NW1VS**;&43*&y$UT-yJ9`MI+hRRxwChjXMMVR+mkG!@y?<~F z8nd9A5emm95ax#K9%kSI7qa9ZNB)YqPPj*18c%Q`U<~{m0fj#|bPSv21bjb(wj<(b zq|`10Ik(BdGJW5K?-g>_9Ax+hl&OvgqjK2Ff4K z`sn<qpoM}81D8MhK(0*NGx1&Fw^zNp;CS^CBTwMo@Qd{znw(cx6 z6uGHDnx;>U08s^+(?A08ur6rxmr&WzzjC6eEx^&(;NL;rXsomn~9A_2fh!9l=J&V{j|gPnR291h-}kulNwsS zIgs2PYB~v4(NGfd$|J892@>QAaYcUK(pARqw0yJ2Kba9_&q8UPeiX<-kL$!^#OX(H z2A#?YG^y$2%S8$+Xfn{hZ`uFJmLuW=G%w@TW2}G0y&wY#u8bv-u|E&Zb@58M*7@}a zVXlX8F|i(%*NN57mb@u#Yx0bQBk!?r`J09tParOG0_yPb3S$qiy`#T_G1+_O&GoVy z5&EH_Q}Hi9IdepCO;BMei|0?}Y36-W3nK1Q^j5~)1f|H;!;6i_+n*qKWr9w1P&W{hT3^F>yFXL9(Se9L#?4MPEa;lohD_MI3< z`31B^4qh=>L8sOS$6{MvC+CdoWRv_n%+0~{piUM_w!~gWp+cg`wflZpVLibsWyn6Z z(6#1xN?2)nr&apaeTq;^K3#YXF@3msc3WO! z4&+Mz2?4veN>zpV9Ex&H8E_GuY-$$P6%+Kb$(KqV3t!h41qupUQNht+%upDzt+&hT zTU@X3Ik){*^^_2DhBCqEhs$flO?I4k@)@MHz+9cr;!K#=sNEN0tGLJWUESf;~}WjA1E5gXbm6)-m$WP z`oV93n*>(}z61b`Q>^z&UWaMHIE`5r3~Lt?E_E7x0Al1_9o&Axn+!7<;wM3hI|*l~ zwBbT$lw(|S_3>r1#mWl7HfO5|t2Sy_j--__#eFtdMcfXe<4o6X5FA+G0MF7VheCwa zqj#M?gkXsvh=AB=QohcR*_zsU}L5jMX&LEE7$8=$D1Dn@eGkvM***he_9$C5Z&^


Is?~N8ydRVBm_iwsf=cbYu-Lxm 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–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 z zL`O$cDDo@I%548}JgY2v5oS#U>K!WO2=R}8%D z8=Fx>ZXkgn9)YK|5Q7MF7{OavmMWWq@eg;V=&NDUL@ZtMQdz!(y%< zL|K!ks9m05uCLUggxH0^G4%g;$~)(UX16)uj%CS8g>>IeyX74(k@j>bo=5r6{mMvz+}X+l*PbiS`vZ0);i zY0ny6$>&DLasW{Sp9VP1i7a{4$qxtKTjZ_G8`Anmf?>uMqKQR)%K`CVAL~%W}2u&(HOa zr6f3=Scn`!IpD%y5&$ii!TF+vi!M@v0}{|R5P9qv>|oF(>v{t(k(qfcKH=;MM($G7 z9RP|-iI2C%gRrvNGIwIUFNCnbQ->9xSrN*nseL^$J_H(#u+ghNK81yakLOGbXEK%x z$1>c@SOk%l_m3UN$4lQXKsyReb@hGKYvJw+2dol6MiL{!n=mZ)13xeieM`m`B7HK! z_{96%x+`l0`1ub%No;9pL4kvcU5I-9Obg%y@S@YB0oEgXXhlGMF2C5S8WDmJfEEAc zSLeLMFNAN) literal 0 HcmV?d00001 diff --git a/src/main/java/META-INF/MANIFEST.MF b/src/main/java/META-INF/MANIFEST.MF index 19e86fe56e..0881f72932 100644 --- a/src/main/java/META-INF/MANIFEST.MF +++ b/src/main/java/META-INF/MANIFEST.MF @@ -1,3 +1,3 @@ Manifest-Version: 1.0 -Main-Class: seedu.duke.Duke +Main-Class: seedu.duke.PaperTrade diff --git a/src/main/java/seedu/duke/Duke.java b/src/main/java/seedu/duke/PaperTrade.java similarity index 90% rename from src/main/java/seedu/duke/Duke.java rename to src/main/java/seedu/duke/PaperTrade.java index db08386b76..920fef2a63 100644 --- a/src/main/java/seedu/duke/Duke.java +++ b/src/main/java/seedu/duke/PaperTrade.java @@ -2,7 +2,7 @@ import seedu.duke.controller.Controller; -public class Duke { +public class PaperTrade { /** * Main entry-point for the java.duke.Duke application. diff --git a/src/main/java/seedu/duke/api/StockPriceFetcher.java b/src/main/java/seedu/duke/api/StockPriceFetcher.java index d6be7a1258..6f1fba060f 100644 --- a/src/main/java/seedu/duke/api/StockPriceFetcher.java +++ b/src/main/java/seedu/duke/api/StockPriceFetcher.java @@ -7,7 +7,7 @@ import org.patriques.output.AlphaVantageException; import org.patriques.output.timeseries.IntraDay; import org.patriques.output.timeseries.data.StockData; -import seedu.duke.data.exception.DukeException; +import seedu.duke.exception.DukeException; import java.util.List; import java.util.logging.Level; diff --git a/src/main/java/seedu/duke/controller/Controller.java b/src/main/java/seedu/duke/controller/Controller.java index 7d8e903e8e..64dd7dcb94 100644 --- a/src/main/java/seedu/duke/controller/Controller.java +++ b/src/main/java/seedu/duke/controller/Controller.java @@ -11,7 +11,7 @@ import seedu.duke.command.SellCommand; import seedu.duke.command.ViewCommand; import seedu.duke.command.WalletCommand; -import seedu.duke.data.exception.DukeException; +import seedu.duke.exception.DukeException; import seedu.duke.model.PortfolioManager; import seedu.duke.model.Wallet; import seedu.duke.model.Stock; @@ -67,27 +67,29 @@ public void runApp() { while (true) { String userInput = ui.getUserInput(); Command command = Parser.parseCommand(userInput); + executeCommand(command); + } + } - if (command instanceof SearchCommand) { - SearchCommand searchCommand = (SearchCommand) command; - searchSymbol(searchCommand.getSearchKey()); - } else if (command instanceof InvalidCommand) { - InvalidCommand invalidCommand = (InvalidCommand) command; - ui.printWithDivider(invalidCommand.getErrorMessage()); - } else if (command instanceof ByeCommand) { - ui.printWithDivider("Goodbye!"); - break; - } else if (command instanceof BuyCommand) { - BuyCommand buyCommand = (BuyCommand) command; - buyStock(buyCommand.getSymbol(), buyCommand.getQuantity()); - } else if (command instanceof SellCommand) { - SellCommand sellCommand = (SellCommand) command; - sellStock(sellCommand.getSymbol(), sellCommand.getQuantity()); - } else if (command instanceof ViewCommand) { - viewPortfolio(); - } else if (command instanceof WalletCommand) { - viewWallet(); - } + private void executeCommand(Command command) { + if (command instanceof SearchCommand) { + SearchCommand searchCommand = (SearchCommand) command; + searchSymbol(searchCommand.getSearchKey()); + } else if (command instanceof InvalidCommand) { + InvalidCommand invalidCommand = (InvalidCommand) command; + ui.printWithDivider(invalidCommand.getErrorMessage()); + } else if (command instanceof ByeCommand) { + ui.printWithDivider("Goodbye!"); + } else if (command instanceof BuyCommand) { + BuyCommand buyCommand = (BuyCommand) command; + buyStock(buyCommand.getSymbol(), buyCommand.getQuantity()); + } else if (command instanceof SellCommand) { + SellCommand sellCommand = (SellCommand) command; + sellStock(sellCommand.getSymbol(), sellCommand.getQuantity()); + } else if (command instanceof ViewCommand) { + viewPortfolio(); + } else if (command instanceof WalletCommand) { + viewWallet(); } } diff --git a/src/main/java/seedu/duke/data/exception/DukeException.java b/src/main/java/seedu/duke/exception/DukeException.java similarity index 79% rename from src/main/java/seedu/duke/data/exception/DukeException.java rename to src/main/java/seedu/duke/exception/DukeException.java index b2269a1239..6ca6188864 100644 --- a/src/main/java/seedu/duke/data/exception/DukeException.java +++ b/src/main/java/seedu/duke/exception/DukeException.java @@ -1,4 +1,4 @@ -package seedu.duke.data.exception; +package seedu.duke.exception; public class DukeException extends Exception { diff --git a/src/main/java/seedu/duke/model/Portfolio.java b/src/main/java/seedu/duke/model/Portfolio.java index f2d5033b3c..bc29c52a29 100644 --- a/src/main/java/seedu/duke/model/Portfolio.java +++ b/src/main/java/seedu/duke/model/Portfolio.java @@ -1,6 +1,6 @@ package seedu.duke.model; -import seedu.duke.data.exception.DukeException; +import seedu.duke.exception.DukeException; import java.io.Serializable; import java.time.LocalDateTime; diff --git a/src/main/java/seedu/duke/model/PortfolioManager.java b/src/main/java/seedu/duke/model/PortfolioManager.java index 769e627641..b31f805c08 100644 --- a/src/main/java/seedu/duke/model/PortfolioManager.java +++ b/src/main/java/seedu/duke/model/PortfolioManager.java @@ -1,8 +1,7 @@ package seedu.duke.model; -import seedu.duke.api.StockPriceFetcher; -import seedu.duke.data.exception.DukeException; +import seedu.duke.exception.DukeException; import java.util.ArrayList; import java.util.logging.Level; diff --git a/src/main/java/seedu/duke/model/Stock.java b/src/main/java/seedu/duke/model/Stock.java index 1bc9ea220f..fb11e07322 100644 --- a/src/main/java/seedu/duke/model/Stock.java +++ b/src/main/java/seedu/duke/model/Stock.java @@ -1,7 +1,7 @@ package seedu.duke.model; import seedu.duke.api.StockPriceFetcher; -import seedu.duke.data.exception.DukeException; +import seedu.duke.exception.DukeException; import seedu.duke.ui.Ui; import java.io.Serializable; diff --git a/src/main/java/seedu/duke/parser/Parser.java b/src/main/java/seedu/duke/parser/Parser.java index 94fdf0c6ef..9328ef2e38 100644 --- a/src/main/java/seedu/duke/parser/Parser.java +++ b/src/main/java/seedu/duke/parser/Parser.java @@ -8,7 +8,7 @@ import seedu.duke.command.SellCommand; import seedu.duke.command.ViewCommand; import seedu.duke.command.WalletCommand; -import seedu.duke.data.exception.DukeException; +import seedu.duke.exception.DukeException; import java.util.logging.Level; import java.util.logging.Logger; diff --git a/src/test/java/seedu/duke/DukeTest.java b/src/test/java/seedu/duke/PaperTradeTest.java similarity index 89% rename from src/test/java/seedu/duke/DukeTest.java rename to src/test/java/seedu/duke/PaperTradeTest.java index 2dda5fd651..9d230dfd3c 100644 --- a/src/test/java/seedu/duke/DukeTest.java +++ b/src/test/java/seedu/duke/PaperTradeTest.java @@ -4,7 +4,7 @@ import org.junit.jupiter.api.Test; -class DukeTest { +class PaperTradeTest { @Test public void sampleTest() { assertTrue(true); diff --git a/src/test/java/seedu/duke/model/PortfolioTest.java b/src/test/java/seedu/duke/model/PortfolioTest.java index 942fec8ad5..1f3d06c064 100644 --- a/src/test/java/seedu/duke/model/PortfolioTest.java +++ b/src/test/java/seedu/duke/model/PortfolioTest.java @@ -2,8 +2,7 @@ import org.junit.jupiter.api.Test; import seedu.duke.api.StockPriceFetcher; -import seedu.duke.controller.Controller; -import seedu.duke.data.exception.DukeException; +import seedu.duke.exception.DukeException; import static org.junit.jupiter.api.Assertions.assertThrows; From db7bed1e46cff5a817cc7f5350ce8a7da1739d82 Mon Sep 17 00:00:00 2001 From: Alvin Tan De Jun <> Date: Tue, 20 Oct 2020 00:13:09 +0800 Subject: [PATCH 057/136] Remove view to pass test --- text-ui-test/input.txt | 1 - 1 file changed, 1 deletion(-) diff --git a/text-ui-test/input.txt b/text-ui-test/input.txt index a9d4eb3811..0abaeaa993 100644 --- a/text-ui-test/input.txt +++ b/text-ui-test/input.txt @@ -1,2 +1 @@ -view bye \ No newline at end of file From 086debb5c1ae99d5fddc544cb4a58cf56a11dd04 Mon Sep 17 00:00:00 2001 From: Alvin Tan De Jun <> Date: Tue, 20 Oct 2020 00:29:01 +0800 Subject: [PATCH 058/136] Add view back to input.txt --- text-ui-test/input.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/text-ui-test/input.txt b/text-ui-test/input.txt index 0abaeaa993..a9d4eb3811 100644 --- a/text-ui-test/input.txt +++ b/text-ui-test/input.txt @@ -1 +1,2 @@ +view bye \ No newline at end of file From 9990af0355fdffea9a4fb33e2773bc3326f08a94 Mon Sep 17 00:00:00 2001 From: yokemin Date: Tue, 20 Oct 2020 00:36:33 +0800 Subject: [PATCH 059/136] Fix errors for build.gradle --- build.gradle | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/build.gradle b/build.gradle index 55597e6c04..70397ab069 100644 --- a/build.gradle +++ b/build.gradle @@ -33,11 +33,11 @@ test { } application { - mainClassName = "seedu.duke.Duke" + mainClassName = "seedu.duke.PaperTrade" } shadowJar { - archiveBaseName = "duke" + archiveBaseName = "paperTrade" archiveClassifier = null } From 152e96f1ca839859c3f58dddf43dfefd67ae3c52 Mon Sep 17 00:00:00 2001 From: yokemin Date: Tue, 20 Oct 2020 01:03:17 +0800 Subject: [PATCH 060/136] Enable assertions in build.gradle --- build.gradle | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index 70397ab069..8cb2e87a80 100644 --- a/build.gradle +++ b/build.gradle @@ -45,6 +45,7 @@ checkstyle { toolVersion = '8.23' } -run{ +run { standardInput = System.in + enableAssertions = true } From 0df0a817a1bde4fec7c85d5e907d7a84601e02e9 Mon Sep 17 00:00:00 2001 From: yokemin Date: Tue, 20 Oct 2020 04:36:39 +0800 Subject: [PATCH 061/136] Update DG for buy/sell stock function --- docs/DeveloperGuide.md | 80 +++++++++++++++++++++++++++++++ docs/UML/BuyStockState0.puml | 27 +++++++++++ docs/UML/BuyStockState1.puml | 28 +++++++++++ docs/UML/BuyStockState2.puml | 32 +++++++++++++ docs/UML/BuyStockState3.puml | 24 ++++++++++ docs/diagrams/BuyStockState0.png | Bin 0 -> 11133 bytes docs/diagrams/BuyStockState1.png | Bin 0 -> 13608 bytes docs/diagrams/BuyStockState2.png | Bin 0 -> 17552 bytes docs/diagrams/BuyStockState3.png | Bin 0 -> 8155 bytes 9 files changed, 191 insertions(+) create mode 100644 docs/UML/BuyStockState0.puml create mode 100644 docs/UML/BuyStockState1.puml create mode 100644 docs/UML/BuyStockState2.puml create mode 100644 docs/UML/BuyStockState3.puml create mode 100644 docs/diagrams/BuyStockState0.png create mode 100644 docs/diagrams/BuyStockState1.png create mode 100644 docs/diagrams/BuyStockState2.png create mode 100644 docs/diagrams/BuyStockState3.png diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index 22addfa832..3a11b929e6 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -43,6 +43,86 @@ of PaperTrade. ![](./diagrams/Lifecycle.png) +## Implementation + +### Buy/Sell Stock Feature + +#### Current implementation + +Buy and sell stock commands are largely similar, with the only difference being the way values of attributes in +the objects instantiated are updated and the condition for throwing exceptions. +Other than that, the way the functions work is the same. + +Below is the explanation of the implementation of based on buy stock command, +which can be applied to the sell stock command as well. + +Buy stock command is instantiated by `Parser`. It allows users to buy stocks and add them to their + `Portfolio` by calling the `buyStock` methods from `PortfolioManager`, `StockPriceFetcher` and `Wallet` + objects instantiated by the `Controller` This will also _add_ the stock `portfolio` in `PortfolioManager`. + +Additionally, buy stock command extends the `Command` class which contains the `symbol` and `quantity` attributes. +An external class, `buyParse` method is being called to validate the various parameters that the user has entered. + +Given below is an example usage scenario and how buy stock command behaves at each step. + +![](./diagrams/BuyStockState0.png) + +**Step 1** : The user calls the buy stock command from the `Parser`, which will initialise a +`BuyCommand` and get the attribute values for `symbol` and `quantity`. +`BuyCommand`'s constructor takes in parameter of `String symbol`, `Person`. +Below is a table of what each parameter corresponds to in the state diagram of the program. + +|Parameter|Corresponds to +|:---:|:---: +|`symbol`| Ticker symbol of Stock to buy +|`quantity`| Integer number of shares to be + +**Step 2** : `buyStock()` is called from the instances of both `portfolioManager` and `wallet` +with the values of `symbol` and `quantity` passed to them. + +**Step 3** : In the instance of `wallet`, the value of attribute `amount` is updated accordingly. +In the instance of `portfolioManager`, a new `Portfolio` object is instantiated. + + ![](./diagrams/BuyStockState1.png) + + +**Step 4** : The `buyStock` method is called from the `portfolio` instance, which instantiates a new `Transaction` object. + The `transaction` object stores details of the stock bought. +Below is a table of what each attribute in `Transaction` corresponds to in the program. + +|Attribute|Corresponds to +|:---:|:---: +|`TransactionType`| Buy or Sell stock +|`Quantity`| Integer number of shares to be bought +|`BuyPrice`| Cost price of a stock at a specific time +|`LocalDateTime`| the time when the command is called + +**Step 5** : A new 'Stock' object is also instantiated from the method call in the previous step. +(_If a stock with the same symbol has not been instantiated before_.) Otherwise, the `Stock` object of that stock +symbol will be used. + +The method `addTransaction` in the `stock` object is then called, with the `transaction` object as a parameter, +to update the value of the attribute `totalQuantity` in `Stock`. + +![](./diagrams/BuyStockState2.png) + +**Step 6** : `BuyCommand`, `Parser`, `StockPriceFetcher`, `Transaction` and `Stock` are terminated. + +![](./diagrams/BuyStockState3.png) + +The following sequence diagram summarizes what happens when the user executes an `BuyCommand` : + +![](./diagrams/BuyStockSequence.png) +(Sequence Diagram to be added) + +#### Design consideration + +The following explains the design considerations when implementing commands: + +* Make `BuyCommand` As a class by itself + * Reason: Increases modularity of code, higher overall code quality +* Alternatives: have a `buyCommand` method, increases coupling and reduces testability + ## Product scope ### Target user profile diff --git a/docs/UML/BuyStockState0.puml b/docs/UML/BuyStockState0.puml new file mode 100644 index 0000000000..6a845b1761 --- /dev/null +++ b/docs/UML/BuyStockState0.puml @@ -0,0 +1,27 @@ +@startuml + +hide footbox +hide members +hide circle +skinparam packageStyle Rectangle +skinparam ClassFontColor #000000 +skinparam ClassBorderColor #000000 + +title Initial state + +package States { + class State1 as "__:PortfolioManager__" + class State2 as "__:wallet__" + class State3 as "__buyCommand:BuyCommand__" + class State5 as "__stockPriceFetcher:StockPriceFetcher__" +} + +class Pointer as "Controller" #FFFFF +Pointer -down-> State1 +Pointer -down-> State2 +Pointer -down-> State5 + +class Pointer2 as "Parser" #FFFFF +Pointer2 -down-> State3 + +@enduml \ No newline at end of file diff --git a/docs/UML/BuyStockState1.puml b/docs/UML/BuyStockState1.puml new file mode 100644 index 0000000000..0e8809a17c --- /dev/null +++ b/docs/UML/BuyStockState1.puml @@ -0,0 +1,28 @@ +@startuml + +hide footbox +hide members +hide circle +skinparam packageStyle Rectangle +skinparam ClassFontColor #000000 +skinparam ClassBorderColor #000000 + +title State after Step 3 + +package States { + class State1 as "__:PortfolioManager__" + class State2 as "__:Wallet__" + class State3 as "__buyCommand:BuyCommand__" + class State4 as "__portfolio:Portfolio__" + class State5 as "__stockPriceFetcher:StockPriceFetcher__" +} +State1 -down-> State4 + +class Pointer as "Controller" #FFFFF +Pointer -down-> State1 +Pointer -down-> State2 +Pointer -down-> State5 +class Pointer2 as "Parser" #FFFFF +Pointer2 -down-> State3 + +@enduml \ No newline at end of file diff --git a/docs/UML/BuyStockState2.puml b/docs/UML/BuyStockState2.puml new file mode 100644 index 0000000000..d4f1afb5b8 --- /dev/null +++ b/docs/UML/BuyStockState2.puml @@ -0,0 +1,32 @@ +@startuml + +hide footbox +hide members +hide circle +skinparam packageStyle Rectangle +skinparam ClassFontColor #000000 +skinparam ClassBorderColor #000000 + +title State after Step:5 + +package States { + class State1 as "__:PortfolioManager__" + class State2 as "__:Wallet__" + class State3 as "__buyCommand:BuyCommand__" + class State4 as "__portfolio:Portfolio__" + class State5 as "__stockPriceFetcher:StockPriceFetcher__" + class State6 as "__transaction:Transaction__" + class State7 as "__stock:Stock__" +} +State1 -down-> State4 +State4 -down-> State6 +State4 -down-> State7 + +class Pointer as "Controller" #FFFFF +Pointer -down-> State1 +Pointer -down-> State2 +Pointer -down-> State5 +class Pointer2 as "Parser" #FFFFF +Pointer2 -down-> State3 + +@enduml \ No newline at end of file diff --git a/docs/UML/BuyStockState3.puml b/docs/UML/BuyStockState3.puml new file mode 100644 index 0000000000..0e221c67e5 --- /dev/null +++ b/docs/UML/BuyStockState3.puml @@ -0,0 +1,24 @@ +@startuml + +hide footbox +hide members +hide circle +skinparam packageStyle Rectangle +skinparam ClassFontColor #000000 +skinparam ClassBorderColor #000000 + +title Final State + +package States { + class State1 as "__:PortfolioManager__" + class State2 as "__:Wallet__" + class State4 as "__portfolio:Portfolio__" +} +State1 -down-> State4 + +class Pointer as "Controller" #FFFFF +Pointer -down-> State1 +Pointer -down-> State2 + + +@enduml \ No newline at end of file diff --git a/docs/diagrams/BuyStockState0.png b/docs/diagrams/BuyStockState0.png new file mode 100644 index 0000000000000000000000000000000000000000..bec6adabb407e748809fa32eae32b19df25e4a57 GIT binary patch literal 11133 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 literal 0 HcmV?d00001 diff --git a/docs/diagrams/BuyStockState1.png b/docs/diagrams/BuyStockState1.png new file mode 100644 index 0000000000000000000000000000000000000000..8e511eee6070495bd514721377228cce994cd3f0 GIT binary patch literal 13608 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�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 literal 0 HcmV?d00001 diff --git a/docs/diagrams/BuyStockState2.png b/docs/diagrams/BuyStockState2.png new file mode 100644 index 0000000000000000000000000000000000000000..1c8d96db818431d5bd7d9b524b896ab0a2eaad58 GIT binary patch literal 17552 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 literal 0 HcmV?d00001 diff --git a/docs/diagrams/BuyStockState3.png b/docs/diagrams/BuyStockState3.png new file mode 100644 index 0000000000000000000000000000000000000000..4b001bcac5534d5e234f25b5b6dbe780ec29a96b GIT binary patch literal 8155 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 Date: Tue, 20 Oct 2020 04:37:07 +0800 Subject: [PATCH 062/136] Update AboutUs and create md file for each person --- docs/AboutUs.md | 8 ++++---- docs/team/{johndoe.md => alvin.md} | 2 +- docs/team/junxian.md | 6 ++++++ docs/team/liangyi.md | 6 ++++++ docs/team/shaojing.md | 6 ++++++ docs/team/yokemin.md | 6 ++++++ 6 files changed, 29 insertions(+), 5 deletions(-) rename docs/team/{johndoe.md => alvin.md} (55%) create mode 100644 docs/team/junxian.md create mode 100644 docs/team/liangyi.md create mode 100644 docs/team/shaojing.md create mode 100644 docs/team/yokemin.md diff --git a/docs/AboutUs.md b/docs/AboutUs.md index 176b614be5..35fa33d306 100644 --- a/docs/AboutUs.md +++ b/docs/AboutUs.md @@ -2,8 +2,8 @@ Display | Name | Github Profile | Portfolio --------|:----:|:--------------:|:---------: -![](https://via.placeholder.com/100.png?text=Photo) | John Doe | [Github](https://github.com/) | [Portfolio](docs/team/johndoe.md) +![](https://via.placeholder.com/100.png?text=Photo) | Alvin | [Github](https://github.com/trolommonm) | [Portfolio](docs/team/alvin.md) ![](https://via.placeholder.com/100.png?text=Photo) | Yoke Min | [Github](https://github.com/yokemin) | [Portfolio](docs/team/yokemin.md) -![](https://via.placeholder.com/100.png?text=Photo) | Liang Yi | [Github](https://github.com/wly99) | [Portfolio](docs/team/wly99.md) -![](https://via.placeholder.com/100.png?text=Photo) | John Roe | [Github](https://github.com/) | [Portfolio](docs/team/johndoe.md) -![](https://via.placeholder.com/100.png?text=Photo) | Don Roe | [Github](https://github.com/) | [Portfolio](docs/team/johndoe.md) +![](https://via.placeholder.com/100.png?text=Photo) | Liang Yi | [Github](https://github.com/wly99) | [Portfolio](docs/team/liangyi.md) +![](https://via.placeholder.com/100.png?text=Photo) | Jun Xian | [Github](https://github.com/JunxianAng) | [Portfolio](docs/team/junxian.md) +![](https://via.placeholder.com/100.png?text=Photo) | Shao Jing | [Github](https://github.com/shaojingle) | [Portfolio](docs/team/shaojing.md) diff --git a/docs/team/johndoe.md b/docs/team/alvin.md similarity index 55% rename from docs/team/johndoe.md rename to docs/team/alvin.md index ab75b391b8..812f96fcc5 100644 --- a/docs/team/johndoe.md +++ b/docs/team/alvin.md @@ -1,4 +1,4 @@ -# John Doe - Project Portfolio Page +# Alvin - Project Portfolio Page ## Overview diff --git a/docs/team/junxian.md b/docs/team/junxian.md new file mode 100644 index 0000000000..0adac344c1 --- /dev/null +++ b/docs/team/junxian.md @@ -0,0 +1,6 @@ +# Jun Xian - Project Portfolio Page + +## Overview + + +### Summary of Contributions diff --git a/docs/team/liangyi.md b/docs/team/liangyi.md new file mode 100644 index 0000000000..44354188bb --- /dev/null +++ b/docs/team/liangyi.md @@ -0,0 +1,6 @@ +# Liang Yi - Project Portfolio Page + +## Overview + + +### Summary of Contributions diff --git a/docs/team/shaojing.md b/docs/team/shaojing.md new file mode 100644 index 0000000000..b148875ca3 --- /dev/null +++ b/docs/team/shaojing.md @@ -0,0 +1,6 @@ +# Shao Jing - Project Portfolio Page + +## Overview + + +### Summary of Contributions diff --git a/docs/team/yokemin.md b/docs/team/yokemin.md new file mode 100644 index 0000000000..07ba0c24d5 --- /dev/null +++ b/docs/team/yokemin.md @@ -0,0 +1,6 @@ +# Yoke Min - Project Portfolio Page + +## Overview + + +### Summary of Contributions From 77fe3e1e83889ed69f50aa1c82c64c8091d516b2 Mon Sep 17 00:00:00 2001 From: "LAPTOP-POOFUI22\\User" Date: Wed, 21 Oct 2020 05:29:30 +0800 Subject: [PATCH 063/136] Update Developerguide --- docs/DeveloperGuide.md | 57 +++++++++++++++++++++++++++++++ docs/UML/ViewPortfolioState0.puml | 23 +++++++++++++ docs/UML/ViewPortfolioState1.puml | 29 ++++++++++++++++ docs/UML/ViewPortfolioState2.puml | 33 ++++++++++++++++++ 4 files changed, 142 insertions(+) create mode 100644 docs/UML/ViewPortfolioState0.puml create mode 100644 docs/UML/ViewPortfolioState1.puml create mode 100644 docs/UML/ViewPortfolioState2.puml diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index 3a11b929e6..d0f656aaec 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -122,6 +122,63 @@ The following explains the design considerations when implementing commands: * Make `BuyCommand` As a class by itself * Reason: Increases modularity of code, higher overall code quality * Alternatives: have a `buyCommand` method, increases coupling and reduces testability +======= +### View Portfolio feature + +#### Current implementation + +View portfolio command is executed by `Controller`. It allows users to access, retrieve and view array list of stocks +owned and their historical transactions. This is done by instantiating a new `PortfolioManager` which is able to +access `Portfolio`. The `Portfolio` object encapsulates `Stock` and `Transaction`. + +Addtionally, `Stock` object is able to retrieve latest live prices by instantiating `StockPriceFetcher` to call +AlphaVantage API. This allows users to view not only their stocks historial transactions, but to see their profit/loss +based on current latest price. + +Given below is an example usage scenario and how view portfolio command behaves at each step. + +![](./diagrams/ViewPortfolioState0.png) + +**Step 1**: `Parser` will initialise `ViewCommand` and call `viewPortfolio()` command from the `Controller`. `Ui` is initialised to call `view()`. The method +takes in an parameter of an array list of stock to be displayed. + +|Parameter|Corresponds to +|:---:|:---: +|`Stock`| Stock objects + +**Step 2**: To obtain an array list of stock to be used as an arugment in `Ui` `view()` method, `PortfolioManager` is initialised to call `getAllStocks()` method. +The method returns an array list of `Stock` by initialising `Portfolio` which is keeps a HashMap of `Stock` objects. Below is a table of what each attribute in +`Stock`corresponds to in the program. + +|Attribute|Corresponds to +|:---:|:---: +|`Symbol`| Ticker Symbol of Stock in possession +|`totalQuantity`| Integer number of shares currently owned +|`transactions`| An array list of `Transaction` object + +![](./diagrams/ViewPortfolioState1.png) + +**Step 3**: For each of the `Stock` object to be displayed, `getTransaction()` method is called to obtained historial +records of user's stock transactions. +Below is a table of what each attribute in `Transaction` corresponds to in the program. + +|Attribute|Corresponds to +|:---:|:---: +|`TransactionType`| Buy or Sell stock +|`Quantity`| Integer number of shares to be bought +|`BuyPrice`| Cost price of a stock at a specific time +|`LocalDateTime`| the time when the command is called + +**Step 4**: For each of the `Stock` object to be displayed, `getLatestPrice()` method is called by instantiating a new `StockPriceFetcher` +which calls out to AlphaVantage API to obtain latest stock price. + +User's latest profit/loss will be displayed through calculation of latest stock price +against historical buy price. + +![](./diagrams/ViewPortfolioState2.png) + +**Step 5**: `Parser`, `ViewCommand`, `Stock`, `Transaction`, `StockPriceFetcher` are terminated. + ## Product scope ### Target user profile diff --git a/docs/UML/ViewPortfolioState0.puml b/docs/UML/ViewPortfolioState0.puml new file mode 100644 index 0000000000..54dafa2a59 --- /dev/null +++ b/docs/UML/ViewPortfolioState0.puml @@ -0,0 +1,23 @@ +@startuml + +hide footbox +hide members +hide circle +skinparam packageStyle Rectangle +skinparam ClassFontColor #000000 +skinparam ClassBorderColor #000000 + +title Initial state + +package States { + class State1 as "__:Ui__" + class State2 as "__viewCommand:ViewCommand__" +} + +class Pointer as "Controller" #FFFFF +Pointer -down-> State1 + +class Pointer2 as "Parser" #FFFFF +Pointer2 -down-> State2 + +@enduml \ No newline at end of file diff --git a/docs/UML/ViewPortfolioState1.puml b/docs/UML/ViewPortfolioState1.puml new file mode 100644 index 0000000000..b82d69a488 --- /dev/null +++ b/docs/UML/ViewPortfolioState1.puml @@ -0,0 +1,29 @@ +@startuml + +hide footbox +hide members +hide circle +skinparam packageStyle Rectangle +skinparam ClassFontColor #000000 +skinparam ClassBorderColor #000000 + +title State after Step 2 + +package States { + class State1 as "__:Ui__" + class State2 as "__viewCommand:ViewCommand__" + class State3 as "__:PortfolioManager__" + class State4 as "__:Portfolio__" + class State5 as "__:Stock__" +} + +class Pointer as "Controller" #FFFFF +Pointer -down-> State1 +State1 -down-> State3 +State3 -down-> State4 +State4 -down-> State5 + +class Pointer2 as "Parser" #FFFFF +Pointer2 -down-> State2 + +@enduml \ No newline at end of file diff --git a/docs/UML/ViewPortfolioState2.puml b/docs/UML/ViewPortfolioState2.puml new file mode 100644 index 0000000000..a479544ede --- /dev/null +++ b/docs/UML/ViewPortfolioState2.puml @@ -0,0 +1,33 @@ +@startuml + +hide footbox +hide members +hide circle +skinparam packageStyle Rectangle +skinparam ClassFontColor #000000 +skinparam ClassBorderColor #000000 + +title State after Step 4 + +package States { + class State1 as "__:Ui__" + class State2 as "__viewCommand:ViewCommand__" + class State3 as "__:PortfolioManager__" + class State4 as "__:Portfolio__" + class State5 as "__:Stock__" + class State6 as "__:Transaction__" + class State7 as "__:StockPriceFetcher__" +} + +class Pointer as "Controller" #FFFFF +Pointer -down-> State1 +State1 -down-> State3 +State3 -down-> State4 +State4 -down-> State5 +State5 -down-> State6 +State5 -down-> State7 + +class Pointer2 as "Parser" #FFFFF +Pointer2 -down-> State2 + +@enduml \ No newline at end of file From b19ea51ba11540f0a719cbdbf6b49082b165cad8 Mon Sep 17 00:00:00 2001 From: "LAPTOP-POOFUI22\\User" Date: Wed, 21 Oct 2020 05:31:08 +0800 Subject: [PATCH 064/136] Update diagram --- docs/diagrams/ViewPortfolioState0.png | Bin 0 -> 18532 bytes docs/diagrams/ViewPortfolioState1.png | Bin 0 -> 23293 bytes docs/diagrams/ViewPortfolioState2.png | Bin 0 -> 30697 bytes 3 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 docs/diagrams/ViewPortfolioState0.png create mode 100644 docs/diagrams/ViewPortfolioState1.png create mode 100644 docs/diagrams/ViewPortfolioState2.png diff --git a/docs/diagrams/ViewPortfolioState0.png b/docs/diagrams/ViewPortfolioState0.png new file mode 100644 index 0000000000000000000000000000000000000000..58530761c768cb92380973681da0e33d682c0dc2 GIT binary patch literal 18532 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 QcW=l^D@m0~ynOw?0Q-E=n*aa+ literal 0 HcmV?d00001 From ab2fc1ac269bcec15bf69dab0ab9308f914db924 Mon Sep 17 00:00:00 2001 From: wly99 <34613421+wly99@users.noreply.github.com> Date: Wed, 21 Oct 2020 11:14:12 +0800 Subject: [PATCH 065/136] Update UserGuide.md --- docs/UserGuide.md | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/docs/UserGuide.md b/docs/UserGuide.md index dbdcc2cc55..1183e3aa43 100644 --- a/docs/UserGuide.md +++ b/docs/UserGuide.md @@ -9,7 +9,7 @@ Duke is a command line trading simulator that lets you try your hand at trading {Give steps to get started quickly} 1. Ensure that you have Java 11 or above installed. -1. Down the latest version of `Duke` from [here](https://github.com/AY2021S1-CS2113-T16-3/tp/releases/tag/v1.0)(in-progress). +1. Down the latest version of `Duke` from [here](https://github.com/AY2021S1-CS2113-T16-3/tp/releases/tag/v1.0). ## Features @@ -61,6 +61,15 @@ Example of usage: `view` +### Exit: `bye` +Exits the program. Duke will save your info for the next time you come back! + +Format: `bye` + +Example of usage: + +`bye` + ## FAQ **Q**: How do I transfer my data to another computer? @@ -75,3 +84,4 @@ Example of usage: * Sell a stock `sell /aapl` * Search for a stock's info `search /aapl` * View portfolio `view` +* Exit program `bye` From e15c2fbbfdd8f85671938b251a99fb48a8c229f0 Mon Sep 17 00:00:00 2001 From: wly99 Date: Wed, 21 Oct 2020 11:19:10 +0800 Subject: [PATCH 066/136] Updated parseBuy() to reflect correct error msg when user does not input a quantity to buy --- src/main/java/seedu/duke/controller/Controller.java | 1 + src/main/java/seedu/duke/parser/Parser.java | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/src/main/java/seedu/duke/controller/Controller.java b/src/main/java/seedu/duke/controller/Controller.java index 84191e9d64..ecd80f7d74 100644 --- a/src/main/java/seedu/duke/controller/Controller.java +++ b/src/main/java/seedu/duke/controller/Controller.java @@ -5,6 +5,7 @@ import seedu.duke.command.*; import seedu.duke.data.exception.DukeException; import seedu.duke.model.PortfolioManager; +import seedu.duke.parser.Parser; import seedu.duke.ui.Ui; public class Controller { diff --git a/src/main/java/seedu/duke/parser/Parser.java b/src/main/java/seedu/duke/parser/Parser.java index e94716ccf1..3bb2027265 100644 --- a/src/main/java/seedu/duke/parser/Parser.java +++ b/src/main/java/seedu/duke/parser/Parser.java @@ -44,7 +44,7 @@ public static Command parseBuy(String[] userInputSplit) throws DukeException { BuyCommand buyCommand = new BuyCommand(symbol, quantity); return buyCommand; } catch (IndexOutOfBoundsException e) { - throw new DukeException(("Please enter the ticker symbol of the company that you want to buy!")); + throw new DukeException(("Please enter a valid integer for the quantity of stocks that you want to buy!")); } catch (NumberFormatException e) { throw new DukeException("Please enter a valid integer for the quantity of stocks that you want to buy!"); } From 4b31655ba4752b9e819a4231eceda3d62b4635eb Mon Sep 17 00:00:00 2001 From: wly99 <34613421+wly99@users.noreply.github.com> Date: Wed, 21 Oct 2020 11:28:36 +0800 Subject: [PATCH 067/136] Update UserGuide.md --- docs/UserGuide.md | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/docs/UserGuide.md b/docs/UserGuide.md index 1183e3aa43..8f5d029b78 100644 --- a/docs/UserGuide.md +++ b/docs/UserGuide.md @@ -61,6 +61,15 @@ Example of usage: `view` +### Check your wallet: `wallet` +Shows you how much cash you have left in your wallet to buy stocks, how much you have allocated to stocks and your net profit. + +Format: `wallet` + +Example of usage: + +`wallet` + ### Exit: `bye` Exits the program. Duke will save your info for the next time you come back! From c7ef8b954f3cd28da5f019d463da40132d4cc023 Mon Sep 17 00:00:00 2001 From: wly99 <34613421+wly99@users.noreply.github.com> Date: Wed, 21 Oct 2020 11:29:19 +0800 Subject: [PATCH 068/136] Update UserGuide.md --- docs/UserGuide.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/UserGuide.md b/docs/UserGuide.md index 8f5d029b78..8b0a5b5737 100644 --- a/docs/UserGuide.md +++ b/docs/UserGuide.md @@ -93,4 +93,5 @@ Example of usage: * Sell a stock `sell /aapl` * Search for a stock's info `search /aapl` * View portfolio `view` +* Check your wallet `wallet` * Exit program `bye` From 6d415bd2844df123e284def3d7bb1923d0638f69 Mon Sep 17 00:00:00 2001 From: wly99 <34613421+wly99@users.noreply.github.com> Date: Wed, 21 Oct 2020 11:44:03 +0800 Subject: [PATCH 069/136] Update DeveloperGuide.md --- docs/DeveloperGuide.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index d0f656aaec..1e0034f23d 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -183,11 +183,12 @@ against historical buy price. ## Product scope ### Target user profile -{Describe the target user profile} +We are targeting people below 25 who have never traded stocks before. ### Value proposition {Describe the value proposition: what problem does it solve?} +Paper trading allows inexperienced people to get a feel of what trading feels like so that they can used to it without the downside of losing real money. ## User Stories From fe314c19d62872a704da388ce090bf89b01029d4 Mon Sep 17 00:00:00 2001 From: wly99 <34613421+wly99@users.noreply.github.com> Date: Wed, 21 Oct 2020 11:45:44 +0800 Subject: [PATCH 070/136] Update DeveloperGuide.md --- docs/DeveloperGuide.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index 1e0034f23d..354c005f94 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -200,6 +200,7 @@ Paper trading allows inexperienced people to get a feel of what trading feels li ## Non-Functional Requirements {Give non-functional requirements} +1. Program should not take more than 5s to run for every command. ## Glossary From b5a7dcaee1df13d939f609b11578af0d015b3cb1 Mon Sep 17 00:00:00 2001 From: wly99 <34613421+wly99@users.noreply.github.com> Date: Wed, 21 Oct 2020 11:48:01 +0800 Subject: [PATCH 071/136] Update DeveloperGuide.md --- docs/DeveloperGuide.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index 354c005f94..945bbafc32 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -195,7 +195,8 @@ Paper trading allows inexperienced people to get a feel of what trading feels li |Version| As a ... | I want to ... | So that I can ...| |--------|----------|---------------|------------------| |v1.0|new user|see usage instructions|refer to them when I forget how to use the application| -|v2.0|user|find a to-do item by name|locate a to-do without having to go through the entire list| +|v1.0|new user|search for stocks I can buy|have more information to make a more informed decision| +|v2.0|user|keep track of what stocks I have bought or sold|see how much money I've made or lost| ## Non-Functional Requirements From f259d24dbf97b63e6d4fb44f7cf91dec63e5c314 Mon Sep 17 00:00:00 2001 From: wly99 <34613421+wly99@users.noreply.github.com> Date: Wed, 21 Oct 2020 12:00:06 +0800 Subject: [PATCH 072/136] Update DeveloperGuide.md --- docs/DeveloperGuide.md | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index 945bbafc32..57b1f7a95b 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -192,11 +192,16 @@ Paper trading allows inexperienced people to get a feel of what trading feels li ## User Stories -|Version| As a ... | I want to ... | So that I can ...| +|Version| As a/an ... | I want to ... | So that I can ...| |--------|----------|---------------|------------------| -|v1.0|new user|see usage instructions|refer to them when I forget how to use the application| -|v1.0|new user|search for stocks I can buy|have more information to make a more informed decision| -|v2.0|user|keep track of what stocks I have bought or sold|see how much money I've made or lost| +|v1.0|new investor|see usage instructions|refer to them when I forget how to use the application| +|v1.0|investor|search for stocks I can buy|have more information to make a more informed decision| +|v1.0|investor|buy stocks|profit from any capital gains or dividends| +|v1.0|investor|sell stocks|realise my gains or reallocate my money to other stocks| +|v1.0|investor|view my portfolio|see what stocks I have and my past transactions| +|v1.0|investor|see usage instructions|refer to them when I forget how to use the application| +|v2.0|investor|keep track of what stocks I have bought or sold|see how much money I've made or lost| +|v2.0|investor|see how much cash I have left|decide how much to buy or sell| ## Non-Functional Requirements From c8ef2d4fa29a4e4357a80f2b04961825857598e4 Mon Sep 17 00:00:00 2001 From: wly99 <34613421+wly99@users.noreply.github.com> Date: Wed, 21 Oct 2020 12:06:58 +0800 Subject: [PATCH 073/136] Update DeveloperGuide.md --- docs/DeveloperGuide.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index 57b1f7a95b..14f2f0a748 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -195,18 +195,21 @@ Paper trading allows inexperienced people to get a feel of what trading feels li |Version| As a/an ... | I want to ... | So that I can ...| |--------|----------|---------------|------------------| |v1.0|new investor|see usage instructions|refer to them when I forget how to use the application| +|v1.0|new investor|trade without putting my money at risk|learn from my mistakes and experience without losing money| |v1.0|investor|search for stocks I can buy|have more information to make a more informed decision| |v1.0|investor|buy stocks|profit from any capital gains or dividends| |v1.0|investor|sell stocks|realise my gains or reallocate my money to other stocks| |v1.0|investor|view my portfolio|see what stocks I have and my past transactions| -|v1.0|investor|see usage instructions|refer to them when I forget how to use the application| |v2.0|investor|keep track of what stocks I have bought or sold|see how much money I've made or lost| |v2.0|investor|see how much cash I have left|decide how much to buy or sell| +|v3.0|investor|have a watchlist of stocks|track the price movements of individual stocks| +|v4.0|investor|see the performance of my portfolio|see if I'm on track for my financial goals| ## Non-Functional Requirements {Give non-functional requirements} 1. Program should not take more than 5s to run for every command. +2. Program should give some loading indicator when fetching stock prices from API calls. ## Glossary From b7c2daea50d3bcb6ab491a4c8ef969662c88fac2 Mon Sep 17 00:00:00 2001 From: wly99 <34613421+wly99@users.noreply.github.com> Date: Wed, 21 Oct 2020 12:09:09 +0800 Subject: [PATCH 074/136] Update README.md --- docs/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/README.md b/docs/README.md index 5645973e1b..444e074b81 100644 --- a/docs/README.md +++ b/docs/README.md @@ -3,6 +3,6 @@ {Paper trading command line app} Useful links: -* [User Guide](UserGuide.md) +* [User Guide](UserGuide.md)(Read more about how to use our application!) * [Developer Guide](DeveloperGuide.md) * [About Us](AboutUs.md) From 102d4b11158d6e4aded21f0835e91838cc9b65dd Mon Sep 17 00:00:00 2001 From: wly99 <34613421+wly99@users.noreply.github.com> Date: Wed, 21 Oct 2020 12:09:53 +0800 Subject: [PATCH 075/136] Update README.md --- docs/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/README.md b/docs/README.md index 444e074b81..0f0b3315ab 100644 --- a/docs/README.md +++ b/docs/README.md @@ -4,5 +4,5 @@ Useful links: * [User Guide](UserGuide.md)(Read more about how to use our application!) -* [Developer Guide](DeveloperGuide.md) +* [Developer Guide](DeveloperGuide.md)(Good to read for devs working on our app!) * [About Us](AboutUs.md) From 512c6f39fc600b21eaa9344e8b6e84295aaac2b0 Mon Sep 17 00:00:00 2001 From: wly99 <34613421+wly99@users.noreply.github.com> Date: Wed, 21 Oct 2020 12:10:34 +0800 Subject: [PATCH 076/136] Update README.md --- docs/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/README.md b/docs/README.md index 0f0b3315ab..7586e5e393 100644 --- a/docs/README.md +++ b/docs/README.md @@ -5,4 +5,4 @@ Useful links: * [User Guide](UserGuide.md)(Read more about how to use our application!) * [Developer Guide](DeveloperGuide.md)(Good to read for devs working on our app!) -* [About Us](AboutUs.md) +* [About Us](AboutUs.md)(The awesome team behind this!) From 70cc7adc54585c89a46a0906f90118f3a4c01128 Mon Sep 17 00:00:00 2001 From: Alvin Tan De Jun <> Date: Tue, 27 Oct 2020 20:19:28 +0800 Subject: [PATCH 077/136] Fix wallet to prevent purchase if the total purchase amount is more than current amount you have --- .../seedu/duke/controller/Controller.java | 20 ++++++------ .../exception/DoNotOwnStockException.java | 7 +++++ .../exception/InsufficientFundException.java | 7 +++++ .../exception/InsufficientQtyException.java | 7 +++++ src/main/java/seedu/duke/model/Portfolio.java | 31 ++++++++++++++++--- .../seedu/duke/model/PortfolioManager.java | 17 ++++++++-- src/main/java/seedu/duke/model/Stock.java | 2 +- src/main/java/seedu/duke/model/Wallet.java | 20 +++++++----- src/main/java/seedu/duke/ui/Ui.java | 9 +++--- 9 files changed, 89 insertions(+), 31 deletions(-) create mode 100644 src/main/java/seedu/duke/exception/DoNotOwnStockException.java create mode 100644 src/main/java/seedu/duke/exception/InsufficientFundException.java create mode 100644 src/main/java/seedu/duke/exception/InsufficientQtyException.java diff --git a/src/main/java/seedu/duke/controller/Controller.java b/src/main/java/seedu/duke/controller/Controller.java index 64dd7dcb94..377ca6a9c0 100644 --- a/src/main/java/seedu/duke/controller/Controller.java +++ b/src/main/java/seedu/duke/controller/Controller.java @@ -11,9 +11,11 @@ import seedu.duke.command.SellCommand; import seedu.duke.command.ViewCommand; import seedu.duke.command.WalletCommand; +import seedu.duke.exception.DoNotOwnStockException; import seedu.duke.exception.DukeException; +import seedu.duke.exception.InsufficientFundException; +import seedu.duke.exception.InsufficientQtyException; import seedu.duke.model.PortfolioManager; -import seedu.duke.model.Wallet; import seedu.duke.model.Stock; import seedu.duke.parser.Parser; import seedu.duke.ui.Ui; @@ -22,26 +24,23 @@ public class Controller { private Ui ui; private StockPriceFetcher stockPriceFetcher; private PortfolioManager portfolioManager; - private Wallet wallet; public Controller() { ui = new Ui(); stockPriceFetcher = new StockPriceFetcher(); portfolioManager = new PortfolioManager(); - wallet = new Wallet(); } private void buyStock(String symbol, int quantity) { try { double price = stockPriceFetcher.fetchLatestPrice(symbol); portfolioManager.buyStock(symbol, quantity, price); - wallet.buyStock(quantity, price); ui.printWithDivider("You have successfully purchased " + quantity + " of " + symbol + " at " + price + "."); ui.printWithDivider("You currently have $" - + String.format("%.02f", wallet.getAmount()) + " in your wallet."); - } catch (DukeException e) { + + String.format("%.02f", portfolioManager.getWalletCurrentAmount()) + " in your wallet."); + } catch (DukeException | InsufficientFundException e) { ui.printWithDivider(e.getMessage()); } } @@ -50,13 +49,12 @@ private void sellStock(String symbol, int quantity) { try { double price = stockPriceFetcher.fetchLatestPrice(symbol); portfolioManager.sellStock(symbol, quantity, price); - wallet.sellStock(quantity, price); ui.printWithDivider("You have successfully sold " + quantity + " of " + symbol + " at " + price + "."); ui.printWithDivider("You currently have $" - + String.format("%.02f", wallet.getAmount()) + " in your wallet."); - } catch (DukeException e) { + + String.format("%.02f", portfolioManager.getWalletCurrentAmount()) + " in your wallet."); + } catch (DoNotOwnStockException | InsufficientQtyException | DukeException e) { ui.printWithDivider(e.getMessage()); } } @@ -79,7 +77,7 @@ private void executeCommand(Command command) { InvalidCommand invalidCommand = (InvalidCommand) command; ui.printWithDivider(invalidCommand.getErrorMessage()); } else if (command instanceof ByeCommand) { - ui.printWithDivider("Goodbye!"); + ui.printWithDivider("Goodbye! Hope to see you again."); } else if (command instanceof BuyCommand) { BuyCommand buyCommand = (BuyCommand) command; buyStock(buyCommand.getSymbol(), buyCommand.getQuantity()); @@ -106,7 +104,7 @@ public void viewWallet() { ui.printWithDivider(e.getMessage()); } } - ui.viewWallet(wallet.getAmount(), amount); + ui.viewWallet(portfolioManager.getWalletCurrentAmount(), portfolioManager.getWalletInitialAmount(), amount); } public void searchSymbol(String symbol) { diff --git a/src/main/java/seedu/duke/exception/DoNotOwnStockException.java b/src/main/java/seedu/duke/exception/DoNotOwnStockException.java new file mode 100644 index 0000000000..4ffdce062e --- /dev/null +++ b/src/main/java/seedu/duke/exception/DoNotOwnStockException.java @@ -0,0 +1,7 @@ +package seedu.duke.exception; + +public class DoNotOwnStockException extends Exception { + public DoNotOwnStockException() { + super("You do not own this stock!"); + } +} diff --git a/src/main/java/seedu/duke/exception/InsufficientFundException.java b/src/main/java/seedu/duke/exception/InsufficientFundException.java new file mode 100644 index 0000000000..efe42b2c0e --- /dev/null +++ b/src/main/java/seedu/duke/exception/InsufficientFundException.java @@ -0,0 +1,7 @@ +package seedu.duke.exception; + +public class InsufficientFundException extends Exception { + public InsufficientFundException() { + super("You have insufficient fund in your wallet. Please try again."); + } +} diff --git a/src/main/java/seedu/duke/exception/InsufficientQtyException.java b/src/main/java/seedu/duke/exception/InsufficientQtyException.java new file mode 100644 index 0000000000..6456593b9a --- /dev/null +++ b/src/main/java/seedu/duke/exception/InsufficientQtyException.java @@ -0,0 +1,7 @@ +package seedu.duke.exception; + +public class InsufficientQtyException extends Exception { + public InsufficientQtyException(int quantityOwned) { + super("You only own " + quantityOwned + " of this stock!"); + } +} diff --git a/src/main/java/seedu/duke/model/Portfolio.java b/src/main/java/seedu/duke/model/Portfolio.java index bc29c52a29..409fac8451 100644 --- a/src/main/java/seedu/duke/model/Portfolio.java +++ b/src/main/java/seedu/duke/model/Portfolio.java @@ -1,6 +1,8 @@ package seedu.duke.model; -import seedu.duke.exception.DukeException; +import seedu.duke.exception.DoNotOwnStockException; +import seedu.duke.exception.InsufficientFundException; +import seedu.duke.exception.InsufficientQtyException; import java.io.Serializable; import java.time.LocalDateTime; @@ -9,13 +11,21 @@ public class Portfolio implements Serializable { HashMap stocks; + Wallet wallet; public Portfolio() { stocks = new HashMap<>(); + wallet = new Wallet(100000); } - public void buyStock(String symbol, int quantity, double buyPrice) { + public void buyStock(String symbol, int quantity, double buyPrice) throws InsufficientFundException { assert buyPrice > 0 : "buyPrice should be more than 0"; + + if (wallet.getCurrentAmount() < buyPrice * quantity) { + throw new InsufficientFundException(); + } + + wallet.buyStock(quantity, buyPrice); Transaction transaction = new Transaction(TransactionType.BUY, quantity, buyPrice, LocalDateTime.now()); if (stocks.get(symbol) == null) { Stock stock = new Stock(symbol); @@ -27,19 +37,30 @@ public void buyStock(String symbol, int quantity, double buyPrice) { } } - public void sellStock(String symbol, int quantity, double sellPrice) throws DukeException { + public void sellStock(String symbol, int quantity, double sellPrice) + throws InsufficientQtyException, DoNotOwnStockException { if (stocks.get(symbol) == null) { - throw new DukeException("You do not own this stock!"); + throw new DoNotOwnStockException(); } else if (stocks.get(symbol).getTotalQuantity() < quantity) { - throw new DukeException("You only own " + stocks.get(symbol).getTotalQuantity() + " of this stock!"); + throw new InsufficientQtyException(stocks.get(symbol).getTotalQuantity()); } assert sellPrice > 0 : "sellPrice should be more than 0"; + + wallet.sellStock(quantity, sellPrice); Transaction transaction = new Transaction(TransactionType.SELL, quantity, sellPrice, LocalDateTime.now()); Stock stock = stocks.get(symbol); stock.addTransaction(transaction); } + public double getWalletCurrentAmount() { + return wallet.getCurrentAmount(); + } + + public double getWalletInitialAmount() { + return wallet.getInitialAmount(); + } + public ArrayList getAllStocks() { ArrayList stocksArrayList = new ArrayList<>(); for (Stock stock: stocks.values()) { diff --git a/src/main/java/seedu/duke/model/PortfolioManager.java b/src/main/java/seedu/duke/model/PortfolioManager.java index b31f805c08..c31cc9272d 100644 --- a/src/main/java/seedu/duke/model/PortfolioManager.java +++ b/src/main/java/seedu/duke/model/PortfolioManager.java @@ -1,7 +1,9 @@ package seedu.duke.model; -import seedu.duke.exception.DukeException; +import seedu.duke.exception.DoNotOwnStockException; +import seedu.duke.exception.InsufficientFundException; +import seedu.duke.exception.InsufficientQtyException; import java.util.ArrayList; import java.util.logging.Level; @@ -17,16 +19,25 @@ public PortfolioManager() { portfolio = new Portfolio(); } - public void buyStock(String symbol, int quantity, double buyPrice) { + public void buyStock(String symbol, int quantity, double buyPrice) throws InsufficientFundException { logger.log(Level.INFO, "buying stock ..."); portfolio.buyStock(symbol, quantity, buyPrice); } - public void sellStock(String symbol, int quantity, double sellPrice) throws DukeException { + public void sellStock(String symbol, int quantity, double sellPrice) + throws InsufficientQtyException, DoNotOwnStockException { logger.log(Level.INFO, "selling stock ..."); portfolio.sellStock(symbol, quantity, sellPrice); } + public double getWalletCurrentAmount() { + return portfolio.getWalletCurrentAmount(); + } + + public double getWalletInitialAmount() { + return portfolio.getWalletInitialAmount(); + } + public ArrayList getAllStocks() { return portfolio.getAllStocks(); } diff --git a/src/main/java/seedu/duke/model/Stock.java b/src/main/java/seedu/duke/model/Stock.java index fb11e07322..9cd85d3ae0 100644 --- a/src/main/java/seedu/duke/model/Stock.java +++ b/src/main/java/seedu/duke/model/Stock.java @@ -28,7 +28,7 @@ public void addTransaction(Transaction transaction) { totalQuantity -= transaction.getQuantity(); break; default: - break; + assert false : "How did you end up here?!"; } transactions.add(transaction); diff --git a/src/main/java/seedu/duke/model/Wallet.java b/src/main/java/seedu/duke/model/Wallet.java index 4f489cfa13..d67d01d940 100644 --- a/src/main/java/seedu/duke/model/Wallet.java +++ b/src/main/java/seedu/duke/model/Wallet.java @@ -1,21 +1,27 @@ package seedu.duke.model; public class Wallet { - private double amount; + private double currentAmount; + private double initialAmount; - public Wallet() { - amount = 10000.00; + public Wallet(double initialAmount) { + this.initialAmount = initialAmount; + currentAmount = initialAmount; } - public double getAmount() { - return this.amount; + public double getCurrentAmount() { + return currentAmount; + } + + public double getInitialAmount() { + return initialAmount; } public void sellStock(int quantity, double price) { - this.amount = this.amount + price * quantity; + currentAmount = currentAmount + price * quantity; } public void buyStock(int quantity, double price) { - this.amount = this.amount - (price * quantity); + currentAmount = currentAmount - (price * quantity); } } diff --git a/src/main/java/seedu/duke/ui/Ui.java b/src/main/java/seedu/duke/ui/Ui.java index 1217a4c9f1..03834f8f3d 100644 --- a/src/main/java/seedu/duke/ui/Ui.java +++ b/src/main/java/seedu/duke/ui/Ui.java @@ -73,11 +73,12 @@ public void view(ArrayList stocks) { print(dividerLine); } - public void viewWallet(double amount, double allStocksPrice) { + public void viewWallet(double currentAmount, double initialAmount, double allStocksPrice) { print(dividerLine); - System.out.println("You currently have $" + String.format("%.02f", amount) + " in your wallet."); - System.out.println("Allocated: $" + String.format("%.02f", allStocksPrice)); - double difference = (amount + allStocksPrice) - 10000; + System.out.println("You currently have $" + String.format("%.02f", currentAmount) + " in your wallet."); + System.out.println("Current market value of all your equities owned: $" + + String.format("%.02f", allStocksPrice)); + double difference = (currentAmount + allStocksPrice) - initialAmount; if (difference >= 0) { System.out.println("Profit of: +$" + String.format("%.02f", difference)); } else { From 0e45ed28f77f33f1665ba2ea12d8651ccab5c033 Mon Sep 17 00:00:00 2001 From: Alvin Tan De Jun <> Date: Tue, 27 Oct 2020 20:25:43 +0800 Subject: [PATCH 078/136] Change exception thrown in junit test --- src/test/java/seedu/duke/model/PortfolioTest.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/test/java/seedu/duke/model/PortfolioTest.java b/src/test/java/seedu/duke/model/PortfolioTest.java index 1f3d06c064..46283cb785 100644 --- a/src/test/java/seedu/duke/model/PortfolioTest.java +++ b/src/test/java/seedu/duke/model/PortfolioTest.java @@ -3,6 +3,7 @@ import org.junit.jupiter.api.Test; import seedu.duke.api.StockPriceFetcher; import seedu.duke.exception.DukeException; +import seedu.duke.exception.InsufficientQtyException; import static org.junit.jupiter.api.Assertions.assertThrows; @@ -38,7 +39,7 @@ void sellStock_higherQuantityThanBought_expectException() { int sellQuantity = 2; // Use a lambda - assertThrows(DukeException.class, () -> { + assertThrows(InsufficientQtyException.class, () -> { // buy 1 aapl stock portfolio.buyStock(symbol, buyQuantity, stockPriceFetcher.fetchLatestPrice(symbol)); // attempt to sell 2 aapl stock From 006dfc87c03d9bfee7f125ca4d2cd91403e34dae Mon Sep 17 00:00:00 2001 From: Alvin Tan De Jun <> Date: Tue, 27 Oct 2020 20:52:13 +0800 Subject: [PATCH 079/136] Add function to store all the stocks and transaction history --- data/portfolio.ser | Bin 0 -> 793 bytes .../seedu/duke/api/StockPriceFetcher.java | 2 +- .../seedu/duke/controller/Controller.java | 9 +++- .../seedu/duke/model/PortfolioManager.java | 39 ++++++++++++++++-- .../java/seedu/duke/model/Transaction.java | 3 +- .../seedu/duke/model/TransactionType.java | 2 + src/main/java/seedu/duke/model/Wallet.java | 4 +- 7 files changed, 51 insertions(+), 8 deletions(-) create mode 100644 data/portfolio.ser diff --git a/data/portfolio.ser b/data/portfolio.ser new file mode 100644 index 0000000000000000000000000000000000000000..bbe8ac9221a44a615529c2673717043ad736c87d GIT binary patch literal 793 zcmaKqO=uHA6vtn_Y#WlQt*vMjBv)ZqJcv-lRAOm##Y!R~C^*ednrSCHo7uN!(?g-) ztvAJkh$l}44^l7U%?}Vf_)&yH&jnB3>&-WtU;_ak?85Ng`@jEh-n{w^nLxwIfO9vr z+;D|kE#-1)Ehvo*C5779D*Sn~`e7>xNe2!EsOl>L!lbjz9x^*bA?c>wmWBwF7- z{p>S)k%B}8(t%jzaZjR?HUQLgYRGx*VDR&A4550F3Nq3&+l#&8)kxqcsg@{zqyi(2c|~K?)kiV|B9> z>#7&F29rKQ>dNiAQA8$=52^Ov+U~`#oiC5S@6gLFL%tqr%{`oLsnA0@3%WnSWbYjL PrTyah21RLqIiB+uk(>wz literal 0 HcmV?d00001 diff --git a/src/main/java/seedu/duke/api/StockPriceFetcher.java b/src/main/java/seedu/duke/api/StockPriceFetcher.java index 6f1fba060f..c9ba706d8b 100644 --- a/src/main/java/seedu/duke/api/StockPriceFetcher.java +++ b/src/main/java/seedu/duke/api/StockPriceFetcher.java @@ -19,7 +19,7 @@ public class StockPriceFetcher { private int timeout = 3000; public StockPriceFetcher() { - apiKey = "O8EVQ7YSWDW08BN9"; + apiKey = "3FPNCQ0JNYEE8BTK"; timeout = 3000; } diff --git a/src/main/java/seedu/duke/controller/Controller.java b/src/main/java/seedu/duke/controller/Controller.java index 377ca6a9c0..e14b3a6283 100644 --- a/src/main/java/seedu/duke/controller/Controller.java +++ b/src/main/java/seedu/duke/controller/Controller.java @@ -65,11 +65,13 @@ public void runApp() { while (true) { String userInput = ui.getUserInput(); Command command = Parser.parseCommand(userInput); - executeCommand(command); + if (!executeCommand(command)) { + break; + } } } - private void executeCommand(Command command) { + private boolean executeCommand(Command command) { if (command instanceof SearchCommand) { SearchCommand searchCommand = (SearchCommand) command; searchSymbol(searchCommand.getSearchKey()); @@ -78,6 +80,7 @@ private void executeCommand(Command command) { ui.printWithDivider(invalidCommand.getErrorMessage()); } else if (command instanceof ByeCommand) { ui.printWithDivider("Goodbye! Hope to see you again."); + return false; } else if (command instanceof BuyCommand) { BuyCommand buyCommand = (BuyCommand) command; buyStock(buyCommand.getSymbol(), buyCommand.getQuantity()); @@ -89,6 +92,8 @@ private void executeCommand(Command command) { } else if (command instanceof WalletCommand) { viewWallet(); } + + return true; } public void viewPortfolio() { diff --git a/src/main/java/seedu/duke/model/PortfolioManager.java b/src/main/java/seedu/duke/model/PortfolioManager.java index c31cc9272d..1e5162417c 100644 --- a/src/main/java/seedu/duke/model/PortfolioManager.java +++ b/src/main/java/seedu/duke/model/PortfolioManager.java @@ -5,6 +5,8 @@ import seedu.duke.exception.InsufficientFundException; import seedu.duke.exception.InsufficientQtyException; +import javax.sound.sampled.Port; +import java.io.*; import java.util.ArrayList; import java.util.logging.Level; import java.util.logging.Logger; @@ -14,20 +16,20 @@ public class PortfolioManager { private static Logger logger = Logger.getLogger("tp"); public PortfolioManager() { - // load portfolio object from file - // if does not exists, create the file - portfolio = new Portfolio(); + load(); } public void buyStock(String symbol, int quantity, double buyPrice) throws InsufficientFundException { logger.log(Level.INFO, "buying stock ..."); portfolio.buyStock(symbol, quantity, buyPrice); + save(); } public void sellStock(String symbol, int quantity, double sellPrice) throws InsufficientQtyException, DoNotOwnStockException { logger.log(Level.INFO, "selling stock ..."); portfolio.sellStock(symbol, quantity, sellPrice); + save(); } public double getWalletCurrentAmount() { @@ -42,4 +44,35 @@ public ArrayList getAllStocks() { return portfolio.getAllStocks(); } + private void load() { + try { + FileInputStream fis = new FileInputStream("data/portfolio.ser"); + ObjectInputStream ois = new ObjectInputStream(fis); + portfolio = (Portfolio) ois.readObject(); + ois.close(); + fis.close(); + } catch(FileNotFoundException e) { + portfolio = new Portfolio(); + } catch (ClassNotFoundException e) { + e.printStackTrace(); + } catch(InvalidClassException e) { + portfolio = new Portfolio(); + } catch (IOException e) { + e.printStackTrace(); + } + } + + private void save() { + try { + FileOutputStream fos = new FileOutputStream("data/portfolio.ser"); + ObjectOutputStream oos = new ObjectOutputStream(fos); + oos.writeObject(portfolio); + oos.close(); + fos.close(); + System.out.println("Serialization Done!!"); + } catch(IOException e) { + System.out.println(e); + } + } + } diff --git a/src/main/java/seedu/duke/model/Transaction.java b/src/main/java/seedu/duke/model/Transaction.java index 597c8b7559..c27f5c2bec 100644 --- a/src/main/java/seedu/duke/model/Transaction.java +++ b/src/main/java/seedu/duke/model/Transaction.java @@ -1,8 +1,9 @@ package seedu.duke.model; +import java.io.Serializable; import java.time.LocalDateTime; -public class Transaction { +public class Transaction implements Serializable { private TransactionType transactionType; private int quantity; private double unitPrice; diff --git a/src/main/java/seedu/duke/model/TransactionType.java b/src/main/java/seedu/duke/model/TransactionType.java index 0da9e348ff..d860608bad 100644 --- a/src/main/java/seedu/duke/model/TransactionType.java +++ b/src/main/java/seedu/duke/model/TransactionType.java @@ -1,5 +1,7 @@ package seedu.duke.model; +import java.io.Serializable; + public enum TransactionType { BUY, SELL diff --git a/src/main/java/seedu/duke/model/Wallet.java b/src/main/java/seedu/duke/model/Wallet.java index d67d01d940..ed48a75e64 100644 --- a/src/main/java/seedu/duke/model/Wallet.java +++ b/src/main/java/seedu/duke/model/Wallet.java @@ -1,6 +1,8 @@ package seedu.duke.model; -public class Wallet { +import java.io.Serializable; + +public class Wallet implements Serializable { private double currentAmount; private double initialAmount; From 59fedc8e8e3d2f9d461c22d7e77baaafc3583d06 Mon Sep 17 00:00:00 2001 From: Alvin Tan De Jun <> Date: Tue, 27 Oct 2020 20:58:10 +0800 Subject: [PATCH 080/136] Fix codestyle errors --- .../java/seedu/duke/model/PortfolioManager.java | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/src/main/java/seedu/duke/model/PortfolioManager.java b/src/main/java/seedu/duke/model/PortfolioManager.java index 1e5162417c..4a768f34e1 100644 --- a/src/main/java/seedu/duke/model/PortfolioManager.java +++ b/src/main/java/seedu/duke/model/PortfolioManager.java @@ -5,8 +5,13 @@ import seedu.duke.exception.InsufficientFundException; import seedu.duke.exception.InsufficientQtyException; -import javax.sound.sampled.Port; -import java.io.*; +import java.io.FileInputStream; +import java.io.FileOutputStream; +import java.io.ObjectInputStream; +import java.io.ObjectOutputStream; +import java.io.IOException; +import java.io.InvalidClassException; +import java.io.FileNotFoundException; import java.util.ArrayList; import java.util.logging.Level; import java.util.logging.Logger; @@ -51,11 +56,11 @@ private void load() { portfolio = (Portfolio) ois.readObject(); ois.close(); fis.close(); - } catch(FileNotFoundException e) { + } catch (FileNotFoundException e) { portfolio = new Portfolio(); } catch (ClassNotFoundException e) { e.printStackTrace(); - } catch(InvalidClassException e) { + } catch (InvalidClassException e) { portfolio = new Portfolio(); } catch (IOException e) { e.printStackTrace(); @@ -70,7 +75,7 @@ private void save() { oos.close(); fos.close(); System.out.println("Serialization Done!!"); - } catch(IOException e) { + } catch (IOException e) { System.out.println(e); } } From 0851b8af9270fe82560a392a7bafd8fb21a6609a Mon Sep 17 00:00:00 2001 From: yokemin Date: Tue, 27 Oct 2020 22:19:01 +0800 Subject: [PATCH 081/136] Update DG according to changes in code --- docs/DeveloperGuide.md | 43 ++++++++++++++++--------------- docs/UML/BuyStockSequence.puml | 7 +++++ docs/UML/BuyStockState0.puml | 2 +- docs/UML/BuyStockState1.puml | 5 +++- docs/UML/BuyStockState2.puml | 8 +++--- docs/UML/BuyStockState3.puml | 12 +++------ docs/diagrams/BuyStockState0.png | Bin 11133 -> 10844 bytes docs/diagrams/BuyStockState1.png | Bin 13608 -> 13714 bytes docs/diagrams/BuyStockState2.png | Bin 17552 -> 18862 bytes docs/diagrams/BuyStockState3.png | Bin 8155 -> 5139 bytes 10 files changed, 43 insertions(+), 34 deletions(-) create mode 100644 docs/UML/BuyStockSequence.puml diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index 14f2f0a748..e214f33437 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -56,38 +56,36 @@ Other than that, the way the functions work is the same. Below is the explanation of the implementation of based on buy stock command, which can be applied to the sell stock command as well. -Buy stock command is instantiated by `Parser`. It allows users to buy stocks and add them to their - `Portfolio` by calling the `buyStock` methods from `PortfolioManager`, `StockPriceFetcher` and `Wallet` - objects instantiated by the `Controller` This will also _add_ the stock `portfolio` in `PortfolioManager`. - -Additionally, buy stock command extends the `Command` class which contains the `symbol` and `quantity` attributes. -An external class, `buyParse` method is being called to validate the various parameters that the user has entered. - Given below is an example usage scenario and how buy stock command behaves at each step. ![](./diagrams/BuyStockState0.png) -**Step 1** : The user calls the buy stock command from the `Parser`, which will initialise a -`BuyCommand` and get the attribute values for `symbol` and `quantity`. -`BuyCommand`'s constructor takes in parameter of `String symbol`, `Person`. +**Step 1** : The user calls the buy stock command from the `Parser`. +Buy stock command is instantiated by `Parser`, which calls the `buyParse` method to get the attribute values +for `symbol` and `quantity` required to instantiate `buyCommand`. The `Controller` instantiates `Ui`, `PortfolioManager` +and `StockPriceFetcher`, which gets the `price` of stock. +In the `Controller`, we check for the instance of `buyCommand` object and calls the `buyStock` method. + Below is a table of what each parameter corresponds to in the state diagram of the program. |Parameter|Corresponds to |:---:|:---: |`symbol`| Ticker symbol of Stock to buy |`quantity`| Integer number of shares to be +|`price`| Price of stock at current time -**Step 2** : `buyStock()` is called from the instances of both `portfolioManager` and `wallet` -with the values of `symbol` and `quantity` passed to them. +**Step 2** : `buyStock()` is called from the `PortfolioManager` with the values of `symbol` and `quantity` +and `price` passed to them. -**Step 3** : In the instance of `wallet`, the value of attribute `amount` is updated accordingly. -In the instance of `portfolioManager`, a new `Portfolio` object is instantiated. +**Step 3** : `Portfolio` is instantiated and its `buyStock` method is called as well. ![](./diagrams/BuyStockState1.png) -**Step 4** : The `buyStock` method is called from the `portfolio` instance, which instantiates a new `Transaction` object. - The `transaction` object stores details of the stock bought. +**Step 4** : `Wallet` and `Stock` are instantiated. +It then checks if there is sufficient fund in the wallet. If so, `buyStock` method is called from the `wallet` instance. +Then, new `Transaction` object is instantiated. +The `transaction` object stores details of the stock bought. Below is a table of what each attribute in `Transaction` corresponds to in the program. |Attribute|Corresponds to @@ -97,16 +95,19 @@ Below is a table of what each attribute in `Transaction` corresponds to in the p |`BuyPrice`| Cost price of a stock at a specific time |`LocalDateTime`| the time when the command is called -**Step 5** : A new 'Stock' object is also instantiated from the method call in the previous step. -(_If a stock with the same symbol has not been instantiated before_.) Otherwise, the `Stock` object of that stock -symbol will be used. +**Step 5** : Following that, _if a stock with the same symbol has not been instantiated before_, +a new 'Stock' object is also instantiated. Otherwise, the `Stock` object of that stock symbol will be used. The method `addTransaction` in the `stock` object is then called, with the `transaction` object as a parameter, to update the value of the attribute `totalQuantity` in `Stock`. ![](./diagrams/BuyStockState2.png) -**Step 6** : `BuyCommand`, `Parser`, `StockPriceFetcher`, `Transaction` and `Stock` are terminated. +**Step 6** : `Portfolio`, `Wallet`, `Transaction` and `Stock` are terminated first. +The `save` method is then called. + +**Step 7**: `Controller` then calls the relevant methods from `Ui` to print the information about the stock bought and +the amount left in the wallet. `StockPriceFetcher`, `Ui` and `PortfolioManager` are then terminated. ![](./diagrams/BuyStockState3.png) @@ -122,7 +123,7 @@ The following explains the design considerations when implementing commands: * Make `BuyCommand` As a class by itself * Reason: Increases modularity of code, higher overall code quality * Alternatives: have a `buyCommand` method, increases coupling and reduces testability -======= + ### View Portfolio feature #### Current implementation diff --git a/docs/UML/BuyStockSequence.puml b/docs/UML/BuyStockSequence.puml new file mode 100644 index 0000000000..d0f7d7981d --- /dev/null +++ b/docs/UML/BuyStockSequence.puml @@ -0,0 +1,7 @@ +@startuml +Alice -> Bob: Authentication Request +Bob --> Alice: Authentication Response + +Alice -> Bob: Another authentication Request +Alice <-- Bob: another authentication Response +@enduml \ No newline at end of file diff --git a/docs/UML/BuyStockState0.puml b/docs/UML/BuyStockState0.puml index 6a845b1761..291722211a 100644 --- a/docs/UML/BuyStockState0.puml +++ b/docs/UML/BuyStockState0.puml @@ -11,7 +11,7 @@ title Initial state package States { class State1 as "__:PortfolioManager__" - class State2 as "__:wallet__" + class State2 as "__:Ui__" class State3 as "__buyCommand:BuyCommand__" class State5 as "__stockPriceFetcher:StockPriceFetcher__" } diff --git a/docs/UML/BuyStockState1.puml b/docs/UML/BuyStockState1.puml index 0e8809a17c..9fb8e7656c 100644 --- a/docs/UML/BuyStockState1.puml +++ b/docs/UML/BuyStockState1.puml @@ -11,11 +11,14 @@ title State after Step 3 package States { class State1 as "__:PortfolioManager__" - class State2 as "__:Wallet__" + class State2 as "__:Ui__" class State3 as "__buyCommand:BuyCommand__" class State4 as "__portfolio:Portfolio__" class State5 as "__stockPriceFetcher:StockPriceFetcher__" + class State6 as "__:Wallet__" + } +hide State6 State1 -down-> State4 class Pointer as "Controller" #FFFFF diff --git a/docs/UML/BuyStockState2.puml b/docs/UML/BuyStockState2.puml index d4f1afb5b8..272913a932 100644 --- a/docs/UML/BuyStockState2.puml +++ b/docs/UML/BuyStockState2.puml @@ -11,16 +11,18 @@ title State after Step:5 package States { class State1 as "__:PortfolioManager__" - class State2 as "__:Wallet__" + class State2 as "__:Ui__" class State3 as "__buyCommand:BuyCommand__" class State4 as "__portfolio:Portfolio__" class State5 as "__stockPriceFetcher:StockPriceFetcher__" - class State6 as "__transaction:Transaction__" - class State7 as "__stock:Stock__" + class State6 as "__wallet:Wallet__" + class State7 as "__transaction:Transaction__" + class State8 as "__stock:Stock__" } State1 -down-> State4 State4 -down-> State6 State4 -down-> State7 +State4 -down-> State8 class Pointer as "Controller" #FFFFF Pointer -down-> State1 diff --git a/docs/UML/BuyStockState3.puml b/docs/UML/BuyStockState3.puml index 0e221c67e5..12592c463b 100644 --- a/docs/UML/BuyStockState3.puml +++ b/docs/UML/BuyStockState3.puml @@ -10,15 +10,11 @@ skinparam ClassBorderColor #000000 title Final State package States { - class State1 as "__:PortfolioManager__" - class State2 as "__:Wallet__" - class State4 as "__portfolio:Portfolio__" -} -State1 -down-> State4 -class Pointer as "Controller" #FFFFF -Pointer -down-> State1 -Pointer -down-> State2 + class State3 as "__buyCommand:BuyCommand__" +} +class Pointer2 as "Parser" #FFFFF +Pointer2 -down-> State3 @enduml \ No newline at end of file diff --git a/docs/diagrams/BuyStockState0.png b/docs/diagrams/BuyStockState0.png index bec6adabb407e748809fa32eae32b19df25e4a57..7ac71e34203b1a40bc8d77e85fe9fc21da5ef9a0 100644 GIT binary patch literal 10844 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 literal 11133 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 diff --git a/docs/diagrams/BuyStockState1.png b/docs/diagrams/BuyStockState1.png index 8e511eee6070495bd514721377228cce994cd3f0..97026d67591a89314877c9333c72887f1c8b6e1b 100644 GIT binary patch literal 13714 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�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 diff --git a/docs/diagrams/BuyStockState2.png b/docs/diagrams/BuyStockState2.png index 1c8d96db818431d5bd7d9b524b896ab0a2eaad58..9eb3212fe67607533d08a8b4659c3d9746312e84 100644 GIT binary patch literal 18862 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 G&;JJm_!7bZ literal 17552 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 diff --git a/docs/diagrams/BuyStockState3.png b/docs/diagrams/BuyStockState3.png index 4b001bcac5534d5e234f25b5b6dbe780ec29a96b..cad3b8418688efa88544852ab4f51333e95d0eea 100644 GIT binary patch literal 5139 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 literal 8155 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 Date: Tue, 27 Oct 2020 23:07:37 +0800 Subject: [PATCH 082/136] Add sequence diagram for buy stock function --- docs/UML/BuyStockSequence.puml | 73 +++++++++++++++++++++++++++-- docs/diagrams/BuyStockSequence.png | Bin 0 -> 49168 bytes 2 files changed, 69 insertions(+), 4 deletions(-) create mode 100644 docs/diagrams/BuyStockSequence.png diff --git a/docs/UML/BuyStockSequence.puml b/docs/UML/BuyStockSequence.puml index d0f7d7981d..75073b04fb 100644 --- a/docs/UML/BuyStockSequence.puml +++ b/docs/UML/BuyStockSequence.puml @@ -1,7 +1,72 @@ @startuml -Alice -> Bob: Authentication Request -Bob --> Alice: Authentication Response +participant ":Controller" as Controller +participant ":StockPriceFetcher" as StockPriceFetcher +participant ":PortfolioManager" as PortfolioManager +participant ":Portfolio" as Portfolio +participant ":Wallet" as Wallet +participant ":Transaction" as Transaction +participant ":Stock" as Stock + + +[-> Controller : buyStock(symbol, quantity) +activate Controller + + +Controller -> StockPriceFetcher : fetchLatestPrice(symbol) +activate StockPriceFetcher + +StockPriceFetcher --> Controller : price +deactivate StockPriceFetcher + + +Controller -> PortfolioManager : buyStock(symbol, quantity, price) +activate PortfolioManager + +PortfolioManager -> Portfolio : buyStock(symbol, quantity, price) +activate Portfolio + +Portfolio -> Wallet : buyStock(quantity, price) +activate Wallet + +Wallet --> Portfolio : +deactivate Wallet + +create Transaction +Portfolio -> Transaction : new Transaction(quantity, price, time) +activate Transaction + +Transaction --> Portfolio : transaction +deactivate Transaction + + +alt stock not in portfolio + create Stock + Portfolio -> Stock : new Stock(symbol) + activate Stock + Stock --> Portfolio + deactivate Stock + Portfolio -> Stock : addTransaction(transaction) + activate Stock + Stock --> Portfolio : + deactivate Stock + +else stock already exist in portfolio + Portfolio -> Stock : addTransaction(transaction) + activate Stock + Stock --> Portfolio : + deactivate Stock + +end + +Portfolio --> PortfolioManager : +deactivate Portfolio + +PortfolioManager -> PortfolioManager : save() + +PortfolioManager --> Controller : +deactivate PortfolioManager + +[<--Controller +deactivate Controller -Alice -> Bob: Another authentication Request -Alice <-- Bob: another authentication Response @enduml \ No newline at end of file diff --git a/docs/diagrams/BuyStockSequence.png b/docs/diagrams/BuyStockSequence.png new file mode 100644 index 0000000000000000000000000000000000000000..8e67044c9fad7b117d4ffe0191cf9b689d64d7b1 GIT binary patch literal 49168 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 Z4n4>u*qzW{klLTzG%>KyCm{YE^B>OBAQ}Jw literal 0 HcmV?d00001 From 6fb022044861ca89c013cb553a95f9320c85a58d Mon Sep 17 00:00:00 2001 From: yokemin Date: Tue, 27 Oct 2020 23:15:14 +0800 Subject: [PATCH 083/136] Remove redundant line in DG --- docs/DeveloperGuide.md | 1 - 1 file changed, 1 deletion(-) diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index e214f33437..0de700746a 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -114,7 +114,6 @@ the amount left in the wallet. `StockPriceFetcher`, `Ui` and `PortfolioManager` The following sequence diagram summarizes what happens when the user executes an `BuyCommand` : ![](./diagrams/BuyStockSequence.png) -(Sequence Diagram to be added) #### Design consideration From fc34712d03be5320f85808b9179a9e5bd32a7bb0 Mon Sep 17 00:00:00 2001 From: yokemin Date: Tue, 27 Oct 2020 23:21:04 +0800 Subject: [PATCH 084/136] Update UG --- docs/UserGuide.md | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/docs/UserGuide.md b/docs/UserGuide.md index 8b0a5b5737..2d5ebf2762 100644 --- a/docs/UserGuide.md +++ b/docs/UserGuide.md @@ -13,31 +13,33 @@ Duke is a command line trading simulator that lets you try your hand at trading ## Features -### Buying a stock: `buy /aapl` +### Buying a stock: `buy /aapl quantity` Buys the specified stock at market price -Format: `buy /STOCK_TICKER` +Format: `buy /STOCK_TICKER quantity` * The `STOCK_TICKER` is the stock's short form +* `quantity` refers to the quantity of stocks user wants to buy; is an integer Example of usage: -`buy /fb` +`buy /fb 1` -`buy /tsla` +`buy /tsla 2` -### Selling a stock: `sell /aapl` +### Selling a stock: `sell /aapl quantity` Sells the specified stock at market price -Format: `sell /STOCK_TICKER` +Format: `sell /STOCK_TICKER quantity` * The `STOCK_TICKER` is the stock's short form +* `quantity` refers to the quantity of stocks user wants to sell; is an integer Example of usage: -`sell /goog` +`sell /goog 1` -`sell /amzn` +`sell /amzn 2` ### Searching for info about a stock: `search /aapl` Shows information about a stock like price and volume @@ -89,8 +91,8 @@ Example of usage: {Give a 'cheat sheet' of commands here} -* Buy a stock `buy /aapl` -* Sell a stock `sell /aapl` +* Buy a stock `buy /aapl quantity` +* Sell a stock `sell /aapl quantity` * Search for a stock's info `search /aapl` * View portfolio `view` * Check your wallet `wallet` From 5e1c6878e794d9898997f471c02a2984a73f377d Mon Sep 17 00:00:00 2001 From: yokemin Date: Tue, 27 Oct 2020 23:27:03 +0800 Subject: [PATCH 085/136] Refactor code --- src/main/java/seedu/duke/api/Api.java | 4 ++-- src/main/java/seedu/duke/controller/Controller.java | 5 ++--- src/main/java/seedu/duke/model/Portfolio.java | 2 +- src/main/java/seedu/duke/model/PortfolioManager.java | 6 +++--- src/main/java/seedu/duke/model/TransactionType.java | 2 -- src/main/java/seedu/duke/parser/Parser.java | 2 +- src/main/java/seedu/duke/ui/Ui.java | 4 ++-- src/test/java/seedu/duke/PaperTradeTest.java | 4 ++-- 8 files changed, 13 insertions(+), 16 deletions(-) diff --git a/src/main/java/seedu/duke/api/Api.java b/src/main/java/seedu/duke/api/Api.java index 81c8cc0dd5..1c1330e616 100644 --- a/src/main/java/seedu/duke/api/Api.java +++ b/src/main/java/seedu/duke/api/Api.java @@ -32,7 +32,7 @@ public Api() throws IOException { // Creating a Request URL url = new URL(request.toString()); URLConnection con = url.openConnection(); - HttpURLConnection http = (HttpURLConnection)con; + HttpURLConnection http = (HttpURLConnection) con; http.setRequestMethod("GET"); // Prints response from API call @@ -52,7 +52,7 @@ public static String buildParamsString(Map params) result.append(URLEncoder.encode(entry.getValue(), "UTF-8")); result.append("&"); } - + result.append("apikey=" + API_KEY); String resultString = result.toString(); diff --git a/src/main/java/seedu/duke/controller/Controller.java b/src/main/java/seedu/duke/controller/Controller.java index e14b3a6283..5fa15f9742 100644 --- a/src/main/java/seedu/duke/controller/Controller.java +++ b/src/main/java/seedu/duke/controller/Controller.java @@ -2,12 +2,11 @@ import org.patriques.output.timeseries.data.StockData; import seedu.duke.api.StockPriceFetcher; - +import seedu.duke.command.BuyCommand; import seedu.duke.command.ByeCommand; import seedu.duke.command.Command; import seedu.duke.command.InvalidCommand; import seedu.duke.command.SearchCommand; -import seedu.duke.command.BuyCommand; import seedu.duke.command.SellCommand; import seedu.duke.command.ViewCommand; import seedu.duke.command.WalletCommand; @@ -102,7 +101,7 @@ public void viewPortfolio() { public void viewWallet() { double amount = 0.00; - for (Stock stock: portfolioManager.getAllStocks()) { + for (Stock stock : portfolioManager.getAllStocks()) { try { amount += (stockPriceFetcher.fetchLatestPrice(stock.getSymbol())) * stock.getTotalQuantity(); } catch (DukeException e) { diff --git a/src/main/java/seedu/duke/model/Portfolio.java b/src/main/java/seedu/duke/model/Portfolio.java index 409fac8451..93207499a6 100644 --- a/src/main/java/seedu/duke/model/Portfolio.java +++ b/src/main/java/seedu/duke/model/Portfolio.java @@ -63,7 +63,7 @@ public double getWalletInitialAmount() { public ArrayList getAllStocks() { ArrayList stocksArrayList = new ArrayList<>(); - for (Stock stock: stocks.values()) { + for (Stock stock : stocks.values()) { stocksArrayList.add(stock); } diff --git a/src/main/java/seedu/duke/model/PortfolioManager.java b/src/main/java/seedu/duke/model/PortfolioManager.java index 4a768f34e1..35d2ba16e5 100644 --- a/src/main/java/seedu/duke/model/PortfolioManager.java +++ b/src/main/java/seedu/duke/model/PortfolioManager.java @@ -6,12 +6,12 @@ import seedu.duke.exception.InsufficientQtyException; import java.io.FileInputStream; +import java.io.FileNotFoundException; import java.io.FileOutputStream; -import java.io.ObjectInputStream; -import java.io.ObjectOutputStream; import java.io.IOException; import java.io.InvalidClassException; -import java.io.FileNotFoundException; +import java.io.ObjectInputStream; +import java.io.ObjectOutputStream; import java.util.ArrayList; import java.util.logging.Level; import java.util.logging.Logger; diff --git a/src/main/java/seedu/duke/model/TransactionType.java b/src/main/java/seedu/duke/model/TransactionType.java index d860608bad..0da9e348ff 100644 --- a/src/main/java/seedu/duke/model/TransactionType.java +++ b/src/main/java/seedu/duke/model/TransactionType.java @@ -1,7 +1,5 @@ package seedu.duke.model; -import java.io.Serializable; - public enum TransactionType { BUY, SELL diff --git a/src/main/java/seedu/duke/parser/Parser.java b/src/main/java/seedu/duke/parser/Parser.java index 9328ef2e38..ed87971228 100644 --- a/src/main/java/seedu/duke/parser/Parser.java +++ b/src/main/java/seedu/duke/parser/Parser.java @@ -1,10 +1,10 @@ package seedu.duke.parser; +import seedu.duke.command.BuyCommand; import seedu.duke.command.ByeCommand; import seedu.duke.command.Command; import seedu.duke.command.InvalidCommand; import seedu.duke.command.SearchCommand; -import seedu.duke.command.BuyCommand; import seedu.duke.command.SellCommand; import seedu.duke.command.ViewCommand; import seedu.duke.command.WalletCommand; diff --git a/src/main/java/seedu/duke/ui/Ui.java b/src/main/java/seedu/duke/ui/Ui.java index 03834f8f3d..a494ab04ce 100644 --- a/src/main/java/seedu/duke/ui/Ui.java +++ b/src/main/java/seedu/duke/ui/Ui.java @@ -28,7 +28,7 @@ public void print(String message) { public void printWithDivider(String... messages) { print(dividerLine); - for (String message: messages) { + for (String message : messages) { print(message); } print(dividerLine); @@ -50,7 +50,7 @@ public void view(ArrayList stocks) { print((i + 1) + ". " + stocks.get(i).toString()); int totalStocksBought = 0; double totalCost = 0; - for (Transaction t: stocks.get(i).getTransactions()) { + for (Transaction t : stocks.get(i).getTransactions()) { print("\t" + t.toString()); if (t.getTransactionType() == TransactionType.BUY) { totalCost += t.getUnitPrice() * t.getQuantity(); diff --git a/src/test/java/seedu/duke/PaperTradeTest.java b/src/test/java/seedu/duke/PaperTradeTest.java index 9d230dfd3c..8d7e155401 100644 --- a/src/test/java/seedu/duke/PaperTradeTest.java +++ b/src/test/java/seedu/duke/PaperTradeTest.java @@ -1,9 +1,9 @@ package seedu.duke; -import static org.junit.jupiter.api.Assertions.assertTrue; - import org.junit.jupiter.api.Test; +import static org.junit.jupiter.api.Assertions.assertTrue; + class PaperTradeTest { @Test public void sampleTest() { From 335b95736e141f77fe1cb40b895107a90746389c Mon Sep 17 00:00:00 2001 From: yokemin Date: Tue, 27 Oct 2020 23:50:37 +0800 Subject: [PATCH 086/136] Remove storage class --- data/portfolio.ser | Bin 793 -> 1017 bytes src/main/java/seedu/duke/model/Portfolio.java | 1 + src/main/java/seedu/duke/storage/Storage.java | 4 ---- 3 files changed, 1 insertion(+), 4 deletions(-) delete mode 100644 src/main/java/seedu/duke/storage/Storage.java diff --git a/data/portfolio.ser b/data/portfolio.ser index bbe8ac9221a44a615529c2673717043ad736c87d..9edade5e8d469eec45f9f3470b821a149db2d2e3 100644 GIT binary patch delta 256 zcmbQq_LF_Wen#en2bk(h7+6Y*a}tXS8R{6=85kItKn!s(mmA1sEN20cU_LKM+M$Ze zwqWsfF0hDTIUg$n1N##$X>kL7t1~AWDnPnLD}aXP7N?cK4P^ld%fJm~0vpN%;wLbG zOl5V*3QGe4bW`1P(v47(f63zgG%r diff --git a/src/main/java/seedu/duke/model/Portfolio.java b/src/main/java/seedu/duke/model/Portfolio.java index 93207499a6..fb9e193afa 100644 --- a/src/main/java/seedu/duke/model/Portfolio.java +++ b/src/main/java/seedu/duke/model/Portfolio.java @@ -16,6 +16,7 @@ public class Portfolio implements Serializable { public Portfolio() { stocks = new HashMap<>(); wallet = new Wallet(100000); + assert getWalletInitialAmount() <= 100000; } public void buyStock(String symbol, int quantity, double buyPrice) throws InsufficientFundException { diff --git a/src/main/java/seedu/duke/storage/Storage.java b/src/main/java/seedu/duke/storage/Storage.java deleted file mode 100644 index df0ce93b9b..0000000000 --- a/src/main/java/seedu/duke/storage/Storage.java +++ /dev/null @@ -1,4 +0,0 @@ -package seedu.duke.storage; - -public class Storage { -} From 34a41abe439234e2e8f7ca4ed23f75518410831e Mon Sep 17 00:00:00 2001 From: yokemin Date: Wed, 28 Oct 2020 01:09:04 +0800 Subject: [PATCH 087/136] Add mark, unmark and bookmarks function --- data/bookmarks.ser | Bin 0 -> 158 bytes .../duke/command/AddBookmarkCommand.java | 14 ++++ .../duke/command/RemoveBookmarkCommand.java | 14 ++++ .../command/ViewBookmarkedStocksCommand.java | 4 ++ .../seedu/duke/controller/Controller.java | 44 ++++++++++++ src/main/java/seedu/duke/model/Bookmarks.java | 39 +++++++++++ .../seedu/duke/model/BookmarksManager.java | 66 ++++++++++++++++++ src/main/java/seedu/duke/parser/Parser.java | 41 +++++++++++ 8 files changed, 222 insertions(+) create mode 100644 data/bookmarks.ser create mode 100644 src/main/java/seedu/duke/command/AddBookmarkCommand.java create mode 100644 src/main/java/seedu/duke/command/RemoveBookmarkCommand.java create mode 100644 src/main/java/seedu/duke/command/ViewBookmarkedStocksCommand.java create mode 100644 src/main/java/seedu/duke/model/Bookmarks.java create mode 100644 src/main/java/seedu/duke/model/BookmarksManager.java diff --git a/data/bookmarks.ser b/data/bookmarks.ser new file mode 100644 index 0000000000000000000000000000000000000000..e144b1976e1c81bb5e2b526aa51c50478fad46c1 GIT binary patch literal 158 zcmZ4UmVvdnh(W42H8rJFFQqg)RWCO`B{fISDL+3uH?b(YIPvrU-FsGdw=gj<`Y;G2 zL4{LOf=lv~vx`d@M18Un%M$fVOEPox9gB(*D}6GHOROsjfTjwAWb{BXdT^PF#!Ip@ pk0;J$W?=MWU@6Y5O06hhU|?V>X91BV3@o|DX(d1^F|i=00svJ9H!}bL literal 0 HcmV?d00001 diff --git a/src/main/java/seedu/duke/command/AddBookmarkCommand.java b/src/main/java/seedu/duke/command/AddBookmarkCommand.java new file mode 100644 index 0000000000..8cb5599253 --- /dev/null +++ b/src/main/java/seedu/duke/command/AddBookmarkCommand.java @@ -0,0 +1,14 @@ +package seedu.duke.command; + +public class AddBookmarkCommand extends Command { + + private String symbol; + + public AddBookmarkCommand(String symbol) { + this.symbol = symbol; + } + + public String getSymbol() { + return symbol; + } +} diff --git a/src/main/java/seedu/duke/command/RemoveBookmarkCommand.java b/src/main/java/seedu/duke/command/RemoveBookmarkCommand.java new file mode 100644 index 0000000000..36978a71d5 --- /dev/null +++ b/src/main/java/seedu/duke/command/RemoveBookmarkCommand.java @@ -0,0 +1,14 @@ +package seedu.duke.command; + +public class RemoveBookmarkCommand extends Command { + + private String symbol; + + public RemoveBookmarkCommand(String symbol) { + this.symbol = symbol; + } + + public String getSymbol() { + return symbol; + } +} diff --git a/src/main/java/seedu/duke/command/ViewBookmarkedStocksCommand.java b/src/main/java/seedu/duke/command/ViewBookmarkedStocksCommand.java new file mode 100644 index 0000000000..735df204f8 --- /dev/null +++ b/src/main/java/seedu/duke/command/ViewBookmarkedStocksCommand.java @@ -0,0 +1,4 @@ +package seedu.duke.command; + +public class ViewBookmarkedStocksCommand extends Command { +} diff --git a/src/main/java/seedu/duke/controller/Controller.java b/src/main/java/seedu/duke/controller/Controller.java index 5fa15f9742..2dcedc5c3a 100644 --- a/src/main/java/seedu/duke/controller/Controller.java +++ b/src/main/java/seedu/duke/controller/Controller.java @@ -2,18 +2,22 @@ import org.patriques.output.timeseries.data.StockData; import seedu.duke.api.StockPriceFetcher; +import seedu.duke.command.AddBookmarkCommand; import seedu.duke.command.BuyCommand; import seedu.duke.command.ByeCommand; import seedu.duke.command.Command; import seedu.duke.command.InvalidCommand; +import seedu.duke.command.RemoveBookmarkCommand; import seedu.duke.command.SearchCommand; import seedu.duke.command.SellCommand; +import seedu.duke.command.ViewBookmarkedStocksCommand; import seedu.duke.command.ViewCommand; import seedu.duke.command.WalletCommand; import seedu.duke.exception.DoNotOwnStockException; import seedu.duke.exception.DukeException; import seedu.duke.exception.InsufficientFundException; import seedu.duke.exception.InsufficientQtyException; +import seedu.duke.model.BookmarksManager; import seedu.duke.model.PortfolioManager; import seedu.duke.model.Stock; import seedu.duke.parser.Parser; @@ -23,11 +27,13 @@ public class Controller { private Ui ui; private StockPriceFetcher stockPriceFetcher; private PortfolioManager portfolioManager; + private BookmarksManager bookmarksManager; public Controller() { ui = new Ui(); stockPriceFetcher = new StockPriceFetcher(); portfolioManager = new PortfolioManager(); + bookmarksManager = new BookmarksManager(); } private void buyStock(String symbol, int quantity) { @@ -70,6 +76,30 @@ public void runApp() { } } + public void addBookmark(String symbol) { + try { + stockPriceFetcher.fetchLatestPrice(symbol); + } catch (DukeException e) { + ui.printWithDivider("Invalid stock!"); + return; + } + try { + bookmarksManager.addToBookmarks(symbol); + ui.printWithDivider("You have added " + symbol + " to bookmarks."); + } catch (DukeException e) { + ui.printWithDivider(e.getMessage()); + } + } + + public void removeBookmark(String symbol) { + try { + bookmarksManager.removeBookmark(symbol); + ui.printWithDivider("You have removed " + symbol + " from bookmarks."); + } catch (DukeException e) { + ui.printWithDivider(e.getMessage()); + } + } + private boolean executeCommand(Command command) { if (command instanceof SearchCommand) { SearchCommand searchCommand = (SearchCommand) command; @@ -90,11 +120,25 @@ private boolean executeCommand(Command command) { viewPortfolio(); } else if (command instanceof WalletCommand) { viewWallet(); + } else if (command instanceof AddBookmarkCommand) { + AddBookmarkCommand addBookmarkCommand = (AddBookmarkCommand) command; + addBookmark(addBookmarkCommand.getSymbol()); + } else if (command instanceof RemoveBookmarkCommand) { + RemoveBookmarkCommand removeBookmarkCommand = (RemoveBookmarkCommand) command; + removeBookmark(removeBookmarkCommand.getSymbol()); + } else if (command instanceof ViewBookmarkedStocksCommand) { + viewBookmarkedStocks(); } return true; } + private void viewBookmarkedStocks() { + for (String symbol : bookmarksManager.getBookmarks().getBookmarkedStocks()) { + searchSymbol(symbol); + } + } + public void viewPortfolio() { ui.view(portfolioManager.getAllStocks()); } diff --git a/src/main/java/seedu/duke/model/Bookmarks.java b/src/main/java/seedu/duke/model/Bookmarks.java new file mode 100644 index 0000000000..a678b6f6d8 --- /dev/null +++ b/src/main/java/seedu/duke/model/Bookmarks.java @@ -0,0 +1,39 @@ +package seedu.duke.model; + +import seedu.duke.exception.DukeException; + +import java.io.FileInputStream; +import java.io.FileNotFoundException; +import java.io.IOException; +import java.io.InvalidClassException; +import java.io.ObjectInputStream; +import java.io.Serializable; +import java.util.ArrayList; + +public class Bookmarks implements Serializable { + + private ArrayList bookmarkedStocks; + + public Bookmarks() { + bookmarkedStocks = new ArrayList<>(); + } + + public ArrayList getBookmarkedStocks() { + return bookmarkedStocks; + } + + public void addToBookmarks(String symbol) throws DukeException { + if (bookmarkedStocks.contains(symbol)) { + throw new DukeException("Already bookmarked this stock!"); + } + bookmarkedStocks.add(symbol); + } + + public void removeBookmark(String symbol) throws DukeException { + if (!bookmarkedStocks.contains(symbol)) { + throw new DukeException("This stock is not bookmarked!"); + } + bookmarkedStocks.remove(symbol); + } + +} diff --git a/src/main/java/seedu/duke/model/BookmarksManager.java b/src/main/java/seedu/duke/model/BookmarksManager.java new file mode 100644 index 0000000000..d0fba77eac --- /dev/null +++ b/src/main/java/seedu/duke/model/BookmarksManager.java @@ -0,0 +1,66 @@ +package seedu.duke.model; + +import seedu.duke.exception.DukeException; + +import java.io.FileInputStream; +import java.io.FileNotFoundException; +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.InvalidClassException; +import java.io.ObjectInputStream; +import java.io.ObjectOutputStream; + +public class BookmarksManager { + + private Bookmarks bookmarks; + + public BookmarksManager () { + load(); + } + + public Bookmarks getBookmarks() { + return bookmarks; + } + + public void addToBookmarks(String symbol) throws DukeException { + bookmarks.addToBookmarks(symbol); + save(); + } + + public void removeBookmark(String symbol) throws DukeException { + bookmarks.removeBookmark(symbol); + save(); + } + + private void load() { + try { + FileInputStream fis = new FileInputStream("data/bookmarks.ser"); + ObjectInputStream ois = new ObjectInputStream(fis); + bookmarks = (Bookmarks) ois.readObject(); + ois.close(); + fis.close(); + } catch (FileNotFoundException e) { + bookmarks = new Bookmarks(); + } catch (ClassNotFoundException e) { + e.printStackTrace(); + } catch (InvalidClassException e) { + bookmarks = new Bookmarks(); + } catch (IOException e) { + e.printStackTrace(); + } + } + + private void save() { + try { + FileOutputStream fos = new FileOutputStream("data/bookmarks.ser"); + ObjectOutputStream oos = new ObjectOutputStream(fos); + oos.writeObject(bookmarks); + oos.close(); + fos.close(); + System.out.println("Serialization Done!!"); + } catch (IOException e) { + System.out.println(e); + } + } + +} diff --git a/src/main/java/seedu/duke/parser/Parser.java b/src/main/java/seedu/duke/parser/Parser.java index ed87971228..d154ea77f0 100644 --- a/src/main/java/seedu/duke/parser/Parser.java +++ b/src/main/java/seedu/duke/parser/Parser.java @@ -1,11 +1,14 @@ package seedu.duke.parser; +import seedu.duke.command.AddBookmarkCommand; import seedu.duke.command.BuyCommand; import seedu.duke.command.ByeCommand; import seedu.duke.command.Command; import seedu.duke.command.InvalidCommand; +import seedu.duke.command.RemoveBookmarkCommand; import seedu.duke.command.SearchCommand; import seedu.duke.command.SellCommand; +import seedu.duke.command.ViewBookmarkedStocksCommand; import seedu.duke.command.ViewCommand; import seedu.duke.command.WalletCommand; import seedu.duke.exception.DukeException; @@ -48,12 +51,50 @@ public static Command parseCommand(String userInput) { return new ViewCommand(); case "wallet": return new WalletCommand(); + case "mark": + try { + return parseMark(userInputSplit); + } catch (DukeException e) { + return new InvalidCommand(e.getMessage()); + } + case "unmark": + try { + return parseUnmark(userInputSplit); + } catch (DukeException e) { + return new InvalidCommand(e.getMessage()); + } + case "bookmarks": + return new ViewBookmarkedStocksCommand(); default: logger.log(Level.WARNING, "processing error when parsing command"); return new InvalidCommand("Invalid command! Please try again."); } } + public static Command parseMark(String[] userInputSplit) throws DukeException { + try { + if (!userInputSplit[1].startsWith("/")) { + throw new DukeException("Please enter the ticker symbol of the company that you want to mark!"); + } + String symbol = userInputSplit[1].substring(1); + return new AddBookmarkCommand(symbol); + } catch (IndexOutOfBoundsException e) { + throw new DukeException(("Wrong input format! E.g. mark /MSFT")); + } + } + + public static Command parseUnmark(String[] userInputSplit) throws DukeException { + try { + if (!userInputSplit[1].startsWith("/")) { + throw new DukeException("Please enter the ticker symbol of the company that you want to unmark!"); + } + String symbol = userInputSplit[1].substring(1); + return new RemoveBookmarkCommand(symbol); + } catch (IndexOutOfBoundsException e) { + throw new DukeException(("Wrong input format! E.g. unmark /MSFT")); + } + } + public static Command parseBuy(String[] userInputSplit) throws DukeException { try { if (!userInputSplit[1].startsWith("/")) { From 25c8aa066a3876c390f85a4ad3f3ad3eed4b8591 Mon Sep 17 00:00:00 2001 From: yokemin Date: Wed, 28 Oct 2020 01:14:51 +0800 Subject: [PATCH 088/136] Update UG for functions related to bookmarking stocks --- docs/UserGuide.md | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/docs/UserGuide.md b/docs/UserGuide.md index 2d5ebf2762..87328a5ef9 100644 --- a/docs/UserGuide.md +++ b/docs/UserGuide.md @@ -72,6 +72,28 @@ Example of usage: `wallet` +### Bookmark stocks to keep on watchlist: `mark /STOCK_TICKER`, `unmark /STOCK_TICKER`, `bookmarks` +Allows you to bookmark stocks for easy access of stocks that you are actively watching +* The `STOCK_TICKER` is the stock's short form + +#### Marking Stocks: + +Format: `mark /STOCK_TICKER` + +Example of usage: mark /tsla + +#### Unmarking Stocks: + +Format: `unmark /STOCK_TICKER` + +Example of usage: unmark /tsla + +#### Viewing info of all bookmarked stocks: + +Format: `bookmarks` + +Example of usage: bookmarks + ### Exit: `bye` Exits the program. Duke will save your info for the next time you come back! From 4695972267e3856ed6a0a61abd569217af699d73 Mon Sep 17 00:00:00 2001 From: yokemin Date: Wed, 28 Oct 2020 01:16:04 +0800 Subject: [PATCH 089/136] Update DG --- docs/DeveloperGuide.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index 0de700746a..79ceb6cd05 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -202,8 +202,8 @@ Paper trading allows inexperienced people to get a feel of what trading feels li |v1.0|investor|view my portfolio|see what stocks I have and my past transactions| |v2.0|investor|keep track of what stocks I have bought or sold|see how much money I've made or lost| |v2.0|investor|see how much cash I have left|decide how much to buy or sell| -|v3.0|investor|have a watchlist of stocks|track the price movements of individual stocks| -|v4.0|investor|see the performance of my portfolio|see if I'm on track for my financial goals| +|v2.0|investor|have a watchlist of stocks|track the price movements of individual stocks| +|v2.1|investor|see the performance of my portfolio|see if I'm on track for my financial goals| ## Non-Functional Requirements From acdaba3f616abd3c3dff27251c1a31be0c1c68c1 Mon Sep 17 00:00:00 2001 From: yokemin Date: Wed, 28 Oct 2020 01:16:50 +0800 Subject: [PATCH 090/136] Refactor code --- src/main/java/seedu/duke/model/Bookmarks.java | 5 ----- src/main/java/seedu/duke/model/BookmarksManager.java | 2 +- 2 files changed, 1 insertion(+), 6 deletions(-) diff --git a/src/main/java/seedu/duke/model/Bookmarks.java b/src/main/java/seedu/duke/model/Bookmarks.java index a678b6f6d8..ea29344bfe 100644 --- a/src/main/java/seedu/duke/model/Bookmarks.java +++ b/src/main/java/seedu/duke/model/Bookmarks.java @@ -2,11 +2,6 @@ import seedu.duke.exception.DukeException; -import java.io.FileInputStream; -import java.io.FileNotFoundException; -import java.io.IOException; -import java.io.InvalidClassException; -import java.io.ObjectInputStream; import java.io.Serializable; import java.util.ArrayList; diff --git a/src/main/java/seedu/duke/model/BookmarksManager.java b/src/main/java/seedu/duke/model/BookmarksManager.java index d0fba77eac..2005c0de6f 100644 --- a/src/main/java/seedu/duke/model/BookmarksManager.java +++ b/src/main/java/seedu/duke/model/BookmarksManager.java @@ -14,7 +14,7 @@ public class BookmarksManager { private Bookmarks bookmarks; - public BookmarksManager () { + public BookmarksManager() { load(); } From e5ee57c5da37b61f816f40ccdd0cb79a775699ea Mon Sep 17 00:00:00 2001 From: yokemin Date: Wed, 28 Oct 2020 01:25:49 +0800 Subject: [PATCH 091/136] Add Junit test for functions in Bookmarks class --- src/main/java/seedu/duke/model/Bookmarks.java | 4 +++ .../java/seedu/duke/model/BookmarksTest.java | 33 +++++++++++++++++++ 2 files changed, 37 insertions(+) create mode 100644 src/test/java/seedu/duke/model/BookmarksTest.java diff --git a/src/main/java/seedu/duke/model/Bookmarks.java b/src/main/java/seedu/duke/model/Bookmarks.java index ea29344bfe..6feaef9daf 100644 --- a/src/main/java/seedu/duke/model/Bookmarks.java +++ b/src/main/java/seedu/duke/model/Bookmarks.java @@ -13,6 +13,10 @@ public Bookmarks() { bookmarkedStocks = new ArrayList<>(); } + public Bookmarks(ArrayList bookmarkedStocks) { + this.bookmarkedStocks = bookmarkedStocks; + } + public ArrayList getBookmarkedStocks() { return bookmarkedStocks; } diff --git a/src/test/java/seedu/duke/model/BookmarksTest.java b/src/test/java/seedu/duke/model/BookmarksTest.java new file mode 100644 index 0000000000..86a7f9227b --- /dev/null +++ b/src/test/java/seedu/duke/model/BookmarksTest.java @@ -0,0 +1,33 @@ +package seedu.duke.model; + +import org.junit.jupiter.api.Test; +import seedu.duke.exception.DukeException; + +import java.util.ArrayList; + +import static org.junit.jupiter.api.Assertions.assertThrows; + +class BookmarksTest { + + @Test + void addToBookmarks_bookmarkedStock_expectException() { + String symbol = "aapl"; + ArrayList bookmarkedStocks = new ArrayList<>(); + bookmarkedStocks.add(symbol); + Bookmarks bookmarks = new Bookmarks(bookmarkedStocks); + assertThrows(DukeException.class, () -> { + bookmarks.addToBookmarks(symbol); + }); + } + + @Test + void removeBookmark_unbookmarkedStock_expectException() { + String symbol = "aapl"; + ArrayList bookmarkedStocks = new ArrayList(); + Bookmarks bookmarks = new Bookmarks(bookmarkedStocks); + assertThrows(DukeException.class, () -> { + bookmarks.removeBookmark(symbol); + }); + } + +} From 648043fd7c90f16c964d1d773efdd4b56e6d1939 Mon Sep 17 00:00:00 2001 From: Alvin Tan De Jun <> Date: Wed, 28 Oct 2020 19:53:38 +0800 Subject: [PATCH 092/136] Add to UserGuide.md --- data/portfolio.ser | Bin 1017 -> 878 bytes docs/UserGuide.md | 79 +++++++++++++++--- .../seedu/duke/model/PortfolioManager.java | 1 - 3 files changed, 66 insertions(+), 14 deletions(-) diff --git a/data/portfolio.ser b/data/portfolio.ser index 9edade5e8d469eec45f9f3470b821a149db2d2e3..7724f0ad23761e8e1a4bde5d12a42ce865b43e58 100644 GIT binary patch delta 121 zcmey#{*Gz>% delta 261 zcmaFI_LF_Wen#er2ih39Cc87f;pB3N*|GRKmu=x>8zwalX%Pc$*2a_#le3s2`AUj& z5{nBN>KND=7#Nr)Uu2T2XL6|GvMm6r2a5}q^RY58us`9F7B}FxI&-3-0;F2BqJ)7Z zw>Yf?u9pQQECc3pgN!O?0g+%nFObFRkQJ5&0_cY7o0{s>)Ibac%Nc@{GvZQiAZfMs l(}9XQkZr<1Hw3%-_)HdI_U8Y-vrukF;A@8;SwQU!3;>c2MN|L) diff --git a/docs/UserGuide.md b/docs/UserGuide.md index 87328a5ef9..02c03a6f31 100644 --- a/docs/UserGuide.md +++ b/docs/UserGuide.md @@ -2,14 +2,14 @@ ## Introduction -Duke is a command line trading simulator that lets you try your hand at trading stocks with no risk! +PaperTrade is a command line trading simulator that lets you try your hand at trading stocks with no risk! ## Quick Start {Give steps to get started quickly} 1. Ensure that you have Java 11 or above installed. -1. Down the latest version of `Duke` from [here](https://github.com/AY2021S1-CS2113-T16-3/tp/releases/tag/v1.0). +2. Down the latest version of `PaperTrade` from [here](https://github.com/AY2021S1-CS2113-T16-3/tp/releases/tag/v1.0). ## Features @@ -21,11 +21,31 @@ Format: `buy /STOCK_TICKER quantity` * The `STOCK_TICKER` is the stock's short form * `quantity` refers to the quantity of stocks user wants to buy; is an integer -Example of usage: - -`buy /fb 1` - -`buy /tsla 2` +Example of usage and output: + +To buy 2 shares of TSLA: +``` +What would you like to do today? +buy /tsla 2 +____________________________________________________________ +You have successfully purchased 2 of tsla at 421.725. +____________________________________________________________ +____________________________________________________________ +You currently have $96049.14 in your wallet. +____________________________________________________________ +``` + +To buy 1 share of FB: +``` +What would you like to do today? +buy /fb 1 +____________________________________________________________ +You have successfully purchased 1 of fb at 282.485. +____________________________________________________________ +____________________________________________________________ +You currently have $95766.65 in your wallet. +____________________________________________________________ +``` ### Selling a stock: `sell /aapl quantity` Sells the specified stock at market price @@ -35,11 +55,19 @@ Format: `sell /STOCK_TICKER quantity` * The `STOCK_TICKER` is the stock's short form * `quantity` refers to the quantity of stocks user wants to sell; is an integer -Example of usage: - -`sell /goog 1` +Example of usage and output: -`sell /amzn 2` +To sell 1 share of GOOG: +``` +What would you like to do today? +sell /goog 1 +____________________________________________________________ +You have successfully sold 1 of goog at 1602.13. +____________________________________________________________ +____________________________________________________________ +You currently have $95766.65 in your wallet. +____________________________________________________________ +``` ### Searching for info about a stock: `search /aapl` Shows information about a stock like price and volume @@ -61,7 +89,24 @@ Format: `view` Example of usage: -`view` +``` +What would you like to do today? +view +____________________________________________________________ +1. Symbol: aapl, total quantity: 1, Current Price: 116.14500000000001 + BUY 1 at 116.14500000000001 on 2020-10-28T19:50:31.555462 +Total holding asset = $116.15 +Total cost = $116.15 +Total Profit/Loss = $0.0 + +2. Symbol: msft, total quantity: 1, Current Price: 209.695 + BUY 1 at 209.695 on 2020-10-28T19:50:36.916125 +Total holding asset = $209.7 +Total cost = $209.7 +Total Profit/Loss = $0.0 +____________________________________________________________ + +``` ### Check your wallet: `wallet` Shows you how much cash you have left in your wallet to buy stocks, how much you have allocated to stocks and your net profit. @@ -70,7 +115,15 @@ Format: `wallet` Example of usage: -`wallet` +``` +What would you like to do today? +wallet +____________________________________________________________ +You currently have $99674.16 in your wallet. +Current market value of all your equities owned: $325.84 +Loss of : -$0.00 +____________________________________________________________ +``` ### Bookmark stocks to keep on watchlist: `mark /STOCK_TICKER`, `unmark /STOCK_TICKER`, `bookmarks` Allows you to bookmark stocks for easy access of stocks that you are actively watching diff --git a/src/main/java/seedu/duke/model/PortfolioManager.java b/src/main/java/seedu/duke/model/PortfolioManager.java index 35d2ba16e5..91e1a824f4 100644 --- a/src/main/java/seedu/duke/model/PortfolioManager.java +++ b/src/main/java/seedu/duke/model/PortfolioManager.java @@ -74,7 +74,6 @@ private void save() { oos.writeObject(portfolio); oos.close(); fos.close(); - System.out.println("Serialization Done!!"); } catch (IOException e) { System.out.println(e); } From daa552a311244544909144c2aefd7ff251e39be8 Mon Sep 17 00:00:00 2001 From: Alvin Tan De Jun <> Date: Wed, 28 Oct 2020 20:04:10 +0800 Subject: [PATCH 093/136] Fix stock still appearing on view when quantity is 0 --- data/bookmarks.ser | Bin 158 -> 158 bytes data/portfolio.ser | Bin 1017 -> 878 bytes .../seedu/duke/model/BookmarksManager.java | 1 - src/main/java/seedu/duke/model/Portfolio.java | 4 ++++ 4 files changed, 4 insertions(+), 1 deletion(-) diff --git a/data/bookmarks.ser b/data/bookmarks.ser index e144b1976e1c81bb5e2b526aa51c50478fad46c1..6e8ecbdf8ec4226b142b110f4103e333f7d70ddf 100644 GIT binary patch delta 31 ncmbQoIFE6H5=YgZDf13*dJ#TRD}yI7u^^{}fh9dZKfM9~&KC@R delta 31 ncmbQoIFE6H5=Y|a|GW3B?rxc=mBEu+oK{l8z>=6)kW&Ew*p>|R diff --git a/data/portfolio.ser b/data/portfolio.ser index 9edade5e8d469eec45f9f3470b821a149db2d2e3..32784e393597ec7136ec3d293244a76cfdc7ce99 100644 GIT binary patch delta 31 jcmey#{*G_9tA@;`*khIyE&FAl;&H)r`1Q8%SEM{dAzBu8l#)jDZ0FHSa3* diff --git a/src/main/java/seedu/duke/model/BookmarksManager.java b/src/main/java/seedu/duke/model/BookmarksManager.java index 2005c0de6f..6a5044a59f 100644 --- a/src/main/java/seedu/duke/model/BookmarksManager.java +++ b/src/main/java/seedu/duke/model/BookmarksManager.java @@ -57,7 +57,6 @@ private void save() { oos.writeObject(bookmarks); oos.close(); fos.close(); - System.out.println("Serialization Done!!"); } catch (IOException e) { System.out.println(e); } diff --git a/src/main/java/seedu/duke/model/Portfolio.java b/src/main/java/seedu/duke/model/Portfolio.java index fb9e193afa..224fdecc1a 100644 --- a/src/main/java/seedu/duke/model/Portfolio.java +++ b/src/main/java/seedu/duke/model/Portfolio.java @@ -52,6 +52,10 @@ public void sellStock(String symbol, int quantity, double sellPrice) Transaction transaction = new Transaction(TransactionType.SELL, quantity, sellPrice, LocalDateTime.now()); Stock stock = stocks.get(symbol); stock.addTransaction(transaction); + + if (stock.getTotalQuantity() == 0) { + stocks.remove(symbol); + } } public double getWalletCurrentAmount() { From a44215a679b2f45bc6480131a6b14c08034f07d4 Mon Sep 17 00:00:00 2001 From: Alvin Tan De Jun <> Date: Wed, 28 Oct 2020 20:07:28 +0800 Subject: [PATCH 094/136] Ignore all data files --- .gitignore | 2 ++ data/bookmarks.ser | Bin 158 -> 0 bytes data/portfolio.ser | Bin 878 -> 0 bytes 3 files changed, 2 insertions(+) delete mode 100644 data/bookmarks.ser delete mode 100644 data/portfolio.ser diff --git a/.gitignore b/.gitignore index f69985ef1f..67d574d554 100644 --- a/.gitignore +++ b/.gitignore @@ -15,3 +15,5 @@ bin/ /text-ui-test/ACTUAL.txt text-ui-test/EXPECTED-UNIX.TXT + +data/*.ser diff --git a/data/bookmarks.ser b/data/bookmarks.ser deleted file mode 100644 index 6e8ecbdf8ec4226b142b110f4103e333f7d70ddf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 158 zcmZ4UmVvdnh(W42H8rJFFQqg)RWCO`B{fISDL+3uH?b(YxN6Uod51T>2xnqo^kEQ4 zf(oam1efF|XBU?+i27tDmL=+!mSpDWI~ElsR{CTXmsnR608JGJ$>@P(^x!fTjhAF+ p9#5Rh%)sc$z*3x9m0D52z`(#%&H^G!7+4Y$3vz%|dVYR-1pp!FHoX7< diff --git a/data/portfolio.ser b/data/portfolio.ser deleted file mode 100644 index 32784e393597ec7136ec3d293244a76cfdc7ce99..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 878 zcmaJ=O=uHQ5T0%l)5fN?t!dCINUy?fPa>9LDzP*gvC@bL3Vmi@n{8kAZQjnBO%KI_ zx84*FMLc;bc#wDzZ~lNH;!hC@1#bmUJ*zk8ZDShS41roJelJemgw(Ee6IEq=aPl6f2`t1?a(w z;(kR6JM_-yKu2%Ao9;*GG7#d7d4e#9J0#3%uEx&B!|!J{Hw=gsAdM24xE3%M9c*Yh zjp`jK5C-?;2<9$Wv#1<*fz=!Xx%k$G|?v z>{$P~Pap1ux-S!kq%7M(b?*b-KKr@;@xj+E`W^C+E(c0+7bmMSaFKF{OmUdl%R?{s PYxl=GMeg?^EeH4u(9s;* From 6f9c6004098f8f48e33dcc061c34fd5c206031dc Mon Sep 17 00:00:00 2001 From: Alvin Tan De Jun <> Date: Wed, 28 Oct 2020 20:34:39 +0800 Subject: [PATCH 095/136] Add more api keys --- src/main/java/seedu/duke/api/StockPriceFetcher.java | 8 +++++--- src/main/java/seedu/duke/model/PortfolioManager.java | 5 +++++ 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/src/main/java/seedu/duke/api/StockPriceFetcher.java b/src/main/java/seedu/duke/api/StockPriceFetcher.java index c9ba706d8b..b77e5421ba 100644 --- a/src/main/java/seedu/duke/api/StockPriceFetcher.java +++ b/src/main/java/seedu/duke/api/StockPriceFetcher.java @@ -10,16 +10,16 @@ import seedu.duke.exception.DukeException; import java.util.List; +import java.util.Random; import java.util.logging.Level; import java.util.logging.Logger; public class StockPriceFetcher { private static Logger logger = Logger.getLogger("tp"); - private String apiKey; + private String[] apiKeys = {"O8EVQ7YSWDW08BN9", "3FPNCQ0JNYEE8BTK"}; private int timeout = 3000; public StockPriceFetcher() { - apiKey = "3FPNCQ0JNYEE8BTK"; timeout = 3000; } @@ -31,7 +31,9 @@ public double fetchLatestPrice(String symbol) throws DukeException { } public StockData fetchLatestStockData(String symbol) throws DukeException { - AlphaVantageConnector apiConnector = new AlphaVantageConnector(apiKey, timeout); + Random random = new Random(); + String randomApiKey = apiKeys[random.nextInt(apiKeys.length)]; + AlphaVantageConnector apiConnector = new AlphaVantageConnector(randomApiKey, timeout); TimeSeries stockTimeSeries = new TimeSeries(apiConnector); try { diff --git a/src/main/java/seedu/duke/model/PortfolioManager.java b/src/main/java/seedu/duke/model/PortfolioManager.java index 91e1a824f4..9a074baae2 100644 --- a/src/main/java/seedu/duke/model/PortfolioManager.java +++ b/src/main/java/seedu/duke/model/PortfolioManager.java @@ -12,6 +12,7 @@ import java.io.InvalidClassException; import java.io.ObjectInputStream; import java.io.ObjectOutputStream; +import java.io.File; import java.util.ArrayList; import java.util.logging.Level; import java.util.logging.Logger; @@ -21,6 +22,10 @@ public class PortfolioManager { private static Logger logger = Logger.getLogger("tp"); public PortfolioManager() { + File directory = new File("data"); + if (!directory.exists()){ + directory.mkdir(); + } load(); } From 177755c9a7aa4bb6861f8cdb07a34d596b7a2b02 Mon Sep 17 00:00:00 2001 From: Alvin Tan De Jun <> Date: Wed, 28 Oct 2020 20:37:22 +0800 Subject: [PATCH 096/136] Update codestyle --- src/main/java/seedu/duke/model/PortfolioManager.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/seedu/duke/model/PortfolioManager.java b/src/main/java/seedu/duke/model/PortfolioManager.java index 9a074baae2..47d6baa8cc 100644 --- a/src/main/java/seedu/duke/model/PortfolioManager.java +++ b/src/main/java/seedu/duke/model/PortfolioManager.java @@ -23,7 +23,7 @@ public class PortfolioManager { public PortfolioManager() { File directory = new File("data"); - if (!directory.exists()){ + if (!directory.exists()) { directory.mkdir(); } load(); From 593a8119f9f9a1a7c3d4fb9dee57008aa995c234 Mon Sep 17 00:00:00 2001 From: wly99 Date: Wed, 28 Oct 2020 21:11:34 +0800 Subject: [PATCH 097/136] no message --- .../java/seedu/duke/command/ViewBookmarkedStocksCommand.java | 1 + 1 file changed, 1 insertion(+) diff --git a/src/main/java/seedu/duke/command/ViewBookmarkedStocksCommand.java b/src/main/java/seedu/duke/command/ViewBookmarkedStocksCommand.java index 735df204f8..297a2636c5 100644 --- a/src/main/java/seedu/duke/command/ViewBookmarkedStocksCommand.java +++ b/src/main/java/seedu/duke/command/ViewBookmarkedStocksCommand.java @@ -1,4 +1,5 @@ package seedu.duke.command; public class ViewBookmarkedStocksCommand extends Command { + } From cde37b883a953990adbeed4c55a21441ff3bc530 Mon Sep 17 00:00:00 2001 From: wly99 Date: Thu, 29 Oct 2020 09:30:34 +0800 Subject: [PATCH 098/136] no message --- .../java/seedu/duke/command/ViewBookmarkedStocksCommand.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/seedu/duke/command/ViewBookmarkedStocksCommand.java b/src/main/java/seedu/duke/command/ViewBookmarkedStocksCommand.java index 297a2636c5..02be8fd6ba 100644 --- a/src/main/java/seedu/duke/command/ViewBookmarkedStocksCommand.java +++ b/src/main/java/seedu/duke/command/ViewBookmarkedStocksCommand.java @@ -1,5 +1,5 @@ package seedu.duke.command; public class ViewBookmarkedStocksCommand extends Command { - + } From 35224f2d86a96e24d33c7b3608b6048cf6630919 Mon Sep 17 00:00:00 2001 From: wly99 Date: Thu, 29 Oct 2020 09:45:02 +0800 Subject: [PATCH 099/136] Added BuyCommandTest --- .../java/seedu/duke/model/BuyCommandTest.java | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 src/test/java/seedu/duke/model/BuyCommandTest.java diff --git a/src/test/java/seedu/duke/model/BuyCommandTest.java b/src/test/java/seedu/duke/model/BuyCommandTest.java new file mode 100644 index 0000000000..8a55f6bb73 --- /dev/null +++ b/src/test/java/seedu/duke/model/BuyCommandTest.java @@ -0,0 +1,21 @@ +package seedu.duke.model; + +import org.junit.jupiter.api.Test; +import seedu.duke.command.BuyCommand; + +import static org.junit.jupiter.api.Assertions.assertEquals; + +public class BuyCommandTest { + + @Test + public void getSymbol_noInputRequired_symbolString() { + BuyCommand buyCommand = new BuyCommand("aapl", 10); + assertEquals(buyCommand.getSymbol(), "aapl"); + } + + @Test + public void getQuantity_noInputRequired_int() { + BuyCommand buyCommand = new BuyCommand("aapl", 10); + assertEquals(buyCommand.getQuantity(), 10); + } +} From 52bebfae786896cad026fa7de32d7b34aef13c34 Mon Sep 17 00:00:00 2001 From: wly99 Date: Thu, 29 Oct 2020 09:48:18 +0800 Subject: [PATCH 100/136] Added SellCommandTest --- .../seedu/duke/model/SellCommandTest.java | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 src/test/java/seedu/duke/model/SellCommandTest.java diff --git a/src/test/java/seedu/duke/model/SellCommandTest.java b/src/test/java/seedu/duke/model/SellCommandTest.java new file mode 100644 index 0000000000..bef68a80c6 --- /dev/null +++ b/src/test/java/seedu/duke/model/SellCommandTest.java @@ -0,0 +1,21 @@ +package seedu.duke.model; + +import org.junit.jupiter.api.Test; +import seedu.duke.command.SellCommand; + +import static org.junit.jupiter.api.Assertions.assertEquals; + +public class SellCommandTest { + + @Test + public void getSymbol_noInputRequired_symbolString() { + SellCommand buyCommand = new SellCommand("aapl", 10); + assertEquals(buyCommand.getSymbol(), "aapl"); + } + + @Test + public void getQuantity_noInputRequired_int() { + SellCommand buyCommand = new SellCommand("aapl", 10); + assertEquals(buyCommand.getQuantity(), 10); + } +} From 4359747f0d5b32a1b40e8652cf334f011ce65906 Mon Sep 17 00:00:00 2001 From: wly99 Date: Thu, 29 Oct 2020 09:51:14 +0800 Subject: [PATCH 101/136] Added SearchCommandTest --- .../java/seedu/duke/model/SearchCommandTest.java | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 src/test/java/seedu/duke/model/SearchCommandTest.java diff --git a/src/test/java/seedu/duke/model/SearchCommandTest.java b/src/test/java/seedu/duke/model/SearchCommandTest.java new file mode 100644 index 0000000000..844b25e9df --- /dev/null +++ b/src/test/java/seedu/duke/model/SearchCommandTest.java @@ -0,0 +1,15 @@ +package seedu.duke.model; + +import org.junit.jupiter.api.Test; +import seedu.duke.command.SearchCommand; + +import static org.junit.jupiter.api.Assertions.assertEquals; + +public class SearchCommandTest { + + @Test + public void getSearchKey_noInputRequired_symbolString() { + SearchCommand buyCommand = new SearchCommand("aapl"); + assertEquals(buyCommand.getSearchKey(), "aapl"); + } +} From e02a053d986ef4f6f400a36f25d295df0f5effc8 Mon Sep 17 00:00:00 2001 From: wly99 Date: Thu, 29 Oct 2020 09:55:48 +0800 Subject: [PATCH 102/136] Added InvalidCommandTest --- .../seedu/duke/model/InvalidCommandTest.java | 16 ++++++++++++++++ .../java/seedu/duke/model/SearchCommandTest.java | 4 ++-- .../java/seedu/duke/model/SellCommandTest.java | 8 ++++---- 3 files changed, 22 insertions(+), 6 deletions(-) create mode 100644 src/test/java/seedu/duke/model/InvalidCommandTest.java diff --git a/src/test/java/seedu/duke/model/InvalidCommandTest.java b/src/test/java/seedu/duke/model/InvalidCommandTest.java new file mode 100644 index 0000000000..b1414bf696 --- /dev/null +++ b/src/test/java/seedu/duke/model/InvalidCommandTest.java @@ -0,0 +1,16 @@ +package seedu.duke.model; + +import org.junit.jupiter.api.Test; +import seedu.duke.command.InvalidCommand; +import seedu.duke.command.SearchCommand; + +import static org.junit.jupiter.api.Assertions.assertEquals; + +public class InvalidCommandTest { + + @Test + public void getSearchKey_noInputRequired_symbolString() { + InvalidCommand invalidCommand = new InvalidCommand("Invalid command!"); + assertEquals(invalidCommand.getErrorMessage(), "Invalid command!"); + } +} diff --git a/src/test/java/seedu/duke/model/SearchCommandTest.java b/src/test/java/seedu/duke/model/SearchCommandTest.java index 844b25e9df..0c74f21b9b 100644 --- a/src/test/java/seedu/duke/model/SearchCommandTest.java +++ b/src/test/java/seedu/duke/model/SearchCommandTest.java @@ -9,7 +9,7 @@ public class SearchCommandTest { @Test public void getSearchKey_noInputRequired_symbolString() { - SearchCommand buyCommand = new SearchCommand("aapl"); - assertEquals(buyCommand.getSearchKey(), "aapl"); + SearchCommand searchCommand = new SearchCommand("aapl"); + assertEquals(searchCommand.getSearchKey(), "aapl"); } } diff --git a/src/test/java/seedu/duke/model/SellCommandTest.java b/src/test/java/seedu/duke/model/SellCommandTest.java index bef68a80c6..16eca2dc6e 100644 --- a/src/test/java/seedu/duke/model/SellCommandTest.java +++ b/src/test/java/seedu/duke/model/SellCommandTest.java @@ -9,13 +9,13 @@ public class SellCommandTest { @Test public void getSymbol_noInputRequired_symbolString() { - SellCommand buyCommand = new SellCommand("aapl", 10); - assertEquals(buyCommand.getSymbol(), "aapl"); + SellCommand sellCommand = new SellCommand("aapl", 10); + assertEquals(sellCommand.getSymbol(), "aapl"); } @Test public void getQuantity_noInputRequired_int() { - SellCommand buyCommand = new SellCommand("aapl", 10); - assertEquals(buyCommand.getQuantity(), 10); + SellCommand sellCommand = new SellCommand("aapl", 10); + assertEquals(sellCommand.getQuantity(), 10); } } From 0acf9d8295bb8227b01aec778a5d220b442371a0 Mon Sep 17 00:00:00 2001 From: wly99 Date: Thu, 29 Oct 2020 10:02:45 +0800 Subject: [PATCH 103/136] Added AddBookmarkCommand --- src/test/java/seedu/duke/model/AddBookmarkCommandTest.java | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 src/test/java/seedu/duke/model/AddBookmarkCommandTest.java diff --git a/src/test/java/seedu/duke/model/AddBookmarkCommandTest.java b/src/test/java/seedu/duke/model/AddBookmarkCommandTest.java new file mode 100644 index 0000000000..46cc999d6b --- /dev/null +++ b/src/test/java/seedu/duke/model/AddBookmarkCommandTest.java @@ -0,0 +1,2 @@ +package seedu.duke.model;public class AddBookmarkCommandTest { +} From 6747986e63b960fc4d7efb5a7754f057ff68a5a0 Mon Sep 17 00:00:00 2001 From: wly99 Date: Thu, 29 Oct 2020 10:03:05 +0800 Subject: [PATCH 104/136] Added AddBookMarkCommand --- .../seedu/duke/model/AddBookmarkCommandTest.java | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/src/test/java/seedu/duke/model/AddBookmarkCommandTest.java b/src/test/java/seedu/duke/model/AddBookmarkCommandTest.java index 46cc999d6b..76dc7699c9 100644 --- a/src/test/java/seedu/duke/model/AddBookmarkCommandTest.java +++ b/src/test/java/seedu/duke/model/AddBookmarkCommandTest.java @@ -1,2 +1,15 @@ -package seedu.duke.model;public class AddBookmarkCommandTest { +package seedu.duke.model; + +import org.junit.jupiter.api.Test; +import seedu.duke.command.AddBookmarkCommand; + +import static org.junit.jupiter.api.Assertions.assertEquals; + +public class AddBookmarkCommandTest { + + @Test + public void getSymbol_noInputRequired_symbolString() { + AddBookmarkCommand addBookmarkCommand = new AddBookmarkCommand("aapl"); + assertEquals(addBookmarkCommand.getSymbol(), "aapl"); + } } From 57daf323e60634b54c76f548e3b75bb2e7cc5486 Mon Sep 17 00:00:00 2001 From: wly99 Date: Thu, 29 Oct 2020 10:05:17 +0800 Subject: [PATCH 105/136] RemoveBookmarkCommandTest --- .../duke/model/RemoveBookmarkCommandTest.java | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 src/test/java/seedu/duke/model/RemoveBookmarkCommandTest.java diff --git a/src/test/java/seedu/duke/model/RemoveBookmarkCommandTest.java b/src/test/java/seedu/duke/model/RemoveBookmarkCommandTest.java new file mode 100644 index 0000000000..717d6e0952 --- /dev/null +++ b/src/test/java/seedu/duke/model/RemoveBookmarkCommandTest.java @@ -0,0 +1,15 @@ +package seedu.duke.model; + +import org.junit.jupiter.api.Test; +import seedu.duke.command.RemoveBookmarkCommand; + +import static org.junit.jupiter.api.Assertions.assertEquals; + +public class RemoveBookmarkCommandTest { + + @Test + public void getSymbol_noInputRequired_symbolString() { + RemoveBookmarkCommand removeBookmarkCommand = new RemoveBookmarkCommand("aapl"); + assertEquals(removeBookmarkCommand.getSymbol(), "aapl"); + } +} From 91b05dad9db27fae7081ed604a43e3b06f479652 Mon Sep 17 00:00:00 2001 From: Alvin Tan De Jun <> Date: Tue, 3 Nov 2020 23:34:36 +0800 Subject: [PATCH 106/136] Fix selling and buying of negative quantities --- .../java/seedu/duke/controller/Controller.java | 9 +++------ .../seedu/duke/exception/NegativeQtyException.java | 7 +++++++ src/main/java/seedu/duke/model/Portfolio.java | 14 ++++++++++++-- .../java/seedu/duke/model/PortfolioManager.java | 6 ++++-- 4 files changed, 26 insertions(+), 10 deletions(-) create mode 100644 src/main/java/seedu/duke/exception/NegativeQtyException.java diff --git a/src/main/java/seedu/duke/controller/Controller.java b/src/main/java/seedu/duke/controller/Controller.java index 2dcedc5c3a..ddacee3944 100644 --- a/src/main/java/seedu/duke/controller/Controller.java +++ b/src/main/java/seedu/duke/controller/Controller.java @@ -13,10 +13,7 @@ import seedu.duke.command.ViewBookmarkedStocksCommand; import seedu.duke.command.ViewCommand; import seedu.duke.command.WalletCommand; -import seedu.duke.exception.DoNotOwnStockException; -import seedu.duke.exception.DukeException; -import seedu.duke.exception.InsufficientFundException; -import seedu.duke.exception.InsufficientQtyException; +import seedu.duke.exception.*; import seedu.duke.model.BookmarksManager; import seedu.duke.model.PortfolioManager; import seedu.duke.model.Stock; @@ -45,7 +42,7 @@ private void buyStock(String symbol, int quantity) { + quantity + " of " + symbol + " at " + price + "."); ui.printWithDivider("You currently have $" + String.format("%.02f", portfolioManager.getWalletCurrentAmount()) + " in your wallet."); - } catch (DukeException | InsufficientFundException e) { + } catch (DukeException | InsufficientFundException | NegativeQtyException e) { ui.printWithDivider(e.getMessage()); } } @@ -59,7 +56,7 @@ private void sellStock(String symbol, int quantity) { + quantity + " of " + symbol + " at " + price + "."); ui.printWithDivider("You currently have $" + String.format("%.02f", portfolioManager.getWalletCurrentAmount()) + " in your wallet."); - } catch (DoNotOwnStockException | InsufficientQtyException | DukeException e) { + } catch (DoNotOwnStockException | InsufficientQtyException | DukeException | NegativeQtyException e) { ui.printWithDivider(e.getMessage()); } } diff --git a/src/main/java/seedu/duke/exception/NegativeQtyException.java b/src/main/java/seedu/duke/exception/NegativeQtyException.java new file mode 100644 index 0000000000..8f7046ac24 --- /dev/null +++ b/src/main/java/seedu/duke/exception/NegativeQtyException.java @@ -0,0 +1,7 @@ +package seedu.duke.exception; + +public class NegativeQtyException extends Exception { + public NegativeQtyException() { + super("You cannot buy/sell zero or negative quantity!"); + } +} diff --git a/src/main/java/seedu/duke/model/Portfolio.java b/src/main/java/seedu/duke/model/Portfolio.java index 224fdecc1a..bcf7a87901 100644 --- a/src/main/java/seedu/duke/model/Portfolio.java +++ b/src/main/java/seedu/duke/model/Portfolio.java @@ -3,6 +3,7 @@ import seedu.duke.exception.DoNotOwnStockException; import seedu.duke.exception.InsufficientFundException; import seedu.duke.exception.InsufficientQtyException; +import seedu.duke.exception.NegativeQtyException; import java.io.Serializable; import java.time.LocalDateTime; @@ -19,9 +20,14 @@ public Portfolio() { assert getWalletInitialAmount() <= 100000; } - public void buyStock(String symbol, int quantity, double buyPrice) throws InsufficientFundException { + public void buyStock(String symbol, int quantity, double buyPrice) + throws InsufficientFundException, NegativeQtyException { assert buyPrice > 0 : "buyPrice should be more than 0"; + if (quantity <= 0) { + throw new NegativeQtyException(); + } + if (wallet.getCurrentAmount() < buyPrice * quantity) { throw new InsufficientFundException(); } @@ -39,13 +45,17 @@ public void buyStock(String symbol, int quantity, double buyPrice) throws Insuff } public void sellStock(String symbol, int quantity, double sellPrice) - throws InsufficientQtyException, DoNotOwnStockException { + throws InsufficientQtyException, DoNotOwnStockException, NegativeQtyException { if (stocks.get(symbol) == null) { throw new DoNotOwnStockException(); } else if (stocks.get(symbol).getTotalQuantity() < quantity) { throw new InsufficientQtyException(stocks.get(symbol).getTotalQuantity()); } + if (quantity < 0) { + throw new NegativeQtyException(); + } + assert sellPrice > 0 : "sellPrice should be more than 0"; wallet.sellStock(quantity, sellPrice); diff --git a/src/main/java/seedu/duke/model/PortfolioManager.java b/src/main/java/seedu/duke/model/PortfolioManager.java index 47d6baa8cc..1676ed09f3 100644 --- a/src/main/java/seedu/duke/model/PortfolioManager.java +++ b/src/main/java/seedu/duke/model/PortfolioManager.java @@ -4,6 +4,7 @@ import seedu.duke.exception.DoNotOwnStockException; import seedu.duke.exception.InsufficientFundException; import seedu.duke.exception.InsufficientQtyException; +import seedu.duke.exception.NegativeQtyException; import java.io.FileInputStream; import java.io.FileNotFoundException; @@ -29,14 +30,15 @@ public PortfolioManager() { load(); } - public void buyStock(String symbol, int quantity, double buyPrice) throws InsufficientFundException { + public void buyStock(String symbol, int quantity, double buyPrice) + throws InsufficientFundException, NegativeQtyException { logger.log(Level.INFO, "buying stock ..."); portfolio.buyStock(symbol, quantity, buyPrice); save(); } public void sellStock(String symbol, int quantity, double sellPrice) - throws InsufficientQtyException, DoNotOwnStockException { + throws InsufficientQtyException, DoNotOwnStockException, NegativeQtyException { logger.log(Level.INFO, "selling stock ..."); portfolio.sellStock(symbol, quantity, sellPrice); save(); From c8a0ddeeb78bf8c841eef2413b0815f536825462 Mon Sep 17 00:00:00 2001 From: Alvin Tan De Jun <> Date: Tue, 3 Nov 2020 23:38:14 +0800 Subject: [PATCH 107/136] Fix checkstyle issues --- src/main/java/seedu/duke/controller/Controller.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/main/java/seedu/duke/controller/Controller.java b/src/main/java/seedu/duke/controller/Controller.java index ddacee3944..b303a5710e 100644 --- a/src/main/java/seedu/duke/controller/Controller.java +++ b/src/main/java/seedu/duke/controller/Controller.java @@ -13,7 +13,11 @@ import seedu.duke.command.ViewBookmarkedStocksCommand; import seedu.duke.command.ViewCommand; import seedu.duke.command.WalletCommand; -import seedu.duke.exception.*; +import seedu.duke.exception.DoNotOwnStockException; +import seedu.duke.exception.DukeException; +import seedu.duke.exception.InsufficientFundException; +import seedu.duke.exception.NegativeQtyException; +import seedu.duke.exception.InsufficientQtyException; import seedu.duke.model.BookmarksManager; import seedu.duke.model.PortfolioManager; import seedu.duke.model.Stock; From e593ab2f2a3e707b15e608b3bc62e2bc9a4d26fd Mon Sep 17 00:00:00 2001 From: Alvin Tan De Jun <> Date: Wed, 4 Nov 2020 00:00:54 +0800 Subject: [PATCH 108/136] Update DG --- docs/UML/Architecture.puml | 6 ++++-- docs/UML/Lifecycle.puml | 17 ++++++++++------- docs/UML/Packages.puml | 31 +++++++------------------------ docs/diagrams/Architecture.png | Bin 35380 -> 39823 bytes docs/diagrams/Lifecycle.png | Bin 89732 -> 89829 bytes docs/diagrams/Packages.png | Bin 285565 -> 187150 bytes 6 files changed, 21 insertions(+), 33 deletions(-) diff --git a/docs/UML/Architecture.puml b/docs/UML/Architecture.puml index 109196b3a0..5e841019e7 100644 --- a/docs/UML/Architecture.puml +++ b/docs/UML/Architecture.puml @@ -5,12 +5,14 @@ rectangle Ui rectangle PortfolioManager rectangle Parser rectangle StockPriceFetcher -rectangle Storage +rectangle Portfolio +rectangle Wallet PaperTrade --> Controller Controller --> Ui Controller --> PortfolioManager -PortfolioManager --> Storage +PortfolioManager --> Portfolio +PortfolioManager --> Wallet Controller --> Parser Controller --> StockPriceFetcher @enduml \ No newline at end of file diff --git a/docs/UML/Lifecycle.puml b/docs/UML/Lifecycle.puml index 761dc7018d..e9db6c6497 100644 --- a/docs/UML/Lifecycle.puml +++ b/docs/UML/Lifecycle.puml @@ -5,9 +5,8 @@ participant ":Controller" as Controller participant ":Ui" as Ui participant ":Parser" as Parser - -activate PaperTrade User -> PaperTrade : main() +activate PaperTrade create Controller PaperTrade -> Controller : new Controller() @@ -23,30 +22,34 @@ PaperTrade <-- Controller deactivate Controller PaperTrade -> Controller : runApp() -deactivate PaperTrade activate Controller -activate Ui Controller -> Ui : greetUser() +activate Ui Controller <-- Ui +deactivate Ui + loop until user quits Controller -> Ui : getUserInput() + activate Ui Controller <-- Ui : userInput + deactivate Ui - activate Parser Controller -> Parser : class method parseCommand(userInput) + activate Parser Controller <-- Parser : command deactivate Parser Controller -> Controller : executeCommand(command) activate Controller + Controller <-- Controller deactivate Controller end -deactivate Ui PaperTrade <-- Controller -User <-- PaperTrade : on exit deactivate Controller +User <-- PaperTrade : on exit +deactivate PaperTrade @enduml \ No newline at end of file diff --git a/docs/UML/Packages.puml b/docs/UML/Packages.puml index 5a48e3a4a6..c41227aa0c 100644 --- a/docs/UML/Packages.puml +++ b/docs/UML/Packages.puml @@ -4,14 +4,10 @@ left to right direction package controller { class Controller -Controller --> Api.StockPriceFetcher -Controller --> Model.PortfolioManager -Controller --> Parser.Parser -Controller --> Ui.Ui -} - -package api { -class StockPriceFetcher +Controller --> api.StockPriceFetcher +Controller --> model.PortfolioManager +Controller --> parser.Parser +Controller --> ui.Ui } package command { @@ -26,31 +22,18 @@ class WalletCommand extends Command } package model { -class Portfolio { -HashMap stocks -} -class portfolioManager +class Portfolio +class PortfolioManager class Stock class Transaction enum TransactionType class Wallet PortfolioManager --> Portfolio -PortfolioManager --> Storage.Storage Portfolio --> Stock +Portfolio --> Wallet Stock --> Transaction Transaction --> TransactionType } -package parser { -class Parser -} - -package storage { -class Storage -} - -package ui { -class Ui -} @enduml \ No newline at end of file diff --git a/docs/diagrams/Architecture.png b/docs/diagrams/Architecture.png index 289c23798a57386549cd31ee4366bdab1b35c538..d21b6f1078720ee3f823f0d94fe0fa51030a3740 100644 GIT binary patch delta 18605 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 delta 14102 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 +J6*c0N#`dZv7U+^Fu)wU078& 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 OCn6+qKl85Y%l{8i1U}OM literal 89732 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�pHB3N#0uO$@kTvJWh2q*F0-ffa7`fu%>C0QhZ6j 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

e#90IW)K7S>K|xBo9jL(v7(`~ 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


Is?~N8ydRVBm_iwsf=cbYu-Lxm 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–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 z zL`O$cDDo@I%548}JgY2v5oS#U>K!WO2=R}8%D z8=Fx>ZXkgn9)YK|5Q7MF7{OavmMWWq@eg;V=&NDUL@ZtMQdz!(y%< zL|K!ks9m05uCLUggxH0^G4%g;$~)(UX16)uj%CS8g>>IeyX74(k@j>bo=5r6{mMvz+}X+l*PbiS`vZ0);i zY0ny6$>&DLasW{Sp9VP1i7a{4$qxtKTjZ_G8`Anmf?>uMqKQR)%K`CVAL~%W}2u&(HOa zr6f3=Scn`!IpD%y5&$ii!TF+vi!M@v0}{|R5P9qv>|oF(>v{t(k(qfcKH=;MM($G7 z9RP|-iI2C%gRrvNGIwIUFNCnbQ->9xSrN*nseL^$J_H(#u+ghNK81yakLOGbXEK%x z$1>c@SOk%l_m3UN$4lQXKsyReb@hGKYvJw+2dol6MiL{!n=mZ)13xeieM`m`B7HK! z_{96%x+`l0`1ub%No;9pL4kvcU5I-9Obg%y@S@YB0oEgXXhlGMF2C5S8WDmJfEEAc zSLeLMFNAN) From 92b6d0ae12e4eb5dd214f02fca44d6697e078d6f Mon Sep 17 00:00:00 2001 From: Alvin Tan De Jun <> Date: Wed, 4 Nov 2020 00:14:16 +0800 Subject: [PATCH 109/136] Add Junit testing for selling negative quantity --- .../java/seedu/duke/model/PortfolioTest.java | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/src/test/java/seedu/duke/model/PortfolioTest.java b/src/test/java/seedu/duke/model/PortfolioTest.java index 46283cb785..a6f396c59d 100644 --- a/src/test/java/seedu/duke/model/PortfolioTest.java +++ b/src/test/java/seedu/duke/model/PortfolioTest.java @@ -4,6 +4,7 @@ import seedu.duke.api.StockPriceFetcher; import seedu.duke.exception.DukeException; import seedu.duke.exception.InsufficientQtyException; +import seedu.duke.exception.NegativeQtyException; import static org.junit.jupiter.api.Assertions.assertThrows; @@ -46,4 +47,19 @@ void sellStock_higherQuantityThanBought_expectException() { portfolio.sellStock(symbol, sellQuantity, stockPriceFetcher.fetchLatestPrice(symbol)); }); } + + @Test + void sellNegativeQuantity() { + Portfolio portfolio = new Portfolio(); + StockPriceFetcher stockPriceFetcher = new StockPriceFetcher(); + String symbol = "aapl"; + + // Use a lambda + assertThrows(NegativeQtyException.class, () -> { + // buy 1 aapl stock + portfolio.buyStock(symbol, 1, stockPriceFetcher.fetchLatestPrice(symbol)); + // attempt to sell -10 aapl stock + portfolio.sellStock(symbol, -10, stockPriceFetcher.fetchLatestPrice(symbol)); + }); + } } From 9fd87b70795ed709960ac31b290e29d2aa054c68 Mon Sep 17 00:00:00 2001 From: Alvin Tan De Jun <> Date: Sat, 7 Nov 2020 12:29:19 +0800 Subject: [PATCH 110/136] update ppp --- docs/DeveloperGuide.md | 2 +- docs/team/alvin.md | 62 ++++++++++++++++++++++++++++++++++++++++-- 2 files changed, 61 insertions(+), 3 deletions(-) diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index 79ceb6cd05..b2e2b62695 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -20,7 +20,7 @@ The Package Diagram above gives a high level view of the project structure and t ![](./diagrams/Architecture.png) -The Architecture Diagram above gives a high level design of PaperTrade. Below is a quick overview of each component. +The High Level Class Diagram above gives a high level design of PaperTrade. Below is a quick overview of each component. ### Overview diff --git a/docs/team/alvin.md b/docs/team/alvin.md index 812f96fcc5..6c6087cf94 100644 --- a/docs/team/alvin.md +++ b/docs/team/alvin.md @@ -1,6 +1,64 @@ # Alvin - Project Portfolio Page -## Overview - +## Overview: PaperTrade +PaperTrade is a command line paper trading application that allows users to +simulate the buying and selling of stocks. A paper trade is a simulated trade +that allows an investor to practice buying and selling stocks without risking +real money. ### Summary of Contributions +* **New Feature**: Added a class to call the **Alphavantage API** + * What it does: To fetch the latest prices of a particular stock given its ticker symbol. + + * Justification: This feature is important throughout the application as we need to obtain + the latest price of a stock whenever we are buying/selling a stock. Also, when we try to + view our portfolio, we need the latest price to calculate the unrealised profits etc. + + * Highlights: I used an external library ([alphavantage4j](https://github.com/patriques82/alphavantage4j)) + which is actually a Java wrapper to help simply the process of fetching the prices. I wrote a + `StockPriceFetcher` class that uses this wrapper to obtain the latest prices. + +* **New Feature**: Added **Search** function + * What it does: Return the stock information for the particular stock, given its ticker symbol. + It includes the opening price, high price, low price, closing price, etc. + + * Justification: This feature is to allow users to keep track of the latest price of a particular + stock before deciding to buy or sell. + + * Highlights: As this was one of the first feature to be implemented, I tried to lay down the + project architecture and packages, so that my other group members can easily understand contribute + their code and minimize any merge conflicts. The project is largely split into the model, controller, + api and ui, where each package would contain respective classes that each have their own responsiblities. + +* **New Feature**: Added **Buy** function + * What it does: Buy a particular stock given its ticker symbol. + + * Justification: This is one of the main feature of our program, to allow users to simulate the buying + of a stock. + + * Highlights: To implement this, I created the model classes, e.g. `Stock`, `Portfolio` and `PortfolioManager` + to abstract the features of a stock and portfolio. The `Portfolio` would hold a list of `Stock` while the + `PortfolioManager` is in charge of managing the `Portfolio`. + +* **New Feature**: Added **data persistency** + * What it does: Data persistency for all the stocks that you have purchased, so that you don't lose them + when you quit the program. + + * Justification: This is an important feature so that users can track their portfolio over time. + + * Highlights: Used `Serializable` to store the `Portfolio` object into a binary file. Loads the `Portfolio` + object from the binary file the next time the program starts again so that users don't lose their information from the + previous session. + +Code contributed: [RepoSense Link](https://nus-cs2113-ay2021s1.github.io/tp-dashboard/#breakdown=true&search=&sort=groupTitle&sortWithin=title&since=2020-09-27&timeframe=commit&mergegroup=&groupSelect=groupByRepos&checkedFileTypes=docs~functional-code~test-code~other&tabOpen=true&tabType=authorship&zFR=false&tabAuthor=trolommonm&tabRepo=AY2021S1-CS2113-T16-3%2Ftp%5Bmaster%5D&authorshipIsMergeGroup=false&authorshipFileTypes=docs~functional-code~test-code~other) + +### Documentation +* **User Guide**: + * Update the User Guide to include exmaples of the input and output from the program. [#54](https://github.com/AY2021S1-CS2113-T16-3/tp/pull/54/commits/648043fd7c90f16c964d1d773efdd4b56e6d1939) + +* **Developer Guide**: + * Added the Package Diagram as well as the High Level Class Diagram to give the overall view of the project structure. + Also explained how to set up the project in IntelliJ, gave an overview of the responsibilities of each of the classes + and packages and a sequence diagram of the lifecycle of the program. [#35](https://github.com/AY2021S1-CS2113-T16-3/tp/pull/35) + [#94](https://github.com/AY2021S1-CS2113-T16-3/tp/pull/94) + \ No newline at end of file From a5c63965a8d6cb74ed8b794850e8760ecede6282 Mon Sep 17 00:00:00 2001 From: yokemin Date: Sat, 7 Nov 2020 13:50:03 +0800 Subject: [PATCH 111/136] Edit User Guide --- docs/UserGuide.md | 62 +++++++++++++++++++++++++++++++++++++++-------- 1 file changed, 52 insertions(+), 10 deletions(-) diff --git a/docs/UserGuide.md b/docs/UserGuide.md index 02c03a6f31..d5c4b59a69 100644 --- a/docs/UserGuide.md +++ b/docs/UserGuide.md @@ -6,10 +6,8 @@ PaperTrade is a command line trading simulator that lets you try your hand at tr ## Quick Start -{Give steps to get started quickly} - 1. Ensure that you have Java 11 or above installed. -2. Down the latest version of `PaperTrade` from [here](https://github.com/AY2021S1-CS2113-T16-3/tp/releases/tag/v1.0). +2. Down the latest version of `PaperTrade` from [here](https://github.com/AY2021S1-CS2113-T16-3/tp/releases/tag/v2.1). ## Features @@ -133,19 +131,55 @@ Allows you to bookmark stocks for easy access of stocks that you are actively wa Format: `mark /STOCK_TICKER` -Example of usage: mark /tsla +Example of usage: +``` +What would you like to do today? +mark /msft +____________________________________________________________ +You have added MSFT to bookmarks. +____________________________________________________________ +``` #### Unmarking Stocks: Format: `unmark /STOCK_TICKER` -Example of usage: unmark /tsla +Example of usage: +``` +What would you like to do today? +unmark /aapl +____________________________________________________________ +You have removed AAPL from bookmarks. +____________________________________________________________ +``` #### Viewing info of all bookmarked stocks: Format: `bookmarks` -Example of usage: bookmarks +Example of usage: +``` +What would you like to do today? +bookmarks +____________________________________________________________ +Here is the latest information on AAPL: +date: 2020-11-06T20:00 +open: 118.53 +high: 118.54 +low: 118.52 +close: 118.52 +volume: 5859 +____________________________________________________________ +____________________________________________________________ +Here is the latest information on MSFT: +date: 2020-11-06T20:00 +open: 223.4 +high: 223.4 +low: 223.4 +close: 223.4 +volume: 190 +____________________________________________________________ +``` ### Exit: `bye` Exits the program. Duke will save your info for the next time you come back! @@ -153,22 +187,30 @@ Exits the program. Duke will save your info for the next time you come back! Format: `bye` Example of usage: +``` +What would you like to do today? +bye +____________________________________________________________ +Goodbye! Hope to see you again. +____________________________________________________________ +``` -`bye` ## FAQ **Q**: How do I transfer my data to another computer? -**A**: Just copy the txt file over. +**A**: Just copy over any .ser files into the data folder. -## Command Summary -{Give a 'cheat sheet' of commands here} +## Command Summary * Buy a stock `buy /aapl quantity` * Sell a stock `sell /aapl quantity` * Search for a stock's info `search /aapl` * View portfolio `view` * Check your wallet `wallet` +* Bookmark a stock `mark /aapl` +* Remove a stock from bookmarks `unmark /aapl` +* View bookmarked stocks `bookmarks` * Exit program `bye` From 7567efdcfda0ce517171110736313857a5473e45 Mon Sep 17 00:00:00 2001 From: yokemin Date: Sat, 7 Nov 2020 13:50:25 +0800 Subject: [PATCH 112/136] Fix bugs related to bookmarks function --- .../java/seedu/duke/controller/Controller.java | 3 +++ src/main/java/seedu/duke/parser/Parser.java | 17 ++++++++++++++--- 2 files changed, 17 insertions(+), 3 deletions(-) diff --git a/src/main/java/seedu/duke/controller/Controller.java b/src/main/java/seedu/duke/controller/Controller.java index b303a5710e..7d2aa2ecb4 100644 --- a/src/main/java/seedu/duke/controller/Controller.java +++ b/src/main/java/seedu/duke/controller/Controller.java @@ -135,6 +135,9 @@ private boolean executeCommand(Command command) { } private void viewBookmarkedStocks() { + if (bookmarksManager.getBookmarks().getBookmarkedStocks().size() == 0) { + ui.printWithDivider("Currently no stocks bookmarked! Try bookmarking stock using mark /TICKER"); + } for (String symbol : bookmarksManager.getBookmarks().getBookmarkedStocks()) { searchSymbol(symbol); } diff --git a/src/main/java/seedu/duke/parser/Parser.java b/src/main/java/seedu/duke/parser/Parser.java index d154ea77f0..8e5e0fd274 100644 --- a/src/main/java/seedu/duke/parser/Parser.java +++ b/src/main/java/seedu/duke/parser/Parser.java @@ -64,19 +64,30 @@ public static Command parseCommand(String userInput) { return new InvalidCommand(e.getMessage()); } case "bookmarks": - return new ViewBookmarkedStocksCommand(); + try { + return parseBookmarks(userInputSplit); + } catch (DukeException e) { + return new InvalidCommand(e.getMessage()); + } default: logger.log(Level.WARNING, "processing error when parsing command"); return new InvalidCommand("Invalid command! Please try again."); } } + public static Command parseBookmarks(String[] userInputSplit) throws DukeException { + if (userInputSplit.length > 1) { + throw new DukeException("There should not be an argument behind bookmarks!"); + } + return new ViewBookmarkedStocksCommand(); + } + public static Command parseMark(String[] userInputSplit) throws DukeException { try { if (!userInputSplit[1].startsWith("/")) { throw new DukeException("Please enter the ticker symbol of the company that you want to mark!"); } - String symbol = userInputSplit[1].substring(1); + String symbol = userInputSplit[1].substring(1).toUpperCase(); return new AddBookmarkCommand(symbol); } catch (IndexOutOfBoundsException e) { throw new DukeException(("Wrong input format! E.g. mark /MSFT")); @@ -88,7 +99,7 @@ public static Command parseUnmark(String[] userInputSplit) throws DukeException if (!userInputSplit[1].startsWith("/")) { throw new DukeException("Please enter the ticker symbol of the company that you want to unmark!"); } - String symbol = userInputSplit[1].substring(1); + String symbol = userInputSplit[1].substring(1).toUpperCase(); return new RemoveBookmarkCommand(symbol); } catch (IndexOutOfBoundsException e) { throw new DukeException(("Wrong input format! E.g. unmark /MSFT")); From 3d107207e2eb775f437ef548e4ceb154795c2b2c Mon Sep 17 00:00:00 2001 From: yokemin Date: Sat, 7 Nov 2020 14:23:27 +0800 Subject: [PATCH 113/136] Update PPP --- docs/DeveloperGuide.md | 1 - docs/team/alvin.md | 2 +- docs/team/yokemin.md | 54 ++++++++++++++++++++++++++++++++++++++++-- 3 files changed, 53 insertions(+), 4 deletions(-) diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index b2e2b62695..d520502279 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -207,7 +207,6 @@ Paper trading allows inexperienced people to get a feel of what trading feels li ## Non-Functional Requirements -{Give non-functional requirements} 1. Program should not take more than 5s to run for every command. 2. Program should give some loading indicator when fetching stock prices from API calls. diff --git a/docs/team/alvin.md b/docs/team/alvin.md index 6c6087cf94..3e6ca9a4bf 100644 --- a/docs/team/alvin.md +++ b/docs/team/alvin.md @@ -54,7 +54,7 @@ Code contributed: [RepoSense Link](https://nus-cs2113-ay2021s1.github.io/tp-dash ### Documentation * **User Guide**: - * Update the User Guide to include exmaples of the input and output from the program. [#54](https://github.com/AY2021S1-CS2113-T16-3/tp/pull/54/commits/648043fd7c90f16c964d1d773efdd4b56e6d1939) + * Update the User Guide to include examples of the input and output from the program. [#54](https://github.com/AY2021S1-CS2113-T16-3/tp/pull/54/commits/648043fd7c90f16c964d1d773efdd4b56e6d1939) * **Developer Guide**: * Added the Package Diagram as well as the High Level Class Diagram to give the overall view of the project structure. diff --git a/docs/team/yokemin.md b/docs/team/yokemin.md index 07ba0c24d5..c90c728bcf 100644 --- a/docs/team/yokemin.md +++ b/docs/team/yokemin.md @@ -1,6 +1,56 @@ # Yoke Min - Project Portfolio Page -## Overview - +## Overview: PaperTrade +PaperTrade is a command line paper trading application that allows users to +simulate the buying and selling of stocks. A paper trade is a simulated trade +that allows an investor to practice buying and selling stocks without risking +real money. ### Summary of Contributions +* **New Feature**: Added **Sell** function + * What it does: To allow users to sell a particular stock that they currently own + + * Justification: This is one of the main feature of our program, to allow users to simulate the selling + of a stock. + + * Highlights: To implement this, I created the sellStocks methods in various classes (`Stock`, `Transaction`, + `Portfolio`, `PortfolioManager`, `Controller` and the methods to parse user inputs in the `Parser` class. + +* **New Feature**: Added **mark, unmark and bookmarks** function + * What it does: `mark` allows the user to add a stock to their bookmarks; + `unmark` allows the user to remove a stock from their bookmarks; + `bookmarks` allows the user to view the details of the stocks in their bookmarks. + + * Justification: This feature is to allow users to easily view the details of stocks that they + are interested in or want to frequently keep track of. + + * Highlights: To implement these three functions, I added the `Bookmarks` and `BookmarksManager` classes. + I also implemented command classes which helps to execute the command. The `Bookmarks` would hold an arraylist + of `Strings` which contains the ticker symbol of the bookmarked stocks. + The `BookmarkManager` is in charge of managing the `Bookmarks`. + +* **New Feature**: Added **Api** class (Not used in the end product) + * What it does: Allows us to retrieve the relevant information of the stocks + + * Justification: We needed to get real time information about the stock prices and stock details. + + * Highlights: To implement this, I used the [API documentation](https://www.alphavantage.co/documentation/) + to write the code to retrieve the JSON files that contained the information of the stocks. However, as we only needed + retrieve one type of stock data, Stock time series Intraday, we used an external library to retrieve stock + information instead. + +Code contributed: [RepoSense Link](https://nus-cs2113-ay2021s1.github.io/tp-dashboard/#breakdown=true&search=&sort=groupTitle&sortWithin=title&since=2020-09-27&timeframe=commit&mergegroup=&groupSelect=groupByRepos&checkedFileTypes=docs~functional-code~test-code~other&tabOpen=true&tabType=authorship&zFR=false&tabAuthor=yokemin&tabRepo=AY2021S1-CS2113-T16-3%2Ftp%5Bmaster%5D&authorshipIsMergeGroup=false&authorshipFileTypes=docs~functional-code~test-code~other) + +### Documentation +* **User Guide**: + * Edit the User Guide for bookmarks, mark and unmark function. [#97](https://github.com/AY2021S1-CS2113-T16-3/tp/pull/97) + * Update the User Guide to correct the input formats. [#52](https://github.com/AY2021S1-CS2113-T16-3/tp/pull/52) + + +* **Developer Guide**: + * Added Object State Diagrams to give the overall view of buy/sell stock function. + Also explained the step by step changes made to the respective classes as the buyStock method is called + in each class. Added the Sequence Diagram for the flow of the sell stock function. + [#44](https://github.com/AY2021S1-CS2113-T16-3/tp/pull/44) + [#50](https://github.com/AY2021S1-CS2113-T16-3/tp/pull/50) + \ No newline at end of file From d164446bd98cf4076e3070374d2e1c77f71f14d6 Mon Sep 17 00:00:00 2001 From: yokemin Date: Sat, 7 Nov 2020 14:32:33 +0800 Subject: [PATCH 114/136] Edit sequence diagram --- docs/UML/BuyStockSequence.puml | 3 +++ docs/diagrams/BuyStockSequence.png | Bin 49168 -> 50046 bytes 2 files changed, 3 insertions(+) diff --git a/docs/UML/BuyStockSequence.puml b/docs/UML/BuyStockSequence.puml index 75073b04fb..68e4ac5952 100644 --- a/docs/UML/BuyStockSequence.puml +++ b/docs/UML/BuyStockSequence.puml @@ -62,6 +62,9 @@ Portfolio --> PortfolioManager : deactivate Portfolio PortfolioManager -> PortfolioManager : save() +activate PortfolioManager +PortfolioManager --> PortfolioManager : +deactivate PortfolioManager PortfolioManager --> Controller : deactivate PortfolioManager diff --git a/docs/diagrams/BuyStockSequence.png b/docs/diagrams/BuyStockSequence.png index 8e67044c9fad7b117d4ffe0191cf9b689d64d7b1..50b08500242c109ea9bea9418a11ba7c3ab2d016 100644 GIT binary patch delta 27060 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 delta 26179 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 Q!7-?@fth}}-fyx01rI7@k^lez From 61f572f756528894eef09e1eb3e3ee15eddf94b0 Mon Sep 17 00:00:00 2001 From: yokemin Date: Sat, 7 Nov 2020 14:42:57 +0800 Subject: [PATCH 115/136] Add 10 more API keys to fix bugs --- src/main/java/seedu/duke/api/StockPriceFetcher.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/main/java/seedu/duke/api/StockPriceFetcher.java b/src/main/java/seedu/duke/api/StockPriceFetcher.java index b77e5421ba..f67bcbef70 100644 --- a/src/main/java/seedu/duke/api/StockPriceFetcher.java +++ b/src/main/java/seedu/duke/api/StockPriceFetcher.java @@ -16,7 +16,9 @@ public class StockPriceFetcher { private static Logger logger = Logger.getLogger("tp"); - private String[] apiKeys = {"O8EVQ7YSWDW08BN9", "3FPNCQ0JNYEE8BTK"}; + private String[] apiKeys = {"O8EVQ7YSWDW08BN9", "3FPNCQ0JNYEE8BTK", "072ESZXDIDEATZA2", "Q3JB9M20HYCUXBFR", + "K0O2GKDS6Q14H72Q", "9N7N2SEJ1XB2MYXH", "MPGB17OYPB9T9UV4", "V1E553AD7IPL60L7", + "XLCF6EOMHCE76FMG", "SXRMWI9LMKTUGMYR", "UDK2VLO64K1Z8UA2", "8X57YW7EXHPZ66J1"}; private int timeout = 3000; public StockPriceFetcher() { From 9ec3f8649fc90540477451c6f81f93fca4e84cf7 Mon Sep 17 00:00:00 2001 From: yokemin Date: Sat, 7 Nov 2020 15:54:44 +0800 Subject: [PATCH 116/136] Limit bookmarks to a maximum of 5 --- docs/UserGuide.md | 1 + src/main/java/seedu/duke/controller/Controller.java | 2 +- src/main/java/seedu/duke/model/Bookmarks.java | 3 +++ 3 files changed, 5 insertions(+), 1 deletion(-) diff --git a/docs/UserGuide.md b/docs/UserGuide.md index d5c4b59a69..df0f36b674 100644 --- a/docs/UserGuide.md +++ b/docs/UserGuide.md @@ -126,6 +126,7 @@ ____________________________________________________________ ### Bookmark stocks to keep on watchlist: `mark /STOCK_TICKER`, `unmark /STOCK_TICKER`, `bookmarks` Allows you to bookmark stocks for easy access of stocks that you are actively watching * The `STOCK_TICKER` is the stock's short form +* There is a limit of up to __5__ stocks that can be added to bookmarks. #### Marking Stocks: diff --git a/src/main/java/seedu/duke/controller/Controller.java b/src/main/java/seedu/duke/controller/Controller.java index 7d2aa2ecb4..868b56eb23 100644 --- a/src/main/java/seedu/duke/controller/Controller.java +++ b/src/main/java/seedu/duke/controller/Controller.java @@ -81,7 +81,7 @@ public void addBookmark(String symbol) { try { stockPriceFetcher.fetchLatestPrice(symbol); } catch (DukeException e) { - ui.printWithDivider("Invalid stock!"); + ui.printWithDivider("Error validating stock, might be an invalid stock!"); return; } try { diff --git a/src/main/java/seedu/duke/model/Bookmarks.java b/src/main/java/seedu/duke/model/Bookmarks.java index 6feaef9daf..fba1bc83dc 100644 --- a/src/main/java/seedu/duke/model/Bookmarks.java +++ b/src/main/java/seedu/duke/model/Bookmarks.java @@ -22,6 +22,9 @@ public ArrayList getBookmarkedStocks() { } public void addToBookmarks(String symbol) throws DukeException { + if (bookmarkedStocks.size() == 5) { + throw new DukeException("Maximum of 5 bookmarked stocks reached!"); + } if (bookmarkedStocks.contains(symbol)) { throw new DukeException("Already bookmarked this stock!"); } From 9287fada9e117b41ec94312888e9011533c9e2dd Mon Sep 17 00:00:00 2001 From: yokemin Date: Sat, 7 Nov 2020 16:04:26 +0800 Subject: [PATCH 117/136] Change exception message for fetching latest stock data --- src/main/java/seedu/duke/api/StockPriceFetcher.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/seedu/duke/api/StockPriceFetcher.java b/src/main/java/seedu/duke/api/StockPriceFetcher.java index f67bcbef70..6007decf03 100644 --- a/src/main/java/seedu/duke/api/StockPriceFetcher.java +++ b/src/main/java/seedu/duke/api/StockPriceFetcher.java @@ -45,7 +45,7 @@ public StockData fetchLatestStockData(String symbol) throws DukeException { return stockData.get(0); } catch (AlphaVantageException e) { logger.log(Level.INFO, "failed to fetch price from API"); - throw new DukeException("Failed to retrieve price! Please try again."); + throw new DukeException("API limit has reached. Take a chill pill and test again a moment later :)"); } } From b152ec05a9061e67c7acfd79acfc29e9a274e854 Mon Sep 17 00:00:00 2001 From: yokemin Date: Sat, 7 Nov 2020 16:40:27 +0800 Subject: [PATCH 118/136] Refactor code and changed exception name --- .../seedu/duke/api/StockPriceFetcher.java | 12 ++--- .../seedu/duke/controller/Controller.java | 18 +++---- .../seedu/duke/exception/DukeException.java | 9 ---- .../duke/exception/PaperTradeException.java | 9 ++++ src/main/java/seedu/duke/model/Bookmarks.java | 12 ++--- .../seedu/duke/model/BookmarksManager.java | 6 +-- .../seedu/duke/model/PortfolioManager.java | 2 +- src/main/java/seedu/duke/model/Stock.java | 4 +- src/main/java/seedu/duke/parser/Parser.java | 52 +++++++++---------- .../java/seedu/duke/model/BookmarksTest.java | 6 +-- .../seedu/duke/model/InvalidCommandTest.java | 1 - .../java/seedu/duke/model/PortfolioTest.java | 6 +-- 12 files changed, 68 insertions(+), 69 deletions(-) delete mode 100644 src/main/java/seedu/duke/exception/DukeException.java create mode 100644 src/main/java/seedu/duke/exception/PaperTradeException.java diff --git a/src/main/java/seedu/duke/api/StockPriceFetcher.java b/src/main/java/seedu/duke/api/StockPriceFetcher.java index 6007decf03..a77f0c9454 100644 --- a/src/main/java/seedu/duke/api/StockPriceFetcher.java +++ b/src/main/java/seedu/duke/api/StockPriceFetcher.java @@ -7,7 +7,7 @@ import org.patriques.output.AlphaVantageException; import org.patriques.output.timeseries.IntraDay; import org.patriques.output.timeseries.data.StockData; -import seedu.duke.exception.DukeException; +import seedu.duke.exception.PaperTradeException; import java.util.List; import java.util.Random; @@ -17,22 +17,22 @@ public class StockPriceFetcher { private static Logger logger = Logger.getLogger("tp"); private String[] apiKeys = {"O8EVQ7YSWDW08BN9", "3FPNCQ0JNYEE8BTK", "072ESZXDIDEATZA2", "Q3JB9M20HYCUXBFR", - "K0O2GKDS6Q14H72Q", "9N7N2SEJ1XB2MYXH", "MPGB17OYPB9T9UV4", "V1E553AD7IPL60L7", - "XLCF6EOMHCE76FMG", "SXRMWI9LMKTUGMYR", "UDK2VLO64K1Z8UA2", "8X57YW7EXHPZ66J1"}; + "K0O2GKDS6Q14H72Q", "9N7N2SEJ1XB2MYXH", "MPGB17OYPB9T9UV4", "V1E553AD7IPL60L7", + "XLCF6EOMHCE76FMG", "SXRMWI9LMKTUGMYR", "UDK2VLO64K1Z8UA2", "8X57YW7EXHPZ66J1"}; private int timeout = 3000; public StockPriceFetcher() { timeout = 3000; } - public double fetchLatestPrice(String symbol) throws DukeException { + public double fetchLatestPrice(String symbol) throws PaperTradeException { logger.log(Level.INFO, "fetching latest stock data for " + symbol); StockData stockData = fetchLatestStockData(symbol); return (stockData.getHigh() + stockData.getLow()) / 2; } - public StockData fetchLatestStockData(String symbol) throws DukeException { + public StockData fetchLatestStockData(String symbol) throws PaperTradeException { Random random = new Random(); String randomApiKey = apiKeys[random.nextInt(apiKeys.length)]; AlphaVantageConnector apiConnector = new AlphaVantageConnector(randomApiKey, timeout); @@ -45,7 +45,7 @@ public StockData fetchLatestStockData(String symbol) throws DukeException { return stockData.get(0); } catch (AlphaVantageException e) { logger.log(Level.INFO, "failed to fetch price from API"); - throw new DukeException("API limit has reached. Take a chill pill and test again a moment later :)"); + throw new PaperTradeException("API limit has reached. Take a chill pill and test again a moment later :)"); } } diff --git a/src/main/java/seedu/duke/controller/Controller.java b/src/main/java/seedu/duke/controller/Controller.java index 868b56eb23..6075edea9a 100644 --- a/src/main/java/seedu/duke/controller/Controller.java +++ b/src/main/java/seedu/duke/controller/Controller.java @@ -14,10 +14,10 @@ import seedu.duke.command.ViewCommand; import seedu.duke.command.WalletCommand; import seedu.duke.exception.DoNotOwnStockException; -import seedu.duke.exception.DukeException; import seedu.duke.exception.InsufficientFundException; -import seedu.duke.exception.NegativeQtyException; import seedu.duke.exception.InsufficientQtyException; +import seedu.duke.exception.NegativeQtyException; +import seedu.duke.exception.PaperTradeException; import seedu.duke.model.BookmarksManager; import seedu.duke.model.PortfolioManager; import seedu.duke.model.Stock; @@ -46,7 +46,7 @@ private void buyStock(String symbol, int quantity) { + quantity + " of " + symbol + " at " + price + "."); ui.printWithDivider("You currently have $" + String.format("%.02f", portfolioManager.getWalletCurrentAmount()) + " in your wallet."); - } catch (DukeException | InsufficientFundException | NegativeQtyException e) { + } catch (PaperTradeException | InsufficientFundException | NegativeQtyException e) { ui.printWithDivider(e.getMessage()); } } @@ -60,7 +60,7 @@ private void sellStock(String symbol, int quantity) { + quantity + " of " + symbol + " at " + price + "."); ui.printWithDivider("You currently have $" + String.format("%.02f", portfolioManager.getWalletCurrentAmount()) + " in your wallet."); - } catch (DoNotOwnStockException | InsufficientQtyException | DukeException | NegativeQtyException e) { + } catch (DoNotOwnStockException | InsufficientQtyException | PaperTradeException | NegativeQtyException e) { ui.printWithDivider(e.getMessage()); } } @@ -80,14 +80,14 @@ public void runApp() { public void addBookmark(String symbol) { try { stockPriceFetcher.fetchLatestPrice(symbol); - } catch (DukeException e) { + } catch (PaperTradeException e) { ui.printWithDivider("Error validating stock, might be an invalid stock!"); return; } try { bookmarksManager.addToBookmarks(symbol); ui.printWithDivider("You have added " + symbol + " to bookmarks."); - } catch (DukeException e) { + } catch (PaperTradeException e) { ui.printWithDivider(e.getMessage()); } } @@ -96,7 +96,7 @@ public void removeBookmark(String symbol) { try { bookmarksManager.removeBookmark(symbol); ui.printWithDivider("You have removed " + symbol + " from bookmarks."); - } catch (DukeException e) { + } catch (PaperTradeException e) { ui.printWithDivider(e.getMessage()); } } @@ -152,7 +152,7 @@ public void viewWallet() { for (Stock stock : portfolioManager.getAllStocks()) { try { amount += (stockPriceFetcher.fetchLatestPrice(stock.getSymbol())) * stock.getTotalQuantity(); - } catch (DukeException e) { + } catch (PaperTradeException e) { ui.printWithDivider(e.getMessage()); } } @@ -172,7 +172,7 @@ public void searchSymbol(String symbol) { "close: " + stockData.getClose(), "volume: " + stockData.getVolume() ); - } catch (DukeException e) { + } catch (PaperTradeException e) { ui.printWithDivider(e.getMessage()); } } diff --git a/src/main/java/seedu/duke/exception/DukeException.java b/src/main/java/seedu/duke/exception/DukeException.java deleted file mode 100644 index 6ca6188864..0000000000 --- a/src/main/java/seedu/duke/exception/DukeException.java +++ /dev/null @@ -1,9 +0,0 @@ -package seedu.duke.exception; - -public class DukeException extends Exception { - - public DukeException(String errorMessage) { - super(errorMessage); - } - -} diff --git a/src/main/java/seedu/duke/exception/PaperTradeException.java b/src/main/java/seedu/duke/exception/PaperTradeException.java new file mode 100644 index 0000000000..10cb641d9c --- /dev/null +++ b/src/main/java/seedu/duke/exception/PaperTradeException.java @@ -0,0 +1,9 @@ +package seedu.duke.exception; + +public class PaperTradeException extends Exception { + + public PaperTradeException(String errorMessage) { + super(errorMessage); + } + +} diff --git a/src/main/java/seedu/duke/model/Bookmarks.java b/src/main/java/seedu/duke/model/Bookmarks.java index fba1bc83dc..109e9904e7 100644 --- a/src/main/java/seedu/duke/model/Bookmarks.java +++ b/src/main/java/seedu/duke/model/Bookmarks.java @@ -1,6 +1,6 @@ package seedu.duke.model; -import seedu.duke.exception.DukeException; +import seedu.duke.exception.PaperTradeException; import java.io.Serializable; import java.util.ArrayList; @@ -21,19 +21,19 @@ public ArrayList getBookmarkedStocks() { return bookmarkedStocks; } - public void addToBookmarks(String symbol) throws DukeException { + public void addToBookmarks(String symbol) throws PaperTradeException { if (bookmarkedStocks.size() == 5) { - throw new DukeException("Maximum of 5 bookmarked stocks reached!"); + throw new PaperTradeException("Maximum of 5 bookmarked stocks reached!"); } if (bookmarkedStocks.contains(symbol)) { - throw new DukeException("Already bookmarked this stock!"); + throw new PaperTradeException("Already bookmarked this stock!"); } bookmarkedStocks.add(symbol); } - public void removeBookmark(String symbol) throws DukeException { + public void removeBookmark(String symbol) throws PaperTradeException { if (!bookmarkedStocks.contains(symbol)) { - throw new DukeException("This stock is not bookmarked!"); + throw new PaperTradeException("This stock is not bookmarked!"); } bookmarkedStocks.remove(symbol); } diff --git a/src/main/java/seedu/duke/model/BookmarksManager.java b/src/main/java/seedu/duke/model/BookmarksManager.java index 6a5044a59f..71abc42fdc 100644 --- a/src/main/java/seedu/duke/model/BookmarksManager.java +++ b/src/main/java/seedu/duke/model/BookmarksManager.java @@ -1,6 +1,6 @@ package seedu.duke.model; -import seedu.duke.exception.DukeException; +import seedu.duke.exception.PaperTradeException; import java.io.FileInputStream; import java.io.FileNotFoundException; @@ -22,12 +22,12 @@ public Bookmarks getBookmarks() { return bookmarks; } - public void addToBookmarks(String symbol) throws DukeException { + public void addToBookmarks(String symbol) throws PaperTradeException { bookmarks.addToBookmarks(symbol); save(); } - public void removeBookmark(String symbol) throws DukeException { + public void removeBookmark(String symbol) throws PaperTradeException { bookmarks.removeBookmark(symbol); save(); } diff --git a/src/main/java/seedu/duke/model/PortfolioManager.java b/src/main/java/seedu/duke/model/PortfolioManager.java index 1676ed09f3..94c5de462e 100644 --- a/src/main/java/seedu/duke/model/PortfolioManager.java +++ b/src/main/java/seedu/duke/model/PortfolioManager.java @@ -6,6 +6,7 @@ import seedu.duke.exception.InsufficientQtyException; import seedu.duke.exception.NegativeQtyException; +import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; @@ -13,7 +14,6 @@ import java.io.InvalidClassException; import java.io.ObjectInputStream; import java.io.ObjectOutputStream; -import java.io.File; import java.util.ArrayList; import java.util.logging.Level; import java.util.logging.Logger; diff --git a/src/main/java/seedu/duke/model/Stock.java b/src/main/java/seedu/duke/model/Stock.java index 9cd85d3ae0..efbff07444 100644 --- a/src/main/java/seedu/duke/model/Stock.java +++ b/src/main/java/seedu/duke/model/Stock.java @@ -1,7 +1,7 @@ package seedu.duke.model; import seedu.duke.api.StockPriceFetcher; -import seedu.duke.exception.DukeException; +import seedu.duke.exception.PaperTradeException; import seedu.duke.ui.Ui; import java.io.Serializable; @@ -52,7 +52,7 @@ public double getLatestPrice() { try { double price = stockPriceFetcher.fetchLatestPrice(getSymbol()); return price; - } catch (DukeException e) { + } catch (PaperTradeException e) { ui.print(e.getMessage()); return 0; } diff --git a/src/main/java/seedu/duke/parser/Parser.java b/src/main/java/seedu/duke/parser/Parser.java index 8e5e0fd274..222003416c 100644 --- a/src/main/java/seedu/duke/parser/Parser.java +++ b/src/main/java/seedu/duke/parser/Parser.java @@ -11,7 +11,7 @@ import seedu.duke.command.ViewBookmarkedStocksCommand; import seedu.duke.command.ViewCommand; import seedu.duke.command.WalletCommand; -import seedu.duke.exception.DukeException; +import seedu.duke.exception.PaperTradeException; import java.util.logging.Level; import java.util.logging.Logger; @@ -30,19 +30,19 @@ public static Command parseCommand(String userInput) { case "search": try { return parseSearch(userInputSplit); - } catch (DukeException e) { + } catch (PaperTradeException e) { return new InvalidCommand(e.getMessage()); } case "buy": try { return parseBuy(userInputSplit); - } catch (DukeException e) { + } catch (PaperTradeException e) { return new InvalidCommand(e.getMessage()); } case "sell": try { return parseSell(userInputSplit); - } catch (DukeException e) { + } catch (PaperTradeException e) { return new InvalidCommand(e.getMessage()); } case "bye": @@ -54,19 +54,19 @@ public static Command parseCommand(String userInput) { case "mark": try { return parseMark(userInputSplit); - } catch (DukeException e) { + } catch (PaperTradeException e) { return new InvalidCommand(e.getMessage()); } case "unmark": try { return parseUnmark(userInputSplit); - } catch (DukeException e) { + } catch (PaperTradeException e) { return new InvalidCommand(e.getMessage()); } case "bookmarks": try { return parseBookmarks(userInputSplit); - } catch (DukeException e) { + } catch (PaperTradeException e) { return new InvalidCommand(e.getMessage()); } default: @@ -75,76 +75,76 @@ public static Command parseCommand(String userInput) { } } - public static Command parseBookmarks(String[] userInputSplit) throws DukeException { + public static Command parseBookmarks(String[] userInputSplit) throws PaperTradeException { if (userInputSplit.length > 1) { - throw new DukeException("There should not be an argument behind bookmarks!"); + throw new PaperTradeException("There should not be an argument behind bookmarks!"); } return new ViewBookmarkedStocksCommand(); } - public static Command parseMark(String[] userInputSplit) throws DukeException { + public static Command parseMark(String[] userInputSplit) throws PaperTradeException { try { if (!userInputSplit[1].startsWith("/")) { - throw new DukeException("Please enter the ticker symbol of the company that you want to mark!"); + throw new PaperTradeException("Please enter the ticker symbol of the company that you want to mark!"); } String symbol = userInputSplit[1].substring(1).toUpperCase(); return new AddBookmarkCommand(symbol); } catch (IndexOutOfBoundsException e) { - throw new DukeException(("Wrong input format! E.g. mark /MSFT")); + throw new PaperTradeException(("Wrong input format! E.g. mark /MSFT")); } } - public static Command parseUnmark(String[] userInputSplit) throws DukeException { + public static Command parseUnmark(String[] userInputSplit) throws PaperTradeException { try { if (!userInputSplit[1].startsWith("/")) { - throw new DukeException("Please enter the ticker symbol of the company that you want to unmark!"); + throw new PaperTradeException("Please enter the ticker symbol of the company that you want to unmark!"); } String symbol = userInputSplit[1].substring(1).toUpperCase(); return new RemoveBookmarkCommand(symbol); } catch (IndexOutOfBoundsException e) { - throw new DukeException(("Wrong input format! E.g. unmark /MSFT")); + throw new PaperTradeException(("Wrong input format! E.g. unmark /MSFT")); } } - public static Command parseBuy(String[] userInputSplit) throws DukeException { + public static Command parseBuy(String[] userInputSplit) throws PaperTradeException { try { if (!userInputSplit[1].startsWith("/")) { - throw new DukeException("Please enter the ticker symbol of the company that you want to buy!"); + throw new PaperTradeException("Please enter the ticker symbol of the company that you want to buy!"); } int quantity = Integer.parseInt(userInputSplit[2]); String symbol = userInputSplit[1].substring(1); BuyCommand buyCommand = new BuyCommand(symbol, quantity); return buyCommand; } catch (IndexOutOfBoundsException e) { - throw new DukeException(("Wrong input format! E.g. buy /MSFT 11")); + throw new PaperTradeException(("Wrong input format! E.g. buy /MSFT 11")); } catch (NumberFormatException e) { - throw new DukeException("Please enter a valid integer for the quantity of stocks that you want to buy!"); + throw new PaperTradeException("Please enter a valid integer for the quantity of stocks that you want to buy!"); } } - public static Command parseSell(String[] userInputSplit) throws DukeException { + public static Command parseSell(String[] userInputSplit) throws PaperTradeException { try { if (!userInputSplit[1].startsWith("/")) { - throw new DukeException("Please enter the ticker symbol of the company that you want to buy!"); + throw new PaperTradeException("Please enter the ticker symbol of the company that you want to buy!"); } int quantity = Integer.parseInt(userInputSplit[2]); String symbol = userInputSplit[1].substring(1); SellCommand sellCommand = new SellCommand(symbol, quantity); return sellCommand; } catch (IndexOutOfBoundsException e) { - throw new DukeException("Wrong input format! E.g. sell /MSFT 11"); + throw new PaperTradeException("Wrong input format! E.g. sell /MSFT 11"); } catch (NumberFormatException e) { - throw new DukeException("Please enter a valid integer for the quantity of stocks that you want to sell!"); + throw new PaperTradeException("Please enter a valid integer for the quantity of stocks that you want to sell!"); } } - public static Command parseSearch(String[] userInputSplit) throws DukeException { + public static Command parseSearch(String[] userInputSplit) throws PaperTradeException { try { if (!userInputSplit[1].startsWith("/")) { - throw new DukeException("Please enter the ticker symbol of the company!"); + throw new PaperTradeException("Please enter the ticker symbol of the company!"); } } catch (IndexOutOfBoundsException e) { - throw new DukeException(("Please enter the ticker symbol of the company you would like to search for!")); + throw new PaperTradeException(("Please enter the ticker symbol of the company you would like to search for!")); } SearchCommand searchCommand = new SearchCommand(userInputSplit[1].substring(1)); diff --git a/src/test/java/seedu/duke/model/BookmarksTest.java b/src/test/java/seedu/duke/model/BookmarksTest.java index 86a7f9227b..e1bb971806 100644 --- a/src/test/java/seedu/duke/model/BookmarksTest.java +++ b/src/test/java/seedu/duke/model/BookmarksTest.java @@ -1,7 +1,7 @@ package seedu.duke.model; import org.junit.jupiter.api.Test; -import seedu.duke.exception.DukeException; +import seedu.duke.exception.PaperTradeException; import java.util.ArrayList; @@ -15,7 +15,7 @@ void addToBookmarks_bookmarkedStock_expectException() { ArrayList bookmarkedStocks = new ArrayList<>(); bookmarkedStocks.add(symbol); Bookmarks bookmarks = new Bookmarks(bookmarkedStocks); - assertThrows(DukeException.class, () -> { + assertThrows(PaperTradeException.class, () -> { bookmarks.addToBookmarks(symbol); }); } @@ -25,7 +25,7 @@ void removeBookmark_unbookmarkedStock_expectException() { String symbol = "aapl"; ArrayList bookmarkedStocks = new ArrayList(); Bookmarks bookmarks = new Bookmarks(bookmarkedStocks); - assertThrows(DukeException.class, () -> { + assertThrows(PaperTradeException.class, () -> { bookmarks.removeBookmark(symbol); }); } diff --git a/src/test/java/seedu/duke/model/InvalidCommandTest.java b/src/test/java/seedu/duke/model/InvalidCommandTest.java index b1414bf696..7819f72a1b 100644 --- a/src/test/java/seedu/duke/model/InvalidCommandTest.java +++ b/src/test/java/seedu/duke/model/InvalidCommandTest.java @@ -2,7 +2,6 @@ import org.junit.jupiter.api.Test; import seedu.duke.command.InvalidCommand; -import seedu.duke.command.SearchCommand; import static org.junit.jupiter.api.Assertions.assertEquals; diff --git a/src/test/java/seedu/duke/model/PortfolioTest.java b/src/test/java/seedu/duke/model/PortfolioTest.java index a6f396c59d..5bdb095711 100644 --- a/src/test/java/seedu/duke/model/PortfolioTest.java +++ b/src/test/java/seedu/duke/model/PortfolioTest.java @@ -2,9 +2,9 @@ import org.junit.jupiter.api.Test; import seedu.duke.api.StockPriceFetcher; -import seedu.duke.exception.DukeException; import seedu.duke.exception.InsufficientQtyException; import seedu.duke.exception.NegativeQtyException; +import seedu.duke.exception.PaperTradeException; import static org.junit.jupiter.api.Assertions.assertThrows; @@ -14,7 +14,7 @@ class PortfolioTest { void searchStock_invalidStock_expectException() { StockPriceFetcher stockPriceFetcher = new StockPriceFetcher(); String symbol = "zzzzzzz"; - assertThrows(DukeException.class, () -> { + assertThrows(PaperTradeException.class, () -> { stockPriceFetcher.fetchLatestStockData(symbol); }); } @@ -26,7 +26,7 @@ void sellStock_invalidStock_expectException() { String symbol = "abcdefg"; int quantity = 1; // Use a lambda - assertThrows(DukeException.class, () -> { + assertThrows(PaperTradeException.class, () -> { portfolio.sellStock(symbol, quantity, stockPriceFetcher.fetchLatestPrice(symbol)); }); } From 800b510fdff5f1349761c2840a9f3a1d9869e982 Mon Sep 17 00:00:00 2001 From: yokemin Date: Sat, 7 Nov 2020 16:44:44 +0800 Subject: [PATCH 119/136] Fix checkstyle errors --- src/main/java/seedu/duke/api/StockPriceFetcher.java | 4 ++-- src/main/java/seedu/duke/parser/Parser.java | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/main/java/seedu/duke/api/StockPriceFetcher.java b/src/main/java/seedu/duke/api/StockPriceFetcher.java index a77f0c9454..a0405922d4 100644 --- a/src/main/java/seedu/duke/api/StockPriceFetcher.java +++ b/src/main/java/seedu/duke/api/StockPriceFetcher.java @@ -17,8 +17,8 @@ public class StockPriceFetcher { private static Logger logger = Logger.getLogger("tp"); private String[] apiKeys = {"O8EVQ7YSWDW08BN9", "3FPNCQ0JNYEE8BTK", "072ESZXDIDEATZA2", "Q3JB9M20HYCUXBFR", - "K0O2GKDS6Q14H72Q", "9N7N2SEJ1XB2MYXH", "MPGB17OYPB9T9UV4", "V1E553AD7IPL60L7", - "XLCF6EOMHCE76FMG", "SXRMWI9LMKTUGMYR", "UDK2VLO64K1Z8UA2", "8X57YW7EXHPZ66J1"}; + "K0O2GKDS6Q14H72Q", "9N7N2SEJ1XB2MYXH", "MPGB17OYPB9T9UV4", "V1E553AD7IPL60L7", + "XLCF6EOMHCE76FMG", "SXRMWI9LMKTUGMYR", "UDK2VLO64K1Z8UA2", "8X57YW7EXHPZ66J1"}; private int timeout = 3000; public StockPriceFetcher() { diff --git a/src/main/java/seedu/duke/parser/Parser.java b/src/main/java/seedu/duke/parser/Parser.java index 222003416c..77c8aefdd8 100644 --- a/src/main/java/seedu/duke/parser/Parser.java +++ b/src/main/java/seedu/duke/parser/Parser.java @@ -118,7 +118,7 @@ public static Command parseBuy(String[] userInputSplit) throws PaperTradeExcepti } catch (IndexOutOfBoundsException e) { throw new PaperTradeException(("Wrong input format! E.g. buy /MSFT 11")); } catch (NumberFormatException e) { - throw new PaperTradeException("Please enter a valid integer for the quantity of stocks that you want to buy!"); + throw new PaperTradeException("Please enter a valid integer for quantity of stocks that you want to buy!"); } } @@ -134,7 +134,7 @@ public static Command parseSell(String[] userInputSplit) throws PaperTradeExcept } catch (IndexOutOfBoundsException e) { throw new PaperTradeException("Wrong input format! E.g. sell /MSFT 11"); } catch (NumberFormatException e) { - throw new PaperTradeException("Please enter a valid integer for the quantity of stocks that you want to sell!"); + throw new PaperTradeException("Please enter a valid integer for quantity of stocks that you want to sell!"); } } @@ -144,7 +144,7 @@ public static Command parseSearch(String[] userInputSplit) throws PaperTradeExce throw new PaperTradeException("Please enter the ticker symbol of the company!"); } } catch (IndexOutOfBoundsException e) { - throw new PaperTradeException(("Please enter the ticker symbol of the company you would like to search for!")); + throw new PaperTradeException(("Please enter the ticker symbol of the company you want to search for!")); } SearchCommand searchCommand = new SearchCommand(userInputSplit[1].substring(1)); From c8be066bffce495ebbe2f659e68a65d24560398f Mon Sep 17 00:00:00 2001 From: yokemin Date: Sat, 7 Nov 2020 19:46:10 +0800 Subject: [PATCH 120/136] Add line to hide logger --- src/main/java/seedu/duke/api/StockPriceFetcher.java | 2 ++ src/main/java/seedu/duke/model/PortfolioManager.java | 2 ++ src/main/java/seedu/duke/parser/Parser.java | 2 ++ 3 files changed, 6 insertions(+) diff --git a/src/main/java/seedu/duke/api/StockPriceFetcher.java b/src/main/java/seedu/duke/api/StockPriceFetcher.java index a0405922d4..b35cdeb695 100644 --- a/src/main/java/seedu/duke/api/StockPriceFetcher.java +++ b/src/main/java/seedu/duke/api/StockPriceFetcher.java @@ -26,6 +26,7 @@ public StockPriceFetcher() { } public double fetchLatestPrice(String symbol) throws PaperTradeException { + logger.setLevel(Level.WARNING); logger.log(Level.INFO, "fetching latest stock data for " + symbol); StockData stockData = fetchLatestStockData(symbol); @@ -44,6 +45,7 @@ public StockData fetchLatestStockData(String symbol) throws PaperTradeException return stockData.get(0); } catch (AlphaVantageException e) { + logger.setLevel(Level.WARNING); logger.log(Level.INFO, "failed to fetch price from API"); throw new PaperTradeException("API limit has reached. Take a chill pill and test again a moment later :)"); } diff --git a/src/main/java/seedu/duke/model/PortfolioManager.java b/src/main/java/seedu/duke/model/PortfolioManager.java index 94c5de462e..7467a77dfd 100644 --- a/src/main/java/seedu/duke/model/PortfolioManager.java +++ b/src/main/java/seedu/duke/model/PortfolioManager.java @@ -32,6 +32,7 @@ public PortfolioManager() { public void buyStock(String symbol, int quantity, double buyPrice) throws InsufficientFundException, NegativeQtyException { + logger.setLevel(Level.WARNING); logger.log(Level.INFO, "buying stock ..."); portfolio.buyStock(symbol, quantity, buyPrice); save(); @@ -39,6 +40,7 @@ public void buyStock(String symbol, int quantity, double buyPrice) public void sellStock(String symbol, int quantity, double sellPrice) throws InsufficientQtyException, DoNotOwnStockException, NegativeQtyException { + logger.setLevel(Level.WARNING); logger.log(Level.INFO, "selling stock ..."); portfolio.sellStock(symbol, quantity, sellPrice); save(); diff --git a/src/main/java/seedu/duke/parser/Parser.java b/src/main/java/seedu/duke/parser/Parser.java index 77c8aefdd8..dc3bcfdac9 100644 --- a/src/main/java/seedu/duke/parser/Parser.java +++ b/src/main/java/seedu/duke/parser/Parser.java @@ -21,6 +21,7 @@ public class Parser { private static Logger logger = Logger.getLogger("tp"); public static Command parseCommand(String userInput) { + logger.setLevel(Level.WARNING); logger.log(Level.INFO, "going to start processing command"); String[] userInputSplit = userInput.trim().split(" "); @@ -70,6 +71,7 @@ public static Command parseCommand(String userInput) { return new InvalidCommand(e.getMessage()); } default: + logger.setLevel(Level.WARNING); logger.log(Level.WARNING, "processing error when parsing command"); return new InvalidCommand("Invalid command! Please try again."); } From c8a4b67ccd1fd165d1b52de6deb69ac79e60abf6 Mon Sep 17 00:00:00 2001 From: yokemin Date: Sat, 7 Nov 2020 19:47:09 +0800 Subject: [PATCH 121/136] Change exception message --- src/main/java/seedu/duke/api/StockPriceFetcher.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/seedu/duke/api/StockPriceFetcher.java b/src/main/java/seedu/duke/api/StockPriceFetcher.java index b35cdeb695..e6c70e9363 100644 --- a/src/main/java/seedu/duke/api/StockPriceFetcher.java +++ b/src/main/java/seedu/duke/api/StockPriceFetcher.java @@ -47,7 +47,7 @@ public StockData fetchLatestStockData(String symbol) throws PaperTradeException } catch (AlphaVantageException e) { logger.setLevel(Level.WARNING); logger.log(Level.INFO, "failed to fetch price from API"); - throw new PaperTradeException("API limit has reached. Take a chill pill and test again a moment later :)"); + throw new PaperTradeException("API limit reached. Take a chill pill and try again a minute later :)"); } } From 694f1d6f0a201dbdcdfe69fe6dea16e540c97486 Mon Sep 17 00:00:00 2001 From: yokemin Date: Sat, 7 Nov 2020 20:11:13 +0800 Subject: [PATCH 122/136] Edit UG --- docs/UserGuide.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/docs/UserGuide.md b/docs/UserGuide.md index df0f36b674..08ad0ab9b8 100644 --- a/docs/UserGuide.md +++ b/docs/UserGuide.md @@ -4,6 +4,11 @@ PaperTrade is a command line trading simulator that lets you try your hand at trading stocks with no risk! +__Note: Do not panic if you see the `API limit reached` error!__ + +What you are using is a free version. Hence, there is a limit of 5 API requests per minute. +You can pay for the premium version starting at only $29.99/month! + ## Quick Start 1. Ensure that you have Java 11 or above installed. From be269d2175dd82077114c6623ced16f578a4acb3 Mon Sep 17 00:00:00 2001 From: yokemin Date: Sat, 7 Nov 2020 21:22:56 +0800 Subject: [PATCH 123/136] Fix link to PPP --- docs/AboutUs.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/docs/AboutUs.md b/docs/AboutUs.md index 35fa33d306..5630bca6a2 100644 --- a/docs/AboutUs.md +++ b/docs/AboutUs.md @@ -2,8 +2,8 @@ Display | Name | Github Profile | Portfolio --------|:----:|:--------------:|:---------: -![](https://via.placeholder.com/100.png?text=Photo) | Alvin | [Github](https://github.com/trolommonm) | [Portfolio](docs/team/alvin.md) -![](https://via.placeholder.com/100.png?text=Photo) | Yoke Min | [Github](https://github.com/yokemin) | [Portfolio](docs/team/yokemin.md) -![](https://via.placeholder.com/100.png?text=Photo) | Liang Yi | [Github](https://github.com/wly99) | [Portfolio](docs/team/liangyi.md) -![](https://via.placeholder.com/100.png?text=Photo) | Jun Xian | [Github](https://github.com/JunxianAng) | [Portfolio](docs/team/junxian.md) -![](https://via.placeholder.com/100.png?text=Photo) | Shao Jing | [Github](https://github.com/shaojingle) | [Portfolio](docs/team/shaojing.md) +![](https://via.placeholder.com/100.png?text=Photo) | Alvin Tan De Jun | [Github](https://github.com/trolommonm) | [Portfolio](team/alvin.md) +![](https://via.placeholder.com/100.png?text=Photo) | Woon Yoke Min | [Github](https://github.com/yokemin) | [Portfolio](team/yokemin.md) +![](https://via.placeholder.com/100.png?text=Photo) | Wang Liang Yi | [Github](https://github.com/wly99) | [Portfolio](team/liangyi.md) +![](https://via.placeholder.com/100.png?text=Photo) | Ang Jun Xian | [Github](https://github.com/JunxianAng) | [Portfolio](team/junxian.md) +![](https://via.placeholder.com/100.png?text=Photo) | Chan Shao Jing | [Github](https://github.com/shaojingle) | [Portfolio](team/shaojing.md) From c0e913a8564e1e568014036b3ace33de32e36ab0 Mon Sep 17 00:00:00 2001 From: yokemin Date: Sat, 7 Nov 2020 21:24:38 +0800 Subject: [PATCH 124/136] Edit readme.md --- docs/README.md | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/docs/README.md b/docs/README.md index 7586e5e393..298f7bdc2e 100644 --- a/docs/README.md +++ b/docs/README.md @@ -1,6 +1,4 @@ -# Duke - -{Paper trading command line app} +# Paper trading command line app Useful links: * [User Guide](UserGuide.md)(Read more about how to use our application!) From 94c85596b790e46cc7210b22eab4f379d6be6b59 Mon Sep 17 00:00:00 2001 From: wly99 <34613421+wly99@users.noreply.github.com> Date: Sat, 7 Nov 2020 22:59:40 +0800 Subject: [PATCH 125/136] Update liangyi.md --- docs/team/liangyi.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/team/liangyi.md b/docs/team/liangyi.md index 44354188bb..d64c5ca99b 100644 --- a/docs/team/liangyi.md +++ b/docs/team/liangyi.md @@ -1,6 +1,6 @@ # Liang Yi - Project Portfolio Page ## Overview - +Paper trade is a trading simulator that lets inexperienced people try their hand at trading stocks. ### Summary of Contributions From b5cffaa7f594e0a1a16efa2d24675d077247daae Mon Sep 17 00:00:00 2001 From: wly99 <34613421+wly99@users.noreply.github.com> Date: Sat, 7 Nov 2020 23:00:47 +0800 Subject: [PATCH 126/136] Update liangyi.md --- docs/team/liangyi.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/team/liangyi.md b/docs/team/liangyi.md index d64c5ca99b..d9ff4bedba 100644 --- a/docs/team/liangyi.md +++ b/docs/team/liangyi.md @@ -1,6 +1,6 @@ # Liang Yi - Project Portfolio Page -## Overview +## Overview: PaperTrade Paper trade is a trading simulator that lets inexperienced people try their hand at trading stocks. ### Summary of Contributions From 4fae56c12964a636169257fc17bc13025b81e808 Mon Sep 17 00:00:00 2001 From: wly99 <34613421+wly99@users.noreply.github.com> Date: Sat, 7 Nov 2020 23:01:18 +0800 Subject: [PATCH 127/136] Update liangyi.md --- docs/team/liangyi.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/team/liangyi.md b/docs/team/liangyi.md index d9ff4bedba..2ac86c9cd0 100644 --- a/docs/team/liangyi.md +++ b/docs/team/liangyi.md @@ -1,6 +1,6 @@ # Liang Yi - Project Portfolio Page ## Overview: PaperTrade -Paper trade is a trading simulator that lets inexperienced people try their hand at trading stocks. +PaperTrade is a command line paper trading application that allows users to simulate the buying and selling of stocks. A paper trade is a simulated trade that allows an investor to practice buying and selling stocks without risking real money. ### Summary of Contributions From 3f886d7f69326eec163f4f1f3ab4afac8a0ee7d4 Mon Sep 17 00:00:00 2001 From: wly99 <34613421+wly99@users.noreply.github.com> Date: Sat, 7 Nov 2020 23:01:57 +0800 Subject: [PATCH 128/136] Update junxian.md --- docs/team/junxian.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/team/junxian.md b/docs/team/junxian.md index 0adac344c1..f854738a31 100644 --- a/docs/team/junxian.md +++ b/docs/team/junxian.md @@ -1,6 +1,6 @@ # Jun Xian - Project Portfolio Page -## Overview - +## Overview: PaperTrade +PaperTrade is a command line paper trading application that allows users to simulate the buying and selling of stocks. A paper trade is a simulated trade that allows an investor to practice buying and selling stocks without risking real money. ### Summary of Contributions From 05037654c5ff1792db235c7f967f933a127bd36f Mon Sep 17 00:00:00 2001 From: wly99 <34613421+wly99@users.noreply.github.com> Date: Sat, 7 Nov 2020 23:02:11 +0800 Subject: [PATCH 129/136] Update shaojing.md --- docs/team/shaojing.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/team/shaojing.md b/docs/team/shaojing.md index b148875ca3..ced595f636 100644 --- a/docs/team/shaojing.md +++ b/docs/team/shaojing.md @@ -1,6 +1,6 @@ # Shao Jing - Project Portfolio Page -## Overview - +## Overview: PaperTrade +PaperTrade is a command line paper trading application that allows users to simulate the buying and selling of stocks. A paper trade is a simulated trade that allows an investor to practice buying and selling stocks without risking real money. ### Summary of Contributions From c2db328ad6677d41f039e013a70c90eef6eec79e Mon Sep 17 00:00:00 2001 From: wly99 <34613421+wly99@users.noreply.github.com> Date: Sun, 8 Nov 2020 00:21:29 +0800 Subject: [PATCH 130/136] Update liangyi.md --- docs/team/liangyi.md | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/docs/team/liangyi.md b/docs/team/liangyi.md index 2ac86c9cd0..b582a561f2 100644 --- a/docs/team/liangyi.md +++ b/docs/team/liangyi.md @@ -4,3 +4,16 @@ PaperTrade is a command line paper trading application that allows users to simulate the buying and selling of stocks. A paper trade is a simulated trade that allows an investor to practice buying and selling stocks without risking real money. ### Summary of Contributions +* **Testing**: + * Added tests to verify that code is behaving as intended. + +### Documentation +* **User Guide**: + * Edited UG for Introduction and Quickstart. + * Added Features which include buying, selling, searching of stocks, viewing portfolio, checking your wallet and exit. + * Edited FAQ and Command Summary. + +* **Developer Guide**: + * Defined product scope along with target user profile and value proposition. + * Defined user stories and non functional requirements. + * Planned the product roadmap and project schedule. From e78057fdc08eecdc00d5a94d38bf8df9e4a5d5b1 Mon Sep 17 00:00:00 2001 From: wly99 <34613421+wly99@users.noreply.github.com> Date: Sun, 8 Nov 2020 00:27:12 +0800 Subject: [PATCH 131/136] Rename liangyi.md to wly99.md --- docs/team/{liangyi.md => wly99.md} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename docs/team/{liangyi.md => wly99.md} (100%) diff --git a/docs/team/liangyi.md b/docs/team/wly99.md similarity index 100% rename from docs/team/liangyi.md rename to docs/team/wly99.md From 5b7cc95ddf61a5e5242fa94264e440e8ff49456e Mon Sep 17 00:00:00 2001 From: wly99 <34613421+wly99@users.noreply.github.com> Date: Sun, 8 Nov 2020 00:37:39 +0800 Subject: [PATCH 132/136] Update AboutUs.md --- docs/AboutUs.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/AboutUs.md b/docs/AboutUs.md index 5630bca6a2..89d90d385d 100644 --- a/docs/AboutUs.md +++ b/docs/AboutUs.md @@ -4,6 +4,6 @@ Display | Name | Github Profile | Portfolio --------|:----:|:--------------:|:---------: ![](https://via.placeholder.com/100.png?text=Photo) | Alvin Tan De Jun | [Github](https://github.com/trolommonm) | [Portfolio](team/alvin.md) ![](https://via.placeholder.com/100.png?text=Photo) | Woon Yoke Min | [Github](https://github.com/yokemin) | [Portfolio](team/yokemin.md) -![](https://via.placeholder.com/100.png?text=Photo) | Wang Liang Yi | [Github](https://github.com/wly99) | [Portfolio](team/liangyi.md) +![](https://via.placeholder.com/100.png?text=Photo) | Wang Liang Yi | [Github](https://github.com/wly99) | [Portfolio](team/wly99.md) ![](https://via.placeholder.com/100.png?text=Photo) | Ang Jun Xian | [Github](https://github.com/JunxianAng) | [Portfolio](team/junxian.md) ![](https://via.placeholder.com/100.png?text=Photo) | Chan Shao Jing | [Github](https://github.com/shaojingle) | [Portfolio](team/shaojing.md) From 8f1b9dd53bb8ad2b0e599abc0bbb1b4e2a81d354 Mon Sep 17 00:00:00 2001 From: wly99 <34613421+wly99@users.noreply.github.com> Date: Sun, 8 Nov 2020 00:38:03 +0800 Subject: [PATCH 133/136] Update AboutUs.md --- docs/AboutUs.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/AboutUs.md b/docs/AboutUs.md index 89d90d385d..daf8ffb1f7 100644 --- a/docs/AboutUs.md +++ b/docs/AboutUs.md @@ -1,4 +1,4 @@ -# About us(in-progress) +# About us Display | Name | Github Profile | Portfolio --------|:----:|:--------------:|:---------: From 2f2f0642d0db8bc42066fb80192cfac6cd349809 Mon Sep 17 00:00:00 2001 From: "LAPTOP-POOFUI22\\User" Date: Sun, 8 Nov 2020 19:40:57 +0800 Subject: [PATCH 134/136] Update PPP --- docs/team/junxianang.md | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 docs/team/junxianang.md diff --git a/docs/team/junxianang.md b/docs/team/junxianang.md new file mode 100644 index 0000000000..3328548865 --- /dev/null +++ b/docs/team/junxianang.md @@ -0,0 +1,31 @@ +# Jun Xian - Project Portfolio Page + +## Overview: PaperTrade +PaperTrade is a command line paper trading application that allows users to +simulate the buying and selling of stocks. A paper trade is a simulated trade +that allows an investor to practice buying and selling stocks without risking +real money. + +### Summary of Contributions +* **New Feature**: Added **View** function + * What it does: Allow users to view portfolio of stocks that they currently own. + It includes quantity owned, transaction history, current market price and current + profit/loss. + + * Justification: This is a feature that allows users to keep track of their portfolio + of stocks and to track how well their stocks owned are doing in terms + of profit/loss, relative to latest market price. + + * Highlights: To implement this, there is `PortfolioManager` that is able to access `Portfolio` which encapsulates + `Stock` and `Transaction`. `Stock` object also has a method to retrieve latest market price through the use of + `StockPriceFetcher`. + +Code contributed: [RepoSense Link](https://nus-cs2113-ay2021s1.github.io/tp-dashboard/#breakdown=true&search=&sort=groupTitle&sortWithin=title&since=2020-09-27&timeframe=commit&mergegroup=&groupSelect=groupByRepos&checkedFileTypes=docs~functional-code~test-code~other&tabOpen=true&tabType=authorship&zFR=false&tabAuthor=JunxianAng&tabRepo=AY2021S1-CS2113-T16-3%2Ftp%5Bmaster%5D&authorshipIsMergeGroup=false&authorshipFileTypes=docs~functional-code) + +### Documentation +* **Developer Guide**: + * Added Object State Diagrams to give the overall view of `View` portfolio stocks function. + Also explained the step by step changes made to the respective classes as the `View` method is called + in each class. + [#45](https://github.com/AY2021S1-CS2113-T16-3/tp/pull/45) + \ No newline at end of file From 24ce353e2b07ae510a8975b4dc9cf94744bbf51c Mon Sep 17 00:00:00 2001 From: JunxianAng <50763491+JunxianAng@users.noreply.github.com> Date: Sun, 8 Nov 2020 19:42:49 +0800 Subject: [PATCH 135/136] Delete junxian.md --- docs/team/junxian.md | 6 ------ 1 file changed, 6 deletions(-) delete mode 100644 docs/team/junxian.md diff --git a/docs/team/junxian.md b/docs/team/junxian.md deleted file mode 100644 index f854738a31..0000000000 --- a/docs/team/junxian.md +++ /dev/null @@ -1,6 +0,0 @@ -# Jun Xian - Project Portfolio Page - -## Overview: PaperTrade -PaperTrade is a command line paper trading application that allows users to simulate the buying and selling of stocks. A paper trade is a simulated trade that allows an investor to practice buying and selling stocks without risking real money. - -### Summary of Contributions From 4bc8720d266b13b7cf40a1ccec9a427275fd93b4 Mon Sep 17 00:00:00 2001 From: Alvin Tan De Jun <> Date: Sun, 8 Nov 2020 22:08:48 +0800 Subject: [PATCH 136/136] rename PPP --- docs/AboutUs.md | 2 +- docs/team/{alvin.md => trolommonm.md} | 0 2 files changed, 1 insertion(+), 1 deletion(-) rename docs/team/{alvin.md => trolommonm.md} (100%) diff --git a/docs/AboutUs.md b/docs/AboutUs.md index daf8ffb1f7..4238f2bd07 100644 --- a/docs/AboutUs.md +++ b/docs/AboutUs.md @@ -2,7 +2,7 @@ Display | Name | Github Profile | Portfolio --------|:----:|:--------------:|:---------: -![](https://via.placeholder.com/100.png?text=Photo) | Alvin Tan De Jun | [Github](https://github.com/trolommonm) | [Portfolio](team/alvin.md) +![](https://via.placeholder.com/100.png?text=Photo) | Alvin Tan De Jun | [Github](https://github.com/trolommonm) | [Portfolio](team/trolommonm.md) ![](https://via.placeholder.com/100.png?text=Photo) | Woon Yoke Min | [Github](https://github.com/yokemin) | [Portfolio](team/yokemin.md) ![](https://via.placeholder.com/100.png?text=Photo) | Wang Liang Yi | [Github](https://github.com/wly99) | [Portfolio](team/wly99.md) ![](https://via.placeholder.com/100.png?text=Photo) | Ang Jun Xian | [Github](https://github.com/JunxianAng) | [Portfolio](team/junxian.md) diff --git a/docs/team/alvin.md b/docs/team/trolommonm.md similarity index 100% rename from docs/team/alvin.md rename to docs/team/trolommonm.md

2b8sO-x{N;>eYgi`dC(QZL#Vn}#-_7p@coo#?@X7umQ@>le(% z>Wj8kr|Er4eo~G+{Ff|M(tlj&>xw|jyu!U=Qq-MV8#N<7IjPVWf=nXu$a?lY{bS6O zKfY{yKhx2@)ie^1FGr3nn%x7cPR7!5)BLrdwXY}H?n+48B1HOh6LykP1cKLZT)B0=zHkNu{5E*f^h|>()a6V zst{S0vBn4f*hauG6VZ>=r3D1wTI!}H`cRs04^vxzi>;W1CYP<|jgwbPjgYm&d8FUm!_csaQ9R-z5%NqNuzz;y>vi#cjf{R(kr3tx2fMoDiiPvi0r5n z_4f5KZgHZiA4>83Ou*-fQBlzx(p|Ec@(!5pC}AjdoKDfTn%&Hj*jd}-Fd%j}hE8S4 z_|90?(KUwN%VmG_j>gcuBPngPPNRX^%8*y53p~%H#9Ey~ca;GorBXq%&vz2rN|535 zNYjbn&X|YFo=MUP6R>d)tWlv;uSn=LmZ8Z^_cP~G)@mP~Am*rXh1E^to?Hd*cS$9v zZYS8S6`fmaZf^pURX5~DPmYXnKK^=jaXdh}pH@9-z)9kqP^pSMA}p#bi%OTfO>ql4 zkm_}&vUc}pj=F}2H{}_rT~w!N+3hy)P4ZuI?Xz2%$h6PPd-kod|B8k<7dH5nd<&<8 zebMIP^ z@pP!3AkkPyTgLYT8yh7TimH549O!jy){6?ovoG%@Z9#r1+JLJntuTn%xtD2x3*mU{ zhOMnxl;F5~)tfhKIa%^scwN8?v*26pD{Z8w9XH0S?7R_sZcifA0-MOZC*xK{y9>6`J% z6GNjt&q_*yr=Fbdti&FOgafppkZ9<)LJ7xtptVh=m0chc(G@bT7ti6CLDi<;)<(w=IMET>qZkX;vo^yGm;0jWN0akf+efy1fI}oHS_U)`cfvwzKh*G*-v+R zjNPlm<-X-Ppyr+3Q+I%hhNWDcOyV;cs;JHLVNzz7?RjWO!w0OPmhYg>eRv#!{IT)6 zVL%8`Q?yv&wIwRuxNmQB2|SFC;TNkqlsIlx4^6{W%%r-&8r57g zGKP2s?%jpt)f<(DGtt2P0Wy{u>6Ce)wwm3fSd1gk{9s9ex+DvvLutd<06U;fA(?V+ z2Doi*F$XhNt=7FYodR-Zl0fhInhu?#O1f+Mb#~i}*Nj4it$;jW#3B0qw>~LllucWg zfA0-Aq9e|vPbjRcawhwyqAt+a4lV@8_ml}$bgrFRtbBXfTwC$s_aY;CY1W_ zChSlG?4#KX@OZw0yfVA-Te*e;fQ|p4l4stlPjY5T`HEzr7*nh=;g#);vKbv1eq)Ht zd%ZfOevbj2Z56O<&KH5&*DR;1ZH?cyC+%cTLYeA=;jT+!lpv{*im)p}iym|IIuMNL zpU^hHxI<^2gtgAZ#j+dzO3Kqh1CL<%M1z)P4_zO+vnbIsO9vJ7+s`xl?R^q}ps>qw z-NZ}v8<5g8Y)3UJNw!c&5V*_B)=BUMI&wSZmTqLY9$n?KqU6a`k;*~y$TU^UlDn%DEyJUI z(sCKpX!w8!JJbVwq>fWb*h75t%Y!Ne=P#YDf;=+w2Zkvpk{$RE9fWBOT;P^7QB+up zWQV9^$o-A*4%1h8CynoLe9c?hooVqr*@2W9yqVF%Bm2ux|DTu;mO=U*txA#ix!I1U9WR+gg!Alz ze3{~>x??MB_(h9ftLxSX~hX)FOo* z4zrO{F^fQCYUZqcv*1C$;(M9n7EB_oG_!`AgXYnzxrbT}5%y_eV@i35Dj20JD5}!~gXZt1l zzLEAjV5I-eKr2)JG%A?nRW2&9)^XF>K0Tvk)6VfdI$F%~J{bVjO6SrGau4%OUgsKs z&6W?|d`Yil-OF;19ell#QkQzyQlGWTQG(L$l&P!&i}>reURDur+-ZvxD4GKr8K3G_ zoSKY8Q2m*UkbHdr)KNnro92#B60~^;+Ha}KtJ#YUxtgz<_}K(l7TGpZRA=9uac%dd zseZ%p26f~l)dTM;WbJ`z4lx+^07ttd{$a`20S7{>@>7br28vx$n54*ui?1ovgtK(wfG+R0H4NKHkEr3i%b|C*_$jdr=k%XT$vQ&gW3yUV3e_ihrJZ?=NY z@}gF1<_!bTboe=hL4%WBRdv(KEDzY3)Ofk*4Lr%7dHw0l`07;=)Vof!TpfEaxYGy> zt#qTlI?b^guA9^S;bEa<3{7TjlAR9QixSY)`+?f=<9ky;Yg2s)UJcfM9*$6osSZ<< z@$sIv+V)`6dDaK^@aK_9VR{8q2#Lz`U`2;4mKI>U?e44zNGZ@K1!3&TFvgyEDCf?I z^UQ9HuTco?&WpTOot>N84K5339&o+)I~k!fJbt<5F9cq{to-9VuB<$Ch9Fr<+5T}Q zg)`DHwQS?{KP77z|4)$h=OE&lN&GymGB;3qqq1~14Q_K9*V zn%x+poW07dKD|C=d`BIgrEQK5DQ=esB9GiagWfc{(%>uGzXIP8;MM6wpPgnE!1SJI?MN%Tg6^&$;uhnj21IK$i^+bfBsxBOmHW+MJ-I3J z$H%ChFWtW7lyAGNZy;EHV- zmtEE;uY4gEo6y?2S5loj$0pZ4hzz<6*|EWLmO?Aj)yi;kuF}Z2XFn=e)b#dF2^~p& zfq_8^4?_{%IDVsL@IFzEC^PucmVC48(==Ma(b9;uW*zBCAeOrO!`tz3?4OH=dn=3(= z`suWgVS!qO-kG@Bl7xA+i6`}w*g z^$Sc3o!l4;&r5K-j6AMua)?OL*%;>h2FffZN(w3=MJ9yg`}G1DXNyjC)4d^?8G?rE z4Xp42_%RflBo>DVFzNL%rB44VTXkF7MFe^^x(*!Le+lh17aJw#>*_PK#fV^|M1^0LsS(zZ|sLgj^Wqxk*M#qEsgIqi6nL|h zF~C!vU2z&?3bKhlsa%5bB$H8UH(Y}(tWNs?MMUp>5C`o_{qw<+`IFRwf)IH|OG|p# z%oNlNO4kz<3T-Ec35>s4u1u*goVBjG&dBu-p%8+wq=g=E&BcbyQH=Ki1StR`-2O-h8>)au{_@J+Wy3A z_Z4R865ZAjF4C%||Jlp`x6b7MfrpKX%i+Z~?yDl}zADb7cs$;A!mgR}`~CGsDO6r} z62j_P%02Anq?eA#)G!Hny#4I|&ISG-i={fcSK!}Y{xk5^<>|aHqW{_*_a(o)MS7+dH_hCaNOjDoG4i%V1|*#SxjS^QyTkIG&ghjs zly#Oc<9hj;lC-pHryoO%*z8Xel56M)7wW zl+?0DcX$T-jus}h9q0PEV`wKYljzWDEDl8*A0I1j3TP1i9`J5nq->>oyY`EgfBs7A(S_7> z^K@jgD*C>xIi99bCI}ZHKo`{AL~bdpnFOX!72M}hWa)UgA!wuDL)WG zpwP~4JRo~yqq(KLCX~9^T zR=73!!2`h10MH+XMTuWsY`gpf8m$v9kZ1~dsxhK+zYl6gdG;}(iob7kb#(y>0V{|G z3C!mDL5)9u?QX$52U{gm@l0gNaf4B|P#U1fK<8f`9$UbyftaD|9^lMC(q*N8(*7u~ za3U^JJ}_)^Gc&mA6nJW*{~9(fU#YjxgkZCy_Y0<-%s9vSrgQU zY%8(`1>a{in>-_;pc5njf1nNIo*V@&#_;3NW2}ga zG<{RoPWk8f2Cgb5>TQS0)WaKIV}4;_MF0bb7eFl;N{mpQ2ABb$EA&2VyxC!}%K6^& zi<*#NZ%tEBs1+ircE>n}&v&uHiB+|1OxcSxaI#SxA8WxX+QQSLcmc28QsBB{G_6}`$ zJ&}ib0!0X}vVdYWU{iq4=%!rD=(n74{eJ_$HqcUi5Cd|sVhoaNeIN$)YQM# z@Pdwt*>EbkmY&_6qR*C1#TxeMiPY@v!q8b7o(_+Ohw9vhYv=&ZL2?K!k*v=rerh1x zFkoqE$rLQ{FKGKl6l8fz2khrKnrALZPo`XVZCz?@2{X9gf3^10tTzS5@hc8lGtGX>tVa%&v}&w>SCXZN3;B+n!Ng<_u>nJIb!mm=a#KlL z^GXd>-U#!<3(U9+N(Zc!@eeazws;4^R>9`xm6zmE+{N}$FlLQgzm8eY9GptPoQXyp z%}2){an4SY2=iL#kZ$_xqg-+=Y1niJFJEk^J2&I4aS>j1^1$CYR|2%2f?L9q)G%v+ zvH~&8eEZ0+Gyfo&KNU{Oyw}-m!IDJnlr?7(2xAetd0;G#$Vwe|*GLxjzLscf6zzp2 zR-7`dAK5o&dODy-B->8;(UUT|eYwm}ON#M6Qy&nFa$En)oHKpLU@5J4zLyuReS@K# zJ1`XF%sNvQM#<@KmDY=C9r}cgG4@5P>{=JN=-X89yU@MR8b746@du8R_pckgxpfL( zF{OA-e)(dtS*g$4;6qnk4*Wfa?xe&JE;R?cz;=5Wsw&Mt_)x<01D`O%pRLib`F2O7 zO^b<4A=lQe7*Ck=fJlkWV4rV{_deF!d}~0R%D{kr$jbu{Ig4VHCYa}h)ulGtRGIy9 z!j{xU^MGDA7_DuOM$@ixuse*x4OXH?c1;8+_DL_7qjl$61j9A7=z?EB1L8O zhqg!?WyA|7GloDAm+ygjh+4WOy`2lu)3f`2ZD);15I=Z{Y8_LP)Sak5d`qdg_* z%e&n1Hk%O?gW|x})5{KRbzS800tdQT{N-5Q+`HgIKlTnRD_J}u!QvYS0cj|ec}x0I zcpp6E;lWQtXFl4Cp`T}CcO3j=tvEsivRE)Uuqwmy5COaj?l;uij1lrq?Nwo5#&tRM zt9Jd!e>XnkGs)B5ymGlyP_<;wr5F$A_CcBFXEGLG_wJ_>>Li}~Ow72#0tbY4N-lI! ztNnc*S!ikUUO>*M+o%ps0`;%&`EbFb^NCovRaW$*c%F1JpXz01+|Mirmc}WdsLG03 zPjAy>keMgRU_=LJo$kZeAKAPzYF+XpITg0V2blvyraH!I z9@EJGKx^K?hwS7B(gX6icPww#gLj$}Mm85Rk&Fm}uOC0~^{)_=w~PMh+)nF<^K!?$0*FKj9=_6Z#^H?QPRS9ee)`@tu8ex18Z ztv>!c<^t4Xkv0-Fj>5wHd+JABo*b}(wTPqy)$Vaq_=GxZrkQaD=uZRow74H&w2ves zq$pOr&@K-@@w+??s87~kzq-651^Ux(-K1FA1*T?t>YVG*Yg_QEEL`+erN$9kdr$T3 zDkfd=pLH`a59?LbRbJm^SsF7spd}wd+pFVY)AU;kFLpE7o?1;;WPH8Y;?HGma3GBR zq`f`NCekLtH;`{^TUh*hvnz?Xe0`!OtSIMz1bA~DpPdh#n`pL|p1Es#s(Qp-iK)}> z^!cvl1joH`dtR-rTQqW%!EYRxQf@^i(kLKP{Ud(h}BnhY!+v`=Zj&{Ul^@I zYQ=5On0>3$gCxrE^l(=>AROVy04Qn*#DTj9kX#6cfx!pyFkla%O#}L73<6}K$RKD?H&OY(kGHqCudg&v+2P56l>_`P&}IRG3+Qb? z{laZq+qlgXziQQI4dgp2RSTq^NZYXSc}2yRzg~$^qNiG&c4@`Mk zSy@2D1KfBS(25=&fZ83Qb{P}?)z3O5&Y8&H99VoE$6UBnIyJ;#AA>#3#`InE$xFSz+!Z{D1^-W=1O@k()02#$x3<9X`j{rCYv?;U{3CyY4dv(CR z?&|inwSlkTcD%2okXrou)>BPCMkOKVt~azIyeL$!^c~+Y3N9}*JV$n*KGytO`q0@GIBh#X${K5om^R^t4go+xc!#~-0z%i|;M*9{ zHlM(_s?SZ&b{_dePe#)oB}(~DlNOx;sk1usp`m$-wYr9$)f1BfycV_X>6KaKY%$a1 z8FYcw=O}`d$#H}ZJ<36n~6?A^O;I6eR{9=gA59Q%h68@Q^Rabcwb zOnhFk&~0^*HVR|ElX=T5)uCoWX6=+t}y^gD1p-?W!6BG0}Cd75U zhPU&5r}wFXnN;G$j4|~0jVTJyJvLwZs_m(U_zO2UwYu5Y zc>0dLtZeY7pK2L%_4B22oLn6A?H4dv|Il-LVB^O?HUC<_CtJXHSJS&&z0NiM)8C$y ztflTeyn>INMA#y3Z1dW7-c)B8*fQ)Z1My$ z=ta7ZksT_rYE)xLi!RuC;^$pv9?s`OK&9&&-|@brHGe40d1bp?C8|lYG=7b$MD_N9;{ouCXsmSzmt3h0?yv%U_+I(AOj6v*5nF_ZeDly;dsofWIN-GWwqV zwCR@UHXpNb#?Jr2*jvXn-G2Y$#x358$gL70rJ^8GA`KFXfQW#S(gM;YodXpmC6rQX zG?EjL7z`%TIi!0^_vqNz_PZwD?>FfC^L_mI`^8?b>zs3)e4cZj%EoFMFtWL{JNMzg zRXyD&hrcL!)y%oAGpPY6Gt9<4J(FU@n`rwtKXqrCv0bVjYl`W44hx%(rhhPe`lKtt`A?4E>EhnauIOwM%6-8w$2#ihHQ<*rFDB)Wha z-~-+8$-->c=cLz$lBIFMcFYi`kN8%agviJbeY%c2JUq?cz&L=uO eUq+e>7-rR#kU@;Tti6`lkg&OMV39BTU|5X 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 eUq+e>7-rR#kU@;Tti6`lkg&OMV39BTU|5X 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