From 3681a73e88f2de35a5e4a2511c284693312dfd12 Mon Sep 17 00:00:00 2001 From: ciaoosuuu <> Date: Mon, 7 Nov 2022 22:30:28 +0800 Subject: [PATCH 01/25] Update ciaoosuuu's ppp --- docs/team/ciaoosuuu.md | 39 ++++++++++++++----- .../waddle/model/itinerary/Itinerary.java | 2 +- 2 files changed, 31 insertions(+), 10 deletions(-) diff --git a/docs/team/ciaoosuuu.md b/docs/team/ciaoosuuu.md index 07ab5d55cbd..4d80f463fbe 100644 --- a/docs/team/ciaoosuuu.md +++ b/docs/team/ciaoosuuu.md @@ -9,7 +9,7 @@ Waddle is a simple, no-frills travel planning application catered to people who Given below are my contributions to the project. -* **New Feature**: Add an export command. +* **New Feature**: Add an export to PDF command. * What it does: This command allows users to export the itinerary they have planned into an offline PDF document. * Justification: This feature improves the product significantly as users usually travel with other people, hence there is most likely a need to share itinerary with others. This feature allows users to have an offline PDF document @@ -17,7 +17,6 @@ to send to their travel buddies. * Highlights: The implementation was challenging as it involved incorporating external libraries to our project, and it was necessary to look through the heavy documentation to implement this feature. * Credits: This feature heavily relies on [Apache PDFBox](https://pdfbox.apache.org/) - * **Code contributed**: [RepoSense link](https://nus-cs2103-ay2223s1.github.io/tp-dashboard/?search=ciaoosuuu&breakdown=true&sort=groupTitle&sortWithin=title&since=2022-09-16&timeframe=commit&mergegroup=&groupSelect=groupByRepos&checkedFileTypes=docs~functional-code~test-code~other) @@ -25,24 +24,46 @@ it was necessary to look through the heavy documentation to implement this featu * Managed releases `Waddle v1.2` and `v1.2.1` (2 releases) on GitHub * **Enhancements to existing features**: - * to be added soon + * Added `Itinerary` and relevant classes ([#28](https://github.com/AY2223S1-CS2103T-W11-4/tp/pull/28)) + * `Country`, `People`, `Description`, `Date` + * Implemented essential helper methods in `Itinerary` for `plan` and `unplan` commands + * `Itinerary#removeItem`, `Itinerary#setItem`, `Itinerary#planItem`, `Itinerary#unplanItem`, + * Added the calculation logic for Budget + * Edited various command's parser to allow optional fields + * Constantly improving existing commands and fixing bugs + ([#77](https://github.com/AY2223S1-CS2103T-W11-4/tp/pull/77), + [#81](https://github.com/AY2223S1-CS2103T-W11-4/tp/pull/81), + [#82](https://github.com/AY2223S1-CS2103T-W11-4/tp/pull/82), + [#88](https://github.com/AY2223S1-CS2103T-W11-4/tp/pull/88), + [#89](https://github.com/AY2223S1-CS2103T-W11-4/tp/pull/89), + [#90](https://github.com/AY2223S1-CS2103T-W11-4/tp/pull/90), + [#93](https://github.com/AY2223S1-CS2103T-W11-4/tp/pull/93), + [#113](https://github.com/AY2223S1-CS2103T-W11-4/tp/pull/113), + [#126](https://github.com/AY2223S1-CS2103T-W11-4/tp/pull/126), + [#190](https://github.com/AY2223S1-CS2103T-W11-4/tp/pull/190), + [#192](https://github.com/AY2223S1-CS2103T-W11-4/tp/pull/192), + [#210](https://github.com/AY2223S1-CS2103T-W11-4/tp/pull/210), + [#234](https://github.com/AY2223S1-CS2103T-W11-4/tp/pull/234), + [#245](https://github.com/AY2223S1-CS2103T-W11-4/tp/pull/245),) * **Documentation**: * User Guide: - * Added documentation for the features + * Edited documentation for the features + * Vetted the documentation for any broken links * Developer Guide: * Added design details of the Model class ([#56](https://github.com/AY2223S1-CS2103T-W11-4/tp/pull/56), [#57](https://github.com/AY2223S1-CS2103T-W11-4/tp/pull/57)) * Added Model class UML diagram ([#59](https://github.com/AY2223S1-CS2103T-W11-4/tp/pull/59)) + * Added implementation details for export to PDF command ([#245](https://github.com/AY2223S1-CS2103T-W11-4/tp/pull/245)) -* **Community**: - * Reported bugs and suggestions for other teams in the class - +* **Team-based Tasks**: + * Enabled assertion in gradle ([#89](https://github.com/AY2223S1-CS2103T-W11-4/tp/pull/89)) + * Created milestone v1.4 + * Made use of issue tracker + * Provided pull request reviews for teammates * **Tools**: * Integrated a third party library (Apache PDFBox) to the project ([#97](https://github.com/AY2223S1-CS2103T-W11-4/tp/pull/97), [#118](https://github.com/AY2223S1-CS2103T-W11-4/tp/pull/118), [#126](https://github.com/AY2223S1-CS2103T-W11-4/tp/pull/126)) - -* _{you can add/remove categories in the list above}_ diff --git a/src/main/java/seedu/waddle/model/itinerary/Itinerary.java b/src/main/java/seedu/waddle/model/itinerary/Itinerary.java index a206735d84a..426dd1eb206 100644 --- a/src/main/java/seedu/waddle/model/itinerary/Itinerary.java +++ b/src/main/java/seedu/waddle/model/itinerary/Itinerary.java @@ -217,7 +217,7 @@ public Item getItem(MultiIndex index) { public Item planItem(Index itemIndex, DayNumber dayNumber, LocalTime startTime) throws CommandException { Item item; try { - item = this.unscheduledItemList.get(itemIndex.getZeroBased()); + item = this.unscheduledItemList.get(itemIndex.getZeroBased()); } catch (IndexOutOfBoundsException e) { throw new CommandException(Messages.MESSAGE_INVALID_ITEM_DISPLAYED_INDEX); } From 3dfaf081f3ce15f11537c78f4ea2daef15a66651 Mon Sep 17 00:00:00 2001 From: ningtan11 <97378883+ningtan11@users.noreply.github.com> Date: Mon, 7 Nov 2022 22:32:46 +0800 Subject: [PATCH 02/25] UG final --- docs/UserGuide.md | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/docs/UserGuide.md b/docs/UserGuide.md index 20c82b64710..269a6196c69 100644 --- a/docs/UserGuide.md +++ b/docs/UserGuide.md @@ -66,8 +66,9 @@ To begin planning your travels with Waddle, simply set it up as follows: Note how the app contains some sample data.
![Ui](images/Ui.png) -And you're ready to waddle! To execute any command, type it command in the command box and press Enter. e.g. typing **`help`** and pressing Enter will open the help window.
- Some example commands you can try: +And you're ready to waddle! To execute any command, type it command in the command box and press Enter. e.g. typing **`help`** and pressing Enter will open the help window. + +Some example commands you can try: * **`list`** : Lists all itineraries. @@ -226,6 +227,8 @@ Examples: * `edit 1 du/15 sd/2023-11-03` Edits the duration and start date of the first itinerary to be `15` and `2023-11-03` respectively. * `edit 2 c/India` Edits the country of the second itinerary to be `India`. +
+ ### Deleting an itinerary : `delete` Deletes the specified itinerary from Waddle. @@ -320,6 +323,8 @@ Examples: * `add d/Go to the Louvre p/2 du/1` * `add d/Skiing du/14 c/100` +
+ ### Editing the details of an item : `edit` Edits an existing item in the item list. From 89857caef75fef9e1f48b826881697269ea9b418 Mon Sep 17 00:00:00 2001 From: ciaoosuuu <> Date: Mon, 7 Nov 2022 22:33:57 +0800 Subject: [PATCH 03/25] Fix stylecheck --- docs/team/ciaoosuuu.md | 1 + src/main/java/seedu/waddle/model/itinerary/Itinerary.java | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/docs/team/ciaoosuuu.md b/docs/team/ciaoosuuu.md index 4d80f463fbe..aaa1b592c7c 100644 --- a/docs/team/ciaoosuuu.md +++ b/docs/team/ciaoosuuu.md @@ -62,6 +62,7 @@ it was necessary to look through the heavy documentation to implement this featu * Created milestone v1.4 * Made use of issue tracker * Provided pull request reviews for teammates + * **Tools**: * Integrated a third party library (Apache PDFBox) to the project ([#97](https://github.com/AY2223S1-CS2103T-W11-4/tp/pull/97), diff --git a/src/main/java/seedu/waddle/model/itinerary/Itinerary.java b/src/main/java/seedu/waddle/model/itinerary/Itinerary.java index 426dd1eb206..a206735d84a 100644 --- a/src/main/java/seedu/waddle/model/itinerary/Itinerary.java +++ b/src/main/java/seedu/waddle/model/itinerary/Itinerary.java @@ -217,7 +217,7 @@ public Item getItem(MultiIndex index) { public Item planItem(Index itemIndex, DayNumber dayNumber, LocalTime startTime) throws CommandException { Item item; try { - item = this.unscheduledItemList.get(itemIndex.getZeroBased()); + item = this.unscheduledItemList.get(itemIndex.getZeroBased()); } catch (IndexOutOfBoundsException e) { throw new CommandException(Messages.MESSAGE_INVALID_ITEM_DISPLAYED_INDEX); } From 4598d457e1d10ab694229f56e584cbf3ba63aed1 Mon Sep 17 00:00:00 2001 From: ningtan11 <97378883+ningtan11@users.noreply.github.com> Date: Mon, 7 Nov 2022 22:34:17 +0800 Subject: [PATCH 04/25] Update UserGuide.md --- docs/UserGuide.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/UserGuide.md b/docs/UserGuide.md index 269a6196c69..d5029c519c2 100644 --- a/docs/UserGuide.md +++ b/docs/UserGuide.md @@ -67,6 +67,7 @@ To begin planning your travels with Waddle, simply set it up as follows: ![Ui](images/Ui.png) And you're ready to waddle! To execute any command, type it command in the command box and press Enter. e.g. typing **`help`** and pressing Enter will open the help window. +
Some example commands you can try: From e9b207798341b72e63b72defcce07fea1c66f09c Mon Sep 17 00:00:00 2001 From: Clement Foo Date: Mon, 7 Nov 2022 22:39:51 +0800 Subject: [PATCH 05/25] Update ppp --- docs/UserGuide.md | 14 ++++++------- docs/team/cfsy.md | 53 ++++++++++++++++++++++++++++++----------------- 2 files changed, 41 insertions(+), 26 deletions(-) diff --git a/docs/UserGuide.md b/docs/UserGuide.md index cf6d1beed99..b86e34fbc7a 100644 --- a/docs/UserGuide.md +++ b/docs/UserGuide.md @@ -65,7 +65,7 @@ To begin planning your travels with Waddle, simply set it up as follows: Note how the app contains some sample data.
![Ui](images/Ui.png) -And you're ready to waddle! To execute any command, type it command in the command box and press Enter. e.g. typing **`help`** and pressing Enter will open the help window.
+And you're ready to waddle! To execute any command, type the command in the command box and press Enter. e.g. typing **`help`** and pressing Enter will open the help window.
Some example commands you can try: * **`list`** : Lists all itineraries. @@ -133,7 +133,7 @@ The main page, or home page, of Waddle displays the list of itineraries you have [Commands exclusive to the main page](#commands-on-the-main-page) can help you: * [add](#creating-a-new-itinerary--add) new itineraries -* [view](#listing-all-itineraries--list) or [find](#locating-itineraries-by-name--find) existing itineraries +* [list](#listing-all-itineraries--list) or [find](#locating-itineraries-by-name--find) existing itineraries * [edit](#editing-the-details-of-an-itinerary--edit) or [delete](#deleting-an-itinerary--delete) existing itineraries * [clear](#clearing-itineraries--clear) all existing itineraries @@ -269,10 +269,10 @@ Here's an example of how the item planning page looks like:
-[Commands exclusive to the planning page](#commands-on-the-planning-page) can help you: +[Commands exclusive to the planning page](#commands-on-the-item-planning-page) can help you: * [add](#adding-an-item--add) new items * [edit](#editing-the-details-of-an-item--edit) or [delete](#deleting-an-item--delete) existing items -* [view](viewing-vacant-time-slots--free) the vacant time slots on your itinerary +* [view](#viewing-vacant-timeslots--free) the vacant time slots on your itinerary * [schedule](#scheduling-an-item--plan) or [unschedule](#unscheduling-an-item--unplan) items * export your itinerary via your [clipboard](#copying-to-clipboard--copy) or as a [pdf](#exporting-as-pdf-file--pdf) file @@ -481,7 +481,7 @@ If your changes to the data file makes its format invalid, Waddle will discard a ### Home page commands | Action | Format, Examples | -| ------------------------------------------------------------------ |-------------------------------------------------------------------------------------------------------------------------------------------------------------------| +|------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------| | [**Help**](#viewing-help--help) | `help` | | [**Add Itinerary**](#creating-a-new-itinerary--add) | `add d/DESCRIPTION sd/START DATE du/DURATION [c/COUNTRY] [p/NUMBER OF WADDLERS] [b/BUDGET]`
e.g., `add d/Germanyyyy sd/2025-05-10 du/14 c/Germany p/4 b/7500` | | [**List Itineraries**](#listing-all-itineraries--list) | `list` | @@ -497,7 +497,7 @@ If your changes to the data file makes its format invalid, Waddle will discard a ### Item planning page commands | Action | Format, Examples | -| -------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------- | +|--------------------------------------------------------------|----------------------------------------------------------------------------------------------------------| | [**Add Item**](#adding-an-item--add) | `add d/DESCRIPTION [p/PRIORITY] [c/COST] [du/DURATION]`
e.g.,`add d/Visit Taj Mahal p/5 c/40 du/180` | | [**Edit Item**](#editing-the-details-of-an-item--edit) | `edit INDEX [d/DESCRIPTION] [p/PRIORITY] [c/COST] [du/DURATION]`
e.g., `edit 4.1 c/50` | | [**Delete Item**](#deleting-an-item--delete) | `delete INDEX`
e.g., `delete 3` | @@ -506,5 +506,5 @@ If your changes to the data file makes its format invalid, Waddle will discard a | [**View Vacant Timeslots**](#viewing-vacant-timeslots--free) | `free` | | [**Return to Main Page**](#returning-to-main-page--home) | `home` | | [**Copy to clipboard**](#copying-to-clipboard--copy) | `copy` | -| [**Export to PDF**](#exporting-to-pdf-file--pdf) | `pdf` | +| [**Export to PDF**](#exporting-as-pdf-file--pdf) | `pdf` | | [**Exit**](#exiting-waddle--exit) | `exit` | diff --git a/docs/team/cfsy.md b/docs/team/cfsy.md index aea9b926937..22f52a83982 100644 --- a/docs/team/cfsy.md +++ b/docs/team/cfsy.md @@ -14,32 +14,39 @@ Given below are my contributions to the project. * **Enhancements Implemented**: * Implemented the following features: - * New UI + * New UI — Brand new UI for Waddle * Created new classes for UI elements * Implemented UI page change for `select` and `home` commands - * `select` command + * (Pull requests [\#45](https://github.com/AY2223S1-CS2103T-W11-4/tp/pull/45), [\#83](https://github.com/AY2223S1-CS2103T-W11-4/tp/pull/83), [\#94](https://github.com/AY2223S1-CS2103T-W11-4/tp/pull/94), [\#96](https://github.com/AY2223S1-CS2103T-W11-4/tp/pull/96), [\#98](https://github.com/AY2223S1-CS2103T-W11-4/tp/pull/98), [\#124](https://github.com/AY2223S1-CS2103T-W11-4/tp/pull/124), [\#132](https://github.com/AY2223S1-CS2103T-W11-4/tp/pull/132)) + * `select` command — Allows the user to select an itinerary and enter the itinerary planning page * Created `SelectCommand` and `SelectCommandParser` classes - * `home` command + * (Pull requests [\#32](https://github.com/AY2223S1-CS2103T-W11-4/tp/pull/32), [\#80](https://github.com/AY2223S1-CS2103T-W11-4/tp/pull/80)) + * `home` command — Allows the user to return to the home page * Created `HomeCommand` class - * `free` command + * (Pull request [\#32](https://github.com/AY2223S1-CS2103T-W11-4/tp/pull/32)) + * `free` command — Lists the vacant time slots in an itinerary * Created `FreeCommand` class - * `copy` command + * (Pull request [\#103](https://github.com/AY2223S1-CS2103T-W11-4/tp/pull/103)) + * `copy` command — Copies the itinerary in a text format into the user's clipboard * Created `CopyCommand` class + * (Pull request [\#127](https://github.com/AY2223S1-CS2103T-W11-4/tp/pull/127)) * Created the following supporting classes: - * `StageManager` class to keep track of the current page and selected itinerary - * `Day` class to encapsulate a day in an itinerary - * `StartTime` class to encapsulate a starting time - * `Text` class to abstract text formatting related tasks + * `StageManager` — class to keep track of the current page and selected itinerary (Pull request [\#32](https://github.com/AY2223S1-CS2103T-W11-4/tp/pull/32)) + * `Day` — class to encapsulate a day in an itinerary (Pull requests [\#75](https://github.com/AY2223S1-CS2103T-W11-4/tp/pull/75), [\#78](https://github.com/AY2223S1-CS2103T-W11-4/tp/pull/78)) + * `StartTime` — class to encapsulate a starting time (Pull request [\#79](https://github.com/AY2223S1-CS2103T-W11-4/tp/pull/79)) + * `Text` — class to abstract text formatting related tasks (Pull request [\#127](https://github.com/AY2223S1-CS2103T-W11-4/tp/pull/127)) * Created the following UI related classes: - * `ItemCard` class for an item card - * `ItemListPanel` class for a list of item cards - * `ItemGroupCard` class for an item group which includes a label and list of item cards - * `ItemGroupListPanel` class for a list of item groups + * `ItemCard` — class for an item card + * `ItemListPanel` — class for a list of item cards + * `ItemGroupCard` — class for an item group which includes a label and list of item cards + * `ItemGroupListPanel` — class for a list of item groups + * (Pull requests [\#83](https://github.com/AY2223S1-CS2103T-W11-4/tp/pull/83), [\#94](https://github.com/AY2223S1-CS2103T-W11-4/tp/pull/94), [\#96](https://github.com/AY2223S1-CS2103T-W11-4/tp/pull/96)) * Completed the following miscellaneous tasks: - * Implement logic for time conflict checks when planning items and editing itineraries/items - * Fix `edit` command implementation to correctly copy unscheduled items to the new edited itinerary - * Implement 2 decimal place representation of floats for budget and cost - * + * Implement logic for time conflict checks when planning items and editing itineraries/items (Pull request [\#134](https://github.com/AY2223S1-CS2103T-W11-4/tp/pull/134)) + * Implement 2 decimal place representation of floats for budget and cost (Pull request [\#195](https://github.com/AY2223S1-CS2103T-W11-4/tp/pull/195)) + * PED bug fixes (Pull request [\#194](https://github.com/AY2223S1-CS2103T-W11-4/tp/pull/194)) + * Wrote tests in the following pull requests + * Pull requests [\#203](https://github.com/AY2223S1-CS2103T-W11-4/tp/pull/203), [\#220](https://github.com/AY2223S1-CS2103T-W11-4/tp/pull/220), [\#224](https://github.com/AY2223S1-CS2103T-W11-4/tp/pull/224), [\#233](https://github.com/AY2223S1-CS2103T-W11-4/tp/pull/233), [\#236](https://github.com/AY2223S1-CS2103T-W11-4/tp/pull/236), [\#243](https://github.com/AY2223S1-CS2103T-W11-4/tp/pull/243) * **Documentation**: @@ -48,6 +55,7 @@ Given below are my contributions to the project. * `add (itinerary)`, `add (item)` * Wrote the Notes section for the following commands * `add (itinerary)`, `add (item)`, `edit (itinerary)`, `edit (item)`, `plan`, `copy` + * (Pull requests [\#16](https://github.com/AY2223S1-CS2103T-W11-4/tp/pull/16), [\#132](https://github.com/AY2223S1-CS2103T-W11-4/tp/pull/132)) * Developer Guide: * Updated the original AB3 diagrams to correctly reflect our application * Created the following diagrams @@ -59,9 +67,10 @@ Given below are my contributions to the project. * Implementation of the `Plan/Unplan` feature * Implementation of the `Edit (item)` feature * Implementation of the `Edit (itinerary)` feature - * Implementation of the `Export` feature + * Implementation of the `Copy` feature * User stories - * Part of the "Add an Itinerary" use case + * The "Add an Itinerary" use case + * (Pull requests [\#17](https://github.com/AY2223S1-CS2103T-W11-4/tp/pull/17), [\#62](https://github.com/AY2223S1-CS2103T-W11-4/tp/pull/62), [\#107](https://github.com/AY2223S1-CS2103T-W11-4/tp/pull/107)) * **Contributions to team-based tasks**: @@ -70,4 +79,10 @@ Given below are my contributions to the project. * Lead discussions in implementation and design * Allocate work and set internal deadlines * Keep track of deadlines and deliverables + * Managed releases `v1.3.1` and `v1.3.2` (2 releases) on GitHub + + +* **Tools**: + * Used Java AWT Clipboard for copying itineraries to the user's clipboard (Pull request [\#127](https://github.com/AY2223S1-CS2103T-W11-4/tp/pull/127)) + * Integrated a third party library (commons-lang3) to the project to check for OS type before saving the PDF file (Pull request [\#131](https://github.com/AY2223S1-CS2103T-W11-4/tp/pull/131)) From 5a1bb9a25377b74f6a9da50c18e9be2912944763 Mon Sep 17 00:00:00 2001 From: Clement Foo Date: Mon, 7 Nov 2022 22:43:59 +0800 Subject: [PATCH 06/25] Fix pp typo --- docs/team/ciaoosuuu.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/team/ciaoosuuu.md b/docs/team/ciaoosuuu.md index aaa1b592c7c..ab0d9226324 100644 --- a/docs/team/ciaoosuuu.md +++ b/docs/team/ciaoosuuu.md @@ -57,7 +57,7 @@ it was necessary to look through the heavy documentation to implement this featu * Added Model class UML diagram ([#59](https://github.com/AY2223S1-CS2103T-W11-4/tp/pull/59)) * Added implementation details for export to PDF command ([#245](https://github.com/AY2223S1-CS2103T-W11-4/tp/pull/245)) -* **Team-based Tasks**: +* **Team-based tasks**: * Enabled assertion in gradle ([#89](https://github.com/AY2223S1-CS2103T-W11-4/tp/pull/89)) * Created milestone v1.4 * Made use of issue tracker From f4639e3fdbd8a22df4ff0b012e7f7c41107c9c36 Mon Sep 17 00:00:00 2001 From: ciaoosuuu <> Date: Mon, 7 Nov 2022 22:52:43 +0800 Subject: [PATCH 07/25] Update UML diagrams --- docs/diagrams/LogicClassDiagram.puml | 6 +++--- docs/diagrams/ParserClasses.puml | 8 ++++---- docs/images/LogicClassDiagram.png | Bin 34952 -> 37084 bytes docs/images/ParserClasses.png | Bin 27452 -> 29803 bytes 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/docs/diagrams/LogicClassDiagram.puml b/docs/diagrams/LogicClassDiagram.puml index d4193173e18..8ac8ae1f85e 100644 --- a/docs/diagrams/LogicClassDiagram.puml +++ b/docs/diagrams/LogicClassDiagram.puml @@ -6,7 +6,7 @@ skinparam classBackgroundColor LOGIC_COLOR package Logic { -Class AddressBookParser +Class WaddleParser Class XYZCommand Class CommandResult Class "{abstract}\nCommand" as Command @@ -27,8 +27,8 @@ Class HiddenOutside #FFFFFF HiddenOutside ..> Logic LogicManager .right.|> Logic -LogicManager -right->"1" AddressBookParser -AddressBookParser ..> XYZCommand : creates > +LogicManager -right->"1" WaddleParser +WaddleParser ..> XYZCommand : creates > XYZCommand -up-|> Command LogicManager .left.> Command : executes > diff --git a/docs/diagrams/ParserClasses.puml b/docs/diagrams/ParserClasses.puml index 0c7424de6e0..c2b507e2860 100644 --- a/docs/diagrams/ParserClasses.puml +++ b/docs/diagrams/ParserClasses.puml @@ -9,7 +9,7 @@ Class XYZCommand package "Parser classes"{ Class "<>\nParser" as Parser -Class AddressBookParser +Class WaddleParser Class XYZCommandParser Class CliSyntax Class ParserUtil @@ -19,12 +19,12 @@ Class Prefix } Class HiddenOutside #FFFFFF -HiddenOutside ..> AddressBookParser +HiddenOutside ..> WaddleParser -AddressBookParser .down.> XYZCommandParser: creates > +WaddleParser .down.> XYZCommandParser: creates > XYZCommandParser ..> XYZCommand : creates > -AddressBookParser ..> Command : returns > +WaddleParser ..> Command : returns > XYZCommandParser .up.|> Parser XYZCommandParser ..> ArgumentMultimap XYZCommandParser ..> ArgumentTokenizer diff --git a/docs/images/LogicClassDiagram.png b/docs/images/LogicClassDiagram.png index 9e9ba9f79e50defa935443aa80c54165e8b74564..374ed35f695bfa11f102c9de57dc7f9f4bc80cb1 100644 GIT binary patch literal 37084 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%0A{?cn)Z? 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 i7#LPi4GfIK!Y!;CQhqp?Weo677>IL%wtX diff --git a/docs/images/ParserClasses.png b/docs/images/ParserClasses.png index e7b4c8880cda5434408fb01c2b02a945f80ab422..0a57aefbb210e329b3f2b0bebde7620e99082ac4 100644 GIT binary patch literal 29803 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 CzXP2B literal 27452 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 z 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 P4UU|&vQ&Yj(Z~M-HTqlB From 9b406bbc3ed1924d07bda3aab2574dcd27c6e9ad Mon Sep 17 00:00:00 2001 From: ningtan11 <97378883+ningtan11@users.noreply.github.com> Date: Mon, 7 Nov 2022 22:53:18 +0800 Subject: [PATCH 08/25] Fix links in UG --- docs/UserGuide.md | 18 +++++++----------- 1 file changed, 7 insertions(+), 11 deletions(-) diff --git a/docs/UserGuide.md b/docs/UserGuide.md index d5029c519c2..3208d609de9 100644 --- a/docs/UserGuide.md +++ b/docs/UserGuide.md @@ -94,9 +94,7 @@ For more commands and their details, refer to the [Features](#features) section * Words in `UPPER_CASE` are the parameters to be supplied by the user.
- e.g. in `add d/DESCRIPTION ...`, `DESCRIPTION` is a parameter which can be used as `add d/My Japan Trip`. - -* Unlesss stated otherwise, all parameters should contain alphanumerical characters only. - + * Items in square brackets are optional.
- e.g. `d/DESCRIPTION [c/COUNTRY] sd/START_DATE du/DURATION` can be used as `d/My Japan Trip c/Japan sd/2023-04-01 du/14` or as `d/My Japan Trip sd/2023-04-01 du/14`. @@ -167,8 +165,7 @@ alphanumeric characters, spaces and these following special characters: `()&!':. **:information_source: Notes:**
-* You cannot add an itinerary with the same description as an existing itinerary.
- +* You cannot add an itinerary with the same description as an existing itinerary. * Waddle only accepts english letters and spaces for `COUNTRY`, special characters like `'`, `&`, `!` are not allowed.
- Example of invalid input: `c/Côte d'Ivoire`, `c/中国` * The budget input should only contain numbers and one decimal point.
@@ -277,10 +274,10 @@ Here's an example of how the item planning page looks like:
-[Commands exclusive to the planning page](#commands-on-the-planning-page) can help you: +[Commands exclusive to the planning page](#commands-on-the-item-planning-page) can help you: * [add](#adding-an-item--add) new items * [edit](#editing-the-details-of-an-item--edit) or [delete](#deleting-an-item--delete) existing items -* [view](viewing-vacant-time-slots--free) the vacant time slots on your itinerary +* [view](#viewing-vacant-time-slots--free) the vacant time slots on your itinerary * [schedule](#scheduling-an-item--plan) or [unschedule](#unscheduling-an-item--unplan) items * export your itinerary via your [clipboard](#copying-to-clipboard--copy) or as a [pdf](#exporting-as-pdf-file--pdf) file @@ -424,8 +421,7 @@ Here's an example of how the copied text would look like:
**:information_source: Note:**
-* The generated text includes all days within the itinerary, even if there are no items planned for the day.
- +* The generated text includes all days within the itinerary, even if there are no items planned for the day. * The generated text does not include the items in the Wishlist. For items to be reflected in the generated text, they must be planned.
@@ -499,7 +495,7 @@ If your changes to the data file makes its format invalid, Waddle will discard a | [**Edit Itinerary**](#editing-the-details-of-an-itinerary--edit) | `edit INDEX [n/NAME] [c/COUNTRY] [du/DURATION] [s/START DATE] [p/NUMBER OF WADDLERS] [b/BUDGET]`
e.g.,`edit 1 du/15 sd/2025-04-10` | | [**Delete Itinerary**](#deleting-an-itinerary--delete) | `delete INDEX`
e.g., `delete 3` | | [**Clear Itineraries**](#clearing-itineraries--clear) | `clear` | -| [**Find Itinerary**](#locating-itineraries-by-name--find) | `find KEYWORD [MORE_KEYWORDS]`
e.g., `find India Trip` | +| [**Find Itinerary**](#locating-itineraries-by-description--find) | `find KEYWORD [MORE_KEYWORDS]`
e.g., `find India Trip` | | [**Select Itinerary**](#selecting-an-itinerary--select) | `select INDEX`
e.g., `select 3` | | [**Exit**](#exiting-waddle--exit) | `exit` | @@ -517,5 +513,5 @@ If your changes to the data file makes its format invalid, Waddle will discard a | [**View Vacant Timeslots**](#viewing-vacant-timeslots--free) | `free` | | [**Return to Main Page**](#returning-to-main-page--home) | `home` | | [**Copy to clipboard**](#copying-to-clipboard--copy) | `copy` | -| [**Export to PDF**](#exporting-to-pdf-file--pdf) | `pdf` | +| [**Export to PDF**](#exporting-as-pdf-file--pdf) | `pdf` | | [**Exit**](#exiting-waddle--exit) | `exit` | From 6210003505e1e8ef58a74d8fba58c348f3aa6164 Mon Sep 17 00:00:00 2001 From: Clement Foo Date: Mon, 7 Nov 2022 22:55:28 +0800 Subject: [PATCH 09/25] Update dg and ppp --- docs/DeveloperGuide.md | 4 +--- docs/team/cfsy.md | 11 ++--------- 2 files changed, 3 insertions(+), 12 deletions(-) diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index b273aec4027..5f42cb69673 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -177,7 +177,7 @@ Additionally, we will explain the methods of particular concern below. * `Item#getStartTime()` — Returns the start time of the item. * `Item#getEndTime()` — Returns the end time of the item. -Given below is an example usage scenario and how the Plan/Unplan mechanism behaves at each step. +Given below is an example usage scenario and how the Plan/Unplan mechanism behaves at each step. The sequence diagram is a partial diagram showing omitting the details of how the `PlanCommand` is executed. This detail will be shown in the next sequence diagram. ![PlanSequenceDiagram](images/PlanSequenceDiagram.png) @@ -195,8 +195,6 @@ Step 5. `Day`self invokes `Day#getConflictingItems(item)`. If there are no confl Step 6. If the item is successfully added, a `CommandResult` object is created with the success message. -The following sequence diagram shows how the undo operation works: -
:information_source: **Note:** The Unplan command works in a similar manner. Instead of `Itinerary#planItem(itemIndex, dayNumber, startTime)` and `Day#addItem(item)`, `Itinerary#unplanItem(MultiIndex)` and `Day#removeitem(Index)` are called instead.
diff --git a/docs/team/cfsy.md b/docs/team/cfsy.md index 22f52a83982..879bc25b8eb 100644 --- a/docs/team/cfsy.md +++ b/docs/team/cfsy.md @@ -59,17 +59,10 @@ Given below are my contributions to the project. * Developer Guide: * Updated the original AB3 diagrams to correctly reflect our application * Created the following diagrams - * `ItineraryClassDiagram` - * `PlanSequenceDiagram` - * `PlanSequenceDiagram2` + * `ItineraryClassDiagram`, `PlanSequenceDiagram`, `PlanSequenceDiagram2` * Wrote the content for the following sections * `StageManager` under the Architecture section - * Implementation of the `Plan/Unplan` feature - * Implementation of the `Edit (item)` feature - * Implementation of the `Edit (itinerary)` feature - * Implementation of the `Copy` feature - * User stories - * The "Add an Itinerary" use case + * Implementation of the `Plan/Unplan`, `Edit (item)`, and `Edit (itinerary)` features * (Pull requests [\#17](https://github.com/AY2223S1-CS2103T-W11-4/tp/pull/17), [\#62](https://github.com/AY2223S1-CS2103T-W11-4/tp/pull/62), [\#107](https://github.com/AY2223S1-CS2103T-W11-4/tp/pull/107)) From ba927711cdd19b50c4866995abfc2a9b30469fe8 Mon Sep 17 00:00:00 2001 From: ningtan11 <97378883+ningtan11@users.noreply.github.com> Date: Mon, 7 Nov 2022 23:01:13 +0800 Subject: [PATCH 10/25] Fix links UG --- docs/UserGuide.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/UserGuide.md b/docs/UserGuide.md index 40b1fffa0aa..e5745e1566e 100644 --- a/docs/UserGuide.md +++ b/docs/UserGuide.md @@ -276,7 +276,7 @@ Here's an example of how the item planning page looks like: [Commands exclusive to the planning page](#commands-on-the-item-planning-page) can help you: * [add](#adding-an-item--add) new items * [edit](#editing-the-details-of-an-item--edit) or [delete](#deleting-an-item--delete) existing items -* [view](#viewing-vacant-time-slots--free) the vacant time slots on your itinerary +* [view](#viewing-vacant-timeslots--free) the vacant time slots on your itinerary * [schedule](#scheduling-an-item--plan) or [unschedule](#unscheduling-an-item--unplan) items * export your itinerary via your [clipboard](#copying-to-clipboard--copy) or as a [pdf](#exporting-as-pdf-file--pdf) file From 4d1c7ec2bb4b428304af78232d0ad19c5a3a50b1 Mon Sep 17 00:00:00 2001 From: Henry <> Date: Mon, 7 Nov 2022 23:04:10 +0800 Subject: [PATCH 11/25] Add Budget tests --- .../waddle/model/itinerary/BudgetTest.java | 40 +++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 src/test/java/seedu/waddle/model/itinerary/BudgetTest.java diff --git a/src/test/java/seedu/waddle/model/itinerary/BudgetTest.java b/src/test/java/seedu/waddle/model/itinerary/BudgetTest.java new file mode 100644 index 00000000000..db4746048ad --- /dev/null +++ b/src/test/java/seedu/waddle/model/itinerary/BudgetTest.java @@ -0,0 +1,40 @@ +package seedu.waddle.model.itinerary; + +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertTrue; +import static seedu.waddle.testutil.Assert.assertThrows; + +import org.junit.jupiter.api.Test; + +public class BudgetTest { + + @Test + public void constructor_null_throwsNullPointerException() { + assertThrows(NullPointerException.class, () -> new Budget(null)); + } + + @Test + public void constructor_invalidBudget_throwsIllegalArgumentException() { + assertThrows(IllegalArgumentException.class, () -> new Budget("-0.50")); + assertThrows(IllegalArgumentException.class, () -> new Budget("1000000.50")); + + } + + @Test + public void isValidBudgetTest() { + // null budget + assertThrows(NullPointerException.class, () -> Budget.isValidBudget(null)); + + // invalid budget + assertFalse(Budget.isValidBudget("")); // empty string + assertFalse(Budget.isValidBudget(" ")); // spaces only + assertFalse(Budget.isValidBudget("$50")); // special characters + assertFalse(Budget.isValidBudget("-1")); // negative budget + assertFalse(Budget.isValidBudget("1000001")); // budget too high + + // valid budget + assertTrue(Budget.isValidBudget("0")); + assertTrue(Budget.isValidBudget("1000000")); + assertTrue(Budget.isValidBudget("500.50")); + } +} From cc955356d8eb26d3b50b14e2b3596d7384cf8610 Mon Sep 17 00:00:00 2001 From: Clement Foo Date: Mon, 7 Nov 2022 23:05:54 +0800 Subject: [PATCH 12/25] Update ug --- docs/UserGuide.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/UserGuide.md b/docs/UserGuide.md index e5745e1566e..b4b21b185f9 100644 --- a/docs/UserGuide.md +++ b/docs/UserGuide.md @@ -137,7 +137,7 @@ The main page, or home page, of Waddle displays the list of itineraries you have [Commands exclusive to the main page](#commands-on-the-main-page) can help you: * [add](#creating-a-new-itinerary--add) new itineraries -* [list](#listing-all-itineraries--list) or [find](#locating-itineraries-by-name--find) existing itineraries +* [list](#listing-all-itineraries--list) or [find](#locating-itineraries-by-description--find) existing itineraries * [edit](#editing-the-details-of-an-itinerary--edit) or [delete](#deleting-an-itinerary--delete) existing itineraries * [clear](#clearing-itineraries--clear) all existing itineraries @@ -183,7 +183,7 @@ Shows a list of all itineraries in Waddle. Format: `list` -### Locating itineraries by name : `find` +### Locating itineraries by description : `find` Finds itineraries with names containing any of the given keywords. @@ -390,7 +390,7 @@ Examples: * `plan 2 d/3 st/12:00` would add the 2nd item in the Wishlist to Day 3, starting at 12pm. * `plan 1 d/1 st/14:50:10` would add the 1st item in the Wishlist to Day 1, starting at 14:50pm, 10 seconds in. -

+
### Unscheduling an item : `unplan` @@ -494,7 +494,7 @@ If your changes to the data file makes its format invalid, Waddle will discard a | [**Edit Itinerary**](#editing-the-details-of-an-itinerary--edit) | `edit INDEX [n/NAME] [c/COUNTRY] [du/DURATION] [s/START DATE] [p/NUMBER OF WADDLERS] [b/BUDGET]`
e.g.,`edit 1 du/15 sd/2025-04-10` | | [**Delete Itinerary**](#deleting-an-itinerary--delete) | `delete INDEX`
e.g., `delete 3` | | [**Clear Itineraries**](#clearing-itineraries--clear) | `clear` | -| [**Find Itinerary**](#locating-itineraries-by-description--find) | `find KEYWORD [MORE_KEYWORDS]`
e.g., `find India Trip` | +| [**Find Itinerary**](#locating-itineraries-by-description--find) | `find KEYWORD [MORE_KEYWORDS]`
e.g., `find India Trip` | | [**Select Itinerary**](#selecting-an-itinerary--select) | `select INDEX`
e.g., `select 3` | | [**Exit**](#exiting-waddle--exit) | `exit` | From 677df8e64dbb7219ada595698ffb3010bc18d8be Mon Sep 17 00:00:00 2001 From: seox123 Date: Mon, 7 Nov 2022 23:12:02 +0800 Subject: [PATCH 13/25] Update project portfolio page --- docs/team/seox123.md | 52 +++++++++++++++---------- src/main/java/seedu/waddle/MainApp.java | 2 +- 2 files changed, 33 insertions(+), 21 deletions(-) diff --git a/docs/team/seox123.md b/docs/team/seox123.md index ea62a3885be..8b10da2e99d 100644 --- a/docs/team/seox123.md +++ b/docs/team/seox123.md @@ -9,37 +9,49 @@ Waddle is a simple, no-frills travel planning application catered to people who Given below are my contributions to the project. -* **New Feature**: Add an edit item command. +* **New Feature**: Add an edit item command. [#49](https://github.com/AY2223S1-CS2103T-W11-4/tp/pull/49) * What it does: This command allows users to edit an item in their unscheduled item list. * Justification: This feature improves the product significantly as users can easily edit minor details in the items in their item list without having to delete and re-add the entire item. - * Highlights: The - - -* **Code contributed**: [RepoSense link](https://nus-cs2103-ay2223s1.github.io/tp-dashboard/?search=ciaoosuuu&breakdown=true&sort=groupTitle&sortWithin=title&since=2022-09-16&timeframe=commit&mergegroup=&groupSelect=groupByRepos&checkedFileTypes=docs~functional-code~test-code~other) + * Highlights: Writing the `EditItemDescriptor` class allowed me to learn how to use a defensive copy to prevent + the user from making any unwanted changes to the original copy of the item. +* **New Feature**: Add a multi index class. [#76](https://github.com/AY2223S1-CS2103T-W11-4/tp/pull/76) + * What it does: Allows for access of items inside the day list, using a more complex version of an `Index`. + * Justification: There is a need for a different indexing of items that are in the day list compared to the + unscheduled item list. This is to allow users to easily access items in both lists from the same item-planning + page. + * Highlights: It was challenging coming up with a way to represent the different indexing that would satisfy our + needs. +* **New Feature**: Add a plan and unplan command. [#85](https://github.com/AY2223S1-CS2103T-W11-4/tp/pull/85), [#87](https://github.com/AY2223S1-CS2103T-W11-4/tp/pull/87) + * What it does: Allows for scheduling and unscheduling of items in the wishlist, to a specific day and time. + * Justification: As a travel planning application, users will need to schedule their activities in order to create a + cohesive itinerary using our app. + * Highlights: There was plenty of collaboration and discussion with team members on where to handle each aspect of + the plan and unplan commands, such as shifting the inner workings to the `Itinerary` and `Day` classes. + + + +* **Code contributed**: [RepoSense link](https://nus-cs2103-ay2223s1.github.io/tp-dashboard/?search=seox123&sort=groupTitle&sortWithin=title&timeframe=commit&mergegroup=&groupSelect=groupByRepos&breakdown=true&checkedFileTypes=docs~functional-code~test-code~other&since=2022-09-16&tabOpen=true&tabType=zoom&zFR=false&zA=seox123&zR=AY2223S1-CS2103T-W11-4%2Ftp%5Bmaster%5D&zACS=153.1875&zS=2022-09-16&zFS=seox123&zU=2022-11-07&zMG=false&zFTF=commit&zFGS=groupByRepos) * **Project management**: - * Managed releases `Waddle v1.2` and `v1.2.1` (2 releases) on GitHub + * Managed releases `Waddle v1.4.1` and `1.4.2` (2 releases) on GitHub * **Enhancements to existing features**: - * to be added soon + * Add a `Priority` field to `Item` class. [#61](https://github.com/AY2223S1-CS2103T-W11-4/tp/pull/61) + * Fix bugs and close issues. [#100](https://github.com/AY2223S1-CS2103T-W11-4/tp/pull/100), [#200](https://github.com/AY2223S1-CS2103T-W11-4/tp/pull/200), [#201](https://github.com/AY2223S1-CS2103T-W11-4/tp/pull/201), [#202](https://github.com/AY2223S1-CS2103T-W11-4/tp/pull/202) + * Write test cases. [#53](https://github.com/AY2223S1-CS2103T-W11-4/tp/pull/53), [#228](https://github.com/AY2223S1-CS2103T-W11-4/tp/pull/228), [#230](https://github.com/AY2223S1-CS2103T-W11-4/tp/pull/230), [#241](https://github.com/AY2223S1-CS2103T-W11-4/tp/pull/241) * **Documentation**: * User Guide: - * Added documentation for the features + * Updated user guide with the newly-added commands like `plan`, `unplan`, `free`, and more. [#117](https://github.com/AY2223S1-CS2103T-W11-4/tp/pull/117) + * Updated Ui snapshot of the application. [#120](https://github.com/AY2223S1-CS2103T-W11-4/tp/pull/120) * Developer Guide: - * Added design details of the Model class - ([#56](https://github.com/AY2223S1-CS2103T-W11-4/tp/pull/56), - [#57](https://github.com/AY2223S1-CS2103T-W11-4/tp/pull/57)) - * Added Model class UML diagram ([#59](https://github.com/AY2223S1-CS2103T-W11-4/tp/pull/59)) + * Added multiple use cases to the developer guide. [#51](https://github.com/AY2223S1-CS2103T-W11-4/tp/pull/51) + * Added new proposal to unplan items. [#67](https://github.com/AY2223S1-CS2103T-W11-4/tp/pull/67) + +* **Team-based tasks**: + * Conducted testing of app and opened issues. [#101](https://github.com/AY2223S1-CS2103T-W11-4/tp/issues/101), [#102](https://github.com/AY2223S1-CS2103T-W11-4/tp/issues/102) + * Made necessary changes and renaming of classes to be more suitable with our application. [#53](https://github.com/AY2223S1-CS2103T-W11-4/tp/pull/53), [#85](https://github.com/AY2223S1-CS2103T-W11-4/tp/pull/85), [#248](https://github.com/AY2223S1-CS2103T-W11-4/tp/pull/248) * **Community**: * Reported bugs and suggestions for other teams in the class - -* **Tools**: - * Integrated a third party library (Apache PDFBox) to the project - ([#97](https://github.com/AY2223S1-CS2103T-W11-4/tp/pull/97), - [#118](https://github.com/AY2223S1-CS2103T-W11-4/tp/pull/118), - [#126](https://github.com/AY2223S1-CS2103T-W11-4/tp/pull/126)) - -* _{you can add/remove categories in the list above}_ diff --git a/src/main/java/seedu/waddle/MainApp.java b/src/main/java/seedu/waddle/MainApp.java index 7cef2998fa0..82628adef99 100644 --- a/src/main/java/seedu/waddle/MainApp.java +++ b/src/main/java/seedu/waddle/MainApp.java @@ -36,7 +36,7 @@ */ public class MainApp extends Application { - public static final Version VERSION = new Version(1, 3, 2, true); + public static final Version VERSION = new Version(1, 4, 1, true); private static final Logger logger = LogsCenter.getLogger(MainApp.class); From d15192cc615321d1f0cb2dd547309b803db0ac76 Mon Sep 17 00:00:00 2001 From: Henry <> Date: Mon, 7 Nov 2022 23:13:10 +0800 Subject: [PATCH 14/25] Fix errors --- src/test/java/seedu/waddle/model/itinerary/BudgetTest.java | 1 + 1 file changed, 1 insertion(+) diff --git a/src/test/java/seedu/waddle/model/itinerary/BudgetTest.java b/src/test/java/seedu/waddle/model/itinerary/BudgetTest.java index db4746048ad..6d533ee6141 100644 --- a/src/test/java/seedu/waddle/model/itinerary/BudgetTest.java +++ b/src/test/java/seedu/waddle/model/itinerary/BudgetTest.java @@ -37,4 +37,5 @@ public void isValidBudgetTest() { assertTrue(Budget.isValidBudget("1000000")); assertTrue(Budget.isValidBudget("500.50")); } + } From a1618877b1824b59f59d69751a6553caaac2964c Mon Sep 17 00:00:00 2001 From: ningtan11 <97378883+ningtan11@users.noreply.github.com> Date: Mon, 7 Nov 2022 23:13:30 +0800 Subject: [PATCH 15/25] Update UserGuide.md --- docs/UserGuide.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/docs/UserGuide.md b/docs/UserGuide.md index b4b21b185f9..7cd7059dddc 100644 --- a/docs/UserGuide.md +++ b/docs/UserGuide.md @@ -175,7 +175,7 @@ alphanumeric characters, spaces and these following special characters: `()&!':. - e.g. `b/1000.505` will be reflected as $1,000.51. - +
### Listing all itineraries : `list` @@ -226,6 +226,8 @@ Examples: * `edit 1 du/15 sd/2023-11-03` Edits the duration and start date of the first itinerary to be `15` and `2023-11-03` respectively. * `edit 2 c/India` Edits the country of the second itinerary to be `India`. +
+ ### Deleting an itinerary : `delete` Deletes the specified itinerary from Waddle. From 5ddc5ff15107337bbdb4d6696cb5f34aa4938de3 Mon Sep 17 00:00:00 2001 From: Henry <> Date: Mon, 7 Nov 2022 23:14:09 +0800 Subject: [PATCH 16/25] Fix errors --- src/test/java/seedu/waddle/model/itinerary/BudgetTest.java | 1 - 1 file changed, 1 deletion(-) diff --git a/src/test/java/seedu/waddle/model/itinerary/BudgetTest.java b/src/test/java/seedu/waddle/model/itinerary/BudgetTest.java index 6d533ee6141..db4746048ad 100644 --- a/src/test/java/seedu/waddle/model/itinerary/BudgetTest.java +++ b/src/test/java/seedu/waddle/model/itinerary/BudgetTest.java @@ -37,5 +37,4 @@ public void isValidBudgetTest() { assertTrue(Budget.isValidBudget("1000000")); assertTrue(Budget.isValidBudget("500.50")); } - } From f17129c6672a79a5b41caa54762d06bae82034db Mon Sep 17 00:00:00 2001 From: seox123 Date: Mon, 7 Nov 2022 23:15:29 +0800 Subject: [PATCH 17/25] Remove community section --- docs/team/seox123.md | 3 --- 1 file changed, 3 deletions(-) diff --git a/docs/team/seox123.md b/docs/team/seox123.md index 8b10da2e99d..63f6ba07d12 100644 --- a/docs/team/seox123.md +++ b/docs/team/seox123.md @@ -52,6 +52,3 @@ Given below are my contributions to the project. * **Team-based tasks**: * Conducted testing of app and opened issues. [#101](https://github.com/AY2223S1-CS2103T-W11-4/tp/issues/101), [#102](https://github.com/AY2223S1-CS2103T-W11-4/tp/issues/102) * Made necessary changes and renaming of classes to be more suitable with our application. [#53](https://github.com/AY2223S1-CS2103T-W11-4/tp/pull/53), [#85](https://github.com/AY2223S1-CS2103T-W11-4/tp/pull/85), [#248](https://github.com/AY2223S1-CS2103T-W11-4/tp/pull/248) - -* **Community**: - * Reported bugs and suggestions for other teams in the class From 65657efcab3aaffe3bae987652725f53b54431b4 Mon Sep 17 00:00:00 2001 From: ningtan11 <97378883+ningtan11@users.noreply.github.com> Date: Mon, 7 Nov 2022 23:19:36 +0800 Subject: [PATCH 18/25] Update UserGuide.md --- docs/UserGuide.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/UserGuide.md b/docs/UserGuide.md index 7cd7059dddc..458c80f409a 100644 --- a/docs/UserGuide.md +++ b/docs/UserGuide.md @@ -506,6 +506,7 @@ If your changes to the data file makes its format invalid, Waddle will discard a | Action | Format, Examples | |--------------------------------------------------------------|----------------------------------------------------------------------------------------------------------| +| [**Help**](#viewing-help--help) | `help` | | [**Add Item**](#adding-an-item--add) | `add d/DESCRIPTION [p/PRIORITY] [c/COST] [du/DURATION]`
e.g.,`add d/Visit Taj Mahal p/5 c/40 du/180` | | [**Edit Item**](#editing-the-details-of-an-item--edit) | `edit INDEX [d/DESCRIPTION] [p/PRIORITY] [c/COST] [du/DURATION]`
e.g., `edit 4.1 c/50` | | [**Delete Item**](#deleting-an-item--delete) | `delete INDEX`
e.g., `delete 3` | From be703dd0faf08e3124e43de4f2c870a44e6744bf Mon Sep 17 00:00:00 2001 From: seox123 Date: Mon, 7 Nov 2022 23:21:19 +0800 Subject: [PATCH 19/25] Make more changes to ppp --- docs/team/seox123.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/docs/team/seox123.md b/docs/team/seox123.md index 63f6ba07d12..f935af9483f 100644 --- a/docs/team/seox123.md +++ b/docs/team/seox123.md @@ -39,7 +39,7 @@ Given below are my contributions to the project. * **Enhancements to existing features**: * Add a `Priority` field to `Item` class. [#61](https://github.com/AY2223S1-CS2103T-W11-4/tp/pull/61) * Fix bugs and close issues. [#100](https://github.com/AY2223S1-CS2103T-W11-4/tp/pull/100), [#200](https://github.com/AY2223S1-CS2103T-W11-4/tp/pull/200), [#201](https://github.com/AY2223S1-CS2103T-W11-4/tp/pull/201), [#202](https://github.com/AY2223S1-CS2103T-W11-4/tp/pull/202) - * Write test cases. [#53](https://github.com/AY2223S1-CS2103T-W11-4/tp/pull/53), [#228](https://github.com/AY2223S1-CS2103T-W11-4/tp/pull/228), [#230](https://github.com/AY2223S1-CS2103T-W11-4/tp/pull/230), [#241](https://github.com/AY2223S1-CS2103T-W11-4/tp/pull/241) + * Write test cases, focussing mainly on `Command` and `Parser` classes. [#53](https://github.com/AY2223S1-CS2103T-W11-4/tp/pull/53), [#228](https://github.com/AY2223S1-CS2103T-W11-4/tp/pull/228), [#230](https://github.com/AY2223S1-CS2103T-W11-4/tp/pull/230), [#241](https://github.com/AY2223S1-CS2103T-W11-4/tp/pull/241) * **Documentation**: * User Guide: @@ -52,3 +52,6 @@ Given below are my contributions to the project. * **Team-based tasks**: * Conducted testing of app and opened issues. [#101](https://github.com/AY2223S1-CS2103T-W11-4/tp/issues/101), [#102](https://github.com/AY2223S1-CS2103T-W11-4/tp/issues/102) * Made necessary changes and renaming of classes to be more suitable with our application. [#53](https://github.com/AY2223S1-CS2103T-W11-4/tp/pull/53), [#85](https://github.com/AY2223S1-CS2103T-W11-4/tp/pull/85), [#248](https://github.com/AY2223S1-CS2103T-W11-4/tp/pull/248) + +* **Community**: + * Assisted other teams in detection and reporting of bugs during the PE dry run. \ No newline at end of file From d3b5a39c37642a8c0bb68d647188c8d30c6e4d5a Mon Sep 17 00:00:00 2001 From: ciaoosuuu <> Date: Mon, 7 Nov 2022 23:21:54 +0800 Subject: [PATCH 20/25] Update ppp --- docs/team/ciaoosuuu.md | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/docs/team/ciaoosuuu.md b/docs/team/ciaoosuuu.md index ab0d9226324..d47f73a6d85 100644 --- a/docs/team/ciaoosuuu.md +++ b/docs/team/ciaoosuuu.md @@ -55,13 +55,17 @@ it was necessary to look through the heavy documentation to implement this featu ([#56](https://github.com/AY2223S1-CS2103T-W11-4/tp/pull/56), [#57](https://github.com/AY2223S1-CS2103T-W11-4/tp/pull/57)) * Added Model class UML diagram ([#59](https://github.com/AY2223S1-CS2103T-W11-4/tp/pull/59)) + * Added Logic and Parser class UML diagram ([#257](https://github.com/AY2223S1-CS2103T-W11-4/tp/pull/257)) * Added implementation details for export to PDF command ([#245](https://github.com/AY2223S1-CS2103T-W11-4/tp/pull/245)) * **Team-based tasks**: * Enabled assertion in gradle ([#89](https://github.com/AY2223S1-CS2103T-W11-4/tp/pull/89)) * Created milestone v1.4 - * Made use of issue tracker + * Made use of issue tracker to create issues and assign issues * Provided pull request reviews for teammates + +* **Community**: + * Assisted other teams by reporting more than average number of bugs for PE Dry run * **Tools**: * Integrated a third party library (Apache PDFBox) to the project From af212556af31ad8f1433ed46ce5bea532083af7e Mon Sep 17 00:00:00 2001 From: seox123 Date: Mon, 7 Nov 2022 23:23:53 +0800 Subject: [PATCH 21/25] Fix checkstyle --- docs/team/seox123.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/team/seox123.md b/docs/team/seox123.md index f935af9483f..3819e13d3c2 100644 --- a/docs/team/seox123.md +++ b/docs/team/seox123.md @@ -54,4 +54,4 @@ Given below are my contributions to the project. * Made necessary changes and renaming of classes to be more suitable with our application. [#53](https://github.com/AY2223S1-CS2103T-W11-4/tp/pull/53), [#85](https://github.com/AY2223S1-CS2103T-W11-4/tp/pull/85), [#248](https://github.com/AY2223S1-CS2103T-W11-4/tp/pull/248) * **Community**: - * Assisted other teams in detection and reporting of bugs during the PE dry run. \ No newline at end of file + * Assisted other teams in detection and reporting of bugs during the PE dry run. From cb67e909463321f794e08bf8c465e2d791c3c8f7 Mon Sep 17 00:00:00 2001 From: ningtan11 <97378883+ningtan11@users.noreply.github.com> Date: Mon, 7 Nov 2022 23:26:15 +0800 Subject: [PATCH 22/25] 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 458c80f409a..d3b1983ab9f 100644 --- a/docs/UserGuide.md +++ b/docs/UserGuide.md @@ -451,7 +451,7 @@ Here's an example of how the generated PDF would look like:
### Returning to main page : `home` -Returns you to the main itinerary list page. +Returns you to the [main itinerary list page](#the-main-page). Format: `home` From 4af33e1eff3473551b36719c9075f8edb6e34d95 Mon Sep 17 00:00:00 2001 From: ningtan11 <97378883+ningtan11@users.noreply.github.com> Date: Mon, 7 Nov 2022 23:28:02 +0800 Subject: [PATCH 23/25] Change order of commands in summary table --- docs/UserGuide.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/UserGuide.md b/docs/UserGuide.md index d3b1983ab9f..0c2b437762e 100644 --- a/docs/UserGuide.md +++ b/docs/UserGuide.md @@ -493,10 +493,10 @@ If your changes to the data file makes its format invalid, Waddle will discard a | [**Help**](#viewing-help--help) | `help` | | [**Add Itinerary**](#creating-a-new-itinerary--add) | `add d/DESCRIPTION sd/START DATE du/DURATION [c/COUNTRY] [p/NUMBER OF WADDLERS] [b/BUDGET]`
e.g., `add d/Germanyyyy sd/2025-05-10 du/14 c/Germany p/4 b/7500` | | [**List Itineraries**](#listing-all-itineraries--list) | `list` | +| [**Find Itinerary**](#locating-itineraries-by-description--find) | `find KEYWORD [MORE_KEYWORDS]`
e.g., `find India Trip` | | [**Edit Itinerary**](#editing-the-details-of-an-itinerary--edit) | `edit INDEX [n/NAME] [c/COUNTRY] [du/DURATION] [s/START DATE] [p/NUMBER OF WADDLERS] [b/BUDGET]`
e.g.,`edit 1 du/15 sd/2025-04-10` | | [**Delete Itinerary**](#deleting-an-itinerary--delete) | `delete INDEX`
e.g., `delete 3` | | [**Clear Itineraries**](#clearing-itineraries--clear) | `clear` | -| [**Find Itinerary**](#locating-itineraries-by-description--find) | `find KEYWORD [MORE_KEYWORDS]`
e.g., `find India Trip` | | [**Select Itinerary**](#selecting-an-itinerary--select) | `select INDEX`
e.g., `select 3` | | [**Exit**](#exiting-waddle--exit) | `exit` | @@ -510,10 +510,10 @@ If your changes to the data file makes its format invalid, Waddle will discard a | [**Add Item**](#adding-an-item--add) | `add d/DESCRIPTION [p/PRIORITY] [c/COST] [du/DURATION]`
e.g.,`add d/Visit Taj Mahal p/5 c/40 du/180` | | [**Edit Item**](#editing-the-details-of-an-item--edit) | `edit INDEX [d/DESCRIPTION] [p/PRIORITY] [c/COST] [du/DURATION]`
e.g., `edit 4.1 c/50` | | [**Delete Item**](#deleting-an-item--delete) | `delete INDEX`
e.g., `delete 3` | +| [**View Vacant Timeslots**](#viewing-vacant-timeslots--free) | `free` | | [**Schedule Item**](#scheduling-an-item--plan) | `plan INDEX d/DAY NUMBER st/START TIME`
e.g., `plan 1 d/4 st/12:00` | | [**Unschedule Item**](#unscheduling-an-item--unplan) | `unplan INDEX`
e.g., `unplan 3.2` | -| [**View Vacant Timeslots**](#viewing-vacant-timeslots--free) | `free` | -| [**Return to Main Page**](#returning-to-main-page--home) | `home` | | [**Copy to clipboard**](#copying-to-clipboard--copy) | `copy` | | [**Export to PDF**](#exporting-as-pdf-file--pdf) | `pdf` | +| [**Return to Main Page**](#returning-to-main-page--home) | `home` | | [**Exit**](#exiting-waddle--exit) | `exit` | From cbb73b9ebe0c28ca9ac368e26d9b8eb5c5f38bfa Mon Sep 17 00:00:00 2001 From: Clement Foo Date: Mon, 7 Nov 2022 23:29:00 +0800 Subject: [PATCH 24/25] update dg --- docs/DeveloperGuide.md | 18 ++---------------- docs/SettingUp.md | 2 +- docs/diagrams/ModelClassDiagram.puml | 12 ++++++------ docs/images/ModelClassDiagram.png | Bin 25255 -> 0 bytes 4 files changed, 9 insertions(+), 23 deletions(-) delete mode 100644 docs/images/ModelClassDiagram.png diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index 0a3d4cc73b4..bb01ccb361b 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -10,7 +10,7 @@ title: Developer Guide ## **Acknowledgements** * [Apache PDFBox®](https://pdfbox.apache.org/) -* {list here sources of all reused/adapted ideas, code, documentation, and third-party libraries -- include links to the original source as well} +* * [Apache Commons](https://commons.apache.org/) -------------------------------------------------------------------------------------------------------------------- @@ -319,7 +319,6 @@ Priorities: High (must have) - `* * *`, Medium (nice to have) - `* *`, Low (unli | `*` | fast user | add custom shortcuts for commands | | -*{More to be added}* ### Use cases @@ -408,7 +407,6 @@ Use case ends. Use case ends. -*{More to be added}* ### Non-Functional Requirements @@ -418,7 +416,6 @@ Use case ends. 4. The GUI should be intuitive and easy to understand. 5. The system should respond in at most 1 second. -*{More to be added}* ### Glossary @@ -447,10 +444,9 @@ testers are expected to do more *exploratory* testing. 1. Resize the window to an optimum size. Move the window to a different location. Close the window. - 1. Re-launch the app by double-clicking the jar file.
+ 2. Re-launch the app by double-clicking the jar file.
Expected: The most recent window size and location is retained. -1. _{ more test cases …​ }_ ### Deleting an itinerary @@ -464,13 +460,3 @@ testers are expected to do more *exploratory* testing. 1. Other incorrect delete commands to try: `delete`, `delete x`, `...` (where x is larger than the list size)
Expected: Similar to previous. - -1. _{ more test cases …​ }_ - -### Saving data - -1. Dealing with missing/corrupted data files - - 1. _{explain how to simulate a missing/corrupted file, and the expected behavior}_ - -1. _{ more test cases …​ }_ diff --git a/docs/SettingUp.md b/docs/SettingUp.md index 275445bd551..c9fd8663d3d 100644 --- a/docs/SettingUp.md +++ b/docs/SettingUp.md @@ -45,7 +45,7 @@ If you plan to use Intellij IDEA (highly recommended): 1. **Learn the design** - When you are ready to start coding, we recommend that you get some sense of the overall design by reading about [AddressBook’s architecture](DeveloperGuide.md#architecture). + When you are ready to start coding, we recommend that you get some sense of the overall design by reading about [Waddle’s architecture](DeveloperGuide.md#architecture). 1. **Do the tutorials** These tutorials will help you get acquainted with the codebase. diff --git a/docs/diagrams/ModelClassDiagram.puml b/docs/diagrams/ModelClassDiagram.puml index 47b11e77210..7235fd68923 100644 --- a/docs/diagrams/ModelClassDiagram.puml +++ b/docs/diagrams/ModelClassDiagram.puml @@ -15,8 +15,8 @@ Class UserPrefs Class UniqueItineraryList Class Itinerary Class People -Class duration -Class Name +Class Duration +Class Description Class Country Class Tag @@ -36,14 +36,14 @@ UserPrefs .up.|> ReadOnlyUserPrefs Waddle *--> "1" UniqueItineraryList UniqueItineraryList --> "~* all" Itinerary -Itinerary *--> Name +Itinerary *--> Description Itinerary *--> Country -Itinerary *--> duration +Itinerary *--> Duration Itinerary *--> People -Name -[hidden]right-> Country +Description -[hidden]right-> Country Country -[hidden]right-> People -People -[hidden]right-> duration +People -[hidden]right-> Duration ModelManager -->"~* filtered" Itinerary @enduml diff --git a/docs/images/ModelClassDiagram.png b/docs/images/ModelClassDiagram.png deleted file mode 100644 index 6ca868c4dd2cef3f606ecf232dac12a855d36144..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 25255 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 Date: Mon, 7 Nov 2022 23:29:31 +0800 Subject: [PATCH 25/25] update dg --- docs/images/ModelClassDiagram.png | Bin 0 -> 29275 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 docs/images/ModelClassDiagram.png diff --git a/docs/images/ModelClassDiagram.png b/docs/images/ModelClassDiagram.png new file mode 100644 index 0000000000000000000000000000000000000000..1c689bd8930d969c835ef0682cc5722b7783bc57 GIT binary patch literal 29275 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 literal 0 HcmV?d00001