diff --git a/docs/UserGuide.adoc b/docs/UserGuide.adoc index f48825a676e..ec242368fd6 100644 --- a/docs/UserGuide.adoc +++ b/docs/UserGuide.adoc @@ -1,1752 +1,1772 @@ -= TravEzy -:site-section: UserGuide -:toc: -:toc-title: -:toc-placement: preamble -:sectnums: -:imagesDir: images -:stylesDir: stylesheets -:xrefstyle: full -:experimental: -ifdef::env-github[] -:tip-caption: :bulb: -:warning-caption: โš ๏ธ -:note-caption: :information_source: -endif::[] -:repoURL: https://ay1920s1-cs2103t-t17-2.github.io/main/ - -By: `Team SE-EDU` Since: `Aug 2019` Licence: `MIT` - -Team: *T17-2* - -*Content* - - -== Introduction -//tag::intro -image::TraveEzyLogo.png[TravEzy Logo,width=600] - - -Welcome to _TravEzy_! ๐Ÿ˜Š - -Firstly, thank you for downloading our application. We greatly appreciate your support and -we *promise* to make travel easy with _TravEzy_. - -So, is _TravEzy_ for you? - -. Are you a busy university student with a passion for travelling? -. Are your summers and winters swamped with internships, projects and CCA activities? -. Do your numerous commitments get in the way of your travel plans? - -IF you answered yes to the questions above, then *yes* it is. If not, it still is :) - -What is _TravEzy_? - -_TravEzy_ is a desktop application with a command line interface (CLI) and is *perfect* for NUS students who love travelling as much as we do. With a CLI, you will be able to type in your commands much faster than similar applications which require you to keep using your mouse. Furthermore, since this is a desktop application, you do not need a web browser (like Chrome, Firefox, Internet Explorer, etc.) to start using _TravEzy_. - -TravEzy is perfect for: - -. Managing your busy calendar and finding the a good time to take that much needed holiday! - -. Creating the ideal itinerary for your trips :) - -. Tracking your expenses during your trip, so that you have enough money left for the trip home - -. Journaling in your travel diary and effortlessly looking at old entries to recall your favourite moments - -. Keep in contact with your old and new friends with the help of _TravEzy's_ address book - - -What are you waiting for? Hop on to this user guide and we will -travel to ++++++Section 2, โ€œQuick Startโ€++++++ to start TravEzy ๐Ÿ˜Š - -== Quickstart - -. Grab a cup of coffee. - -. Ensure that you have Java 11 or above installed in your Computer. - -. Download the latest -https://github.com/AY1920S1-CS2103T-T17-2/main/releases[TravEzy.jar] - -. Copy the file to the folder you want to use as the home folder for your _TravEzy_. - -. Double-click the file to start the app. -The GUI (Graphical User Interface) should appear in a few seconds. - - -. You are now in the Main Page of TravEzy. - -. At the bottom of the screen, type the command in the command box and press ** on your keyboard to execute it. -E.g. typing *help* and pressing ** will open the help window. - -Refer to Section 3, โ€œFeaturesโ€ for details of each command. - - - -== Preface - -Excited to start using _TravEzy_? Read this section to find out how this document is structured, and what each symbol and special font style mean. We promise that this will help you to get started with using _TravEzy_ more quickly! ๐Ÿ˜Š - -=== Structure of this Document - -There are *alot* of things that TravEzy can do. So, we have organised this document such that you can easily look for what *you* need. - - -We've split up this guide into the different features of our application, namely: - -* Main -* Calendar -* Itinerary -* Address Book -* Diary -* Achievements - -In each of the above sections, you will be introduced to the *interface* of the feature and the *commands* that will do the menial tasks for you. - -=== Reading this Document - -Symbols and fanciful (okay, different) fonts are exciting, aren't they? Let's find out more about what they mean in this document! - -.Symbols and fonts -[grid="rows", frame="none"] -|=== -| Symbol/font | What does it mean? - -| _italics_ -| Italicised text indicates that the text has a definition that is specific to the application. Do look out for the definitions of these words along the way. If not, please look at the glossary in section 13). - -| ``command`` -| A grey highlight means that you can type the words into _TravEzy_ and it will start performing tasks to make travel easier for you - -| ``MONTH`` -| Uppercase letters that are highlighted in grey indicate that the word is a _parameter_.footnote:[A parameter is like a field in your regular form. Just replace it and fill it up with anything appropriate. ๐Ÿ˜Š] - -| ``m/MONTH`` -| The slash and letter (or word) before the _parameter_ is a _prefix_. It is used to separate the current _parameter_ from other _parameters_. - -| ``[m/MONTH]`` -| Square brackets imply that the the stated _prefix_ and _parameter_ are optional. (This means less typing! ๐Ÿ˜†) - -| ๐Ÿ’ก -| A light bulb indicates that the enclosed text is a tip. - -| โš ๏ธ -| A warning sign indicates that enclosed text is important. - -|=== - - - -== Main - -Main is the welcome screen for _TravEzy_. From here, you can easily navigate to the other _pages_ (which contains the interface of the features): _calendar_, _itinerary_, _address book_, _financial tracker_, _diary_ and _achievements_. You can also the exit the application from here. - -=== Interface - -This is how _TravEzy's main_ page looks like: - -image::mainInterface.png[Main interface,width=800] - -=== Going to another page: ``goto`` - -Trying to open up the another _page_? Use this command! - -*Format:* + -``goto PAGE TYPE`` + -{nbsp} + -where ``PAGE TYPE`` can be any of the following: ``calendar``, ``itinerary``, ``address_book``, ``financial_tracker``, ``diary`` or ``achievements`` - -*Example:* - - goto itinerary - - -*Step by step:* - -Step 1. Type ``goto itinerary`` in the _command box_ and press _Enter_. + - -image::mainGoto1.png[Goto command] - -Step 2. You will be directed to the _itinerary page_. - -image::mainGoto2.png[Goto result] - - -=== Viewing help: ``help`` - -If you are lost, this command will be helpful. - -*Format:* + -``help`` - -*Step by step:* - -Step 1. Type ``help`` in the _command box_ and press _Enter_. + - -image::mainHelp1.png[Help command] - -Step 2. The message in the _result box_ will be updated to indicate that the help window has been opened. - -Step 3. The help window will appear as a pop-up and you may click the "copy link". This link will direct you to _TravEzy's_ user guide (i.e. this document).๐Ÿ˜Š + - -image::mainHelp2.png[Help result] - -=== Exiting the application: ``exit`` - -It's time to catch your flight, exit _TravEzy_ and start your trip! - -*Format:* + -``exit`` - -*Step by step:* - -Step 1. Type ``exit`` in the _command box_ and press _Enter_. + - -image::exit1.png[Exit command] - -Step 2. All _TravEzy's_ windows will close. - -WARNING: The above commands ``goto``, ``help`` and ``exit`` can also be executed from the other _pages_. - -== Calendar - -It's the end of the semester but there are still orientation camps, internships, and family commitments to attend to. However, after a long and tiring semester, the desire to unwind by travelling is just *too strong*. Sounds like you? - -Well, _TravEzy_ has got you covered. Simply inform _TravEzy_ of your schedule (your _commitments_, _school breaks_, public _holidays_ and _trips_) and _TravEzy_ will suggest periods of time when you can travel! Excited to find out more? Well... Read on! - -=== Interface - -This is how _TravEzy's calendar_ looks like: - -image::calendarScreenshots/calendarInterfaceUG.png[Calendar interface,width=800] - -{nbsp} - -To help you easily differentiate between various types of _events_, _TravEzy_ has categorised the _events_ into four types: _commitment_, _holiday_, _school break_ and _trip_. Visually, _TravEzy_ also uses different _labels_ for the different types of _events_, as shown in the image above. - -WARNING: The _labels_ indicate the *type* of _event_ you have for that particular day. It does not indicate the number of _events_. - -=== Adding an event to your calendar: ``add`` - -Whew! After reading so much, it is time to find out how you can add your _event_ so that _TravEzy_ can start suggesting when you can travel! ๐Ÿ˜Š - -*Format:* + -``add EVENT TYPE n/NAME d/START DAY [m/START MONTH] [y/START YEAR] [D/END DAY] [M/END MONTH] [Y/END YEAR]`` - -*Examples:* -**** -* To add a _commitment_, - - add commitment n/volunteer to tutor children d/2 m/Dec y/2019 D/5 M/Dec Y/2019 - -* To add a _holiday_, - - add holiday n/labour day d/1 m/May y/2020 - -* To add a _school break_, - - add school_break n/winter vacation d/8 m/Dec y/2019 D/12 M/Jan Y/2020 - -* To add a _trip_, - - add trip n/Bali 3D2N d/10 m/Dec y/2019 D/13 M/Dec Y/2019 - -**** - -*Step by step:* - -Step 1. Type ``add commitment n/volunteer to tutor children d/2 m/Dec y/2019 D/5 M/Dec Y/2019`` in the _command box_ and press _Enter_. + - -image::calendarScreenshots/add1.png[Add command,width=600] - -Step 2. The _month and year panel_ will change to "December" and the relevant view will be shown. - -Step 3. In the _month view panel_, you will be able to see the newly added _commitment labels_. - -Step 4. The _result box_ will also display a message to indicate that your _commitment_ has been successfully added. + - -image::calendarScreenshots/add2.png[Add result,width=600] - -TIP: You do not have to specify the ``END YEAR``, ``END MONTH`` and/or ``END DAY`` if they are the same as ``START YEAR``, ``START MONTH`` and/or ``START DAY``, respectively. This applies to the following commands as well. - -WARNING: If you leave out the month and/or year, the current month and/or year will be used. This applies to the following commands as well. - -=== Deleting an event from your calendar: ``delete`` - -Yes, we have all had that experience. We thought that next Friday is a public _holiday_ even though it isn't. However, you have added this _holiday_ to _TravEzy_! ๐Ÿ˜ง What should you do now? Delete it! - -But how? Well, this is the section for you. ๐Ÿ˜€ - -*Format:* + -``delete EVENT TYPE n/NAME d/START DAY [m/START MONTH] [y/START YEAR] [D/END DAY] [M/END MONTH] [Y/END YEAR]`` - -*Examples:* -**** -* To delete a _commitment_, - - delete commitment n/volunteer to tutor children d/2 m/Dec y/2019 D/5 M/Dec Y/2019 - -* To delete a _holiday_, - - delete holiday n/labour day d/1 m/May y/2020 - -* To delete a _school break_, - - delete school_break n/winter vacation d/8 m/Dec y/2019 D/12 M/Jan Y/2020 - -* To delete a _trip_, - - delete trip n/Bali 3D2N d/10 m/Dec y/2019 D/13 M/Dec Y/2019 - -**** - -*Step by step:* - -Step 1. Type ``delete commitment n/volunteer to tutor children d/2 m/Dec y/2019 D/5 M/Dec Y/2019`` in the _command box_ and press _Enter_. + - -image::calendarScreenshots/delete1.png[Delete command,width=600] - -Step 2. The _month and year panel_ will change to "December" and the relevant view will be shown. - -Step 3. In the _month view panel_, you will be able to see that the _commitment labels_ have been removed. - -Step 4. The _result box_ will also display a message to indicate that your _commitment_ has been successfully deleted. + - -image::calendarScreenshots/delete2.png[Delete result,width=600] - -=== Showing your schedule for the month: ``show`` - -After adding and deleting your events, you can have an overview of them! - -How easy is it? - -*Format:* + -``show m/MONTH [y/YEAR]`` - -*Example:* + - - show m/Dec - -*Step by step:* - -Step 1. Type ``show m/Dec`` in the _command box_ and press _Enter_. + - -image::calendarScreenshots/show1.png[Show command,width=600] - -Step 2. The _month and year panel_ and _month view panel_ will change to show you your schedule for this December. - -Step 3. The _result box_ will also display a message to indicate that _TravEzy_ is currently showing you your schedule for December. + - -image::calendarScreenshots/show2.png[Show result,width=600] - -WARNING: Do remember that if you leave out the year (as we have done in this example), the current year will be used. This applies to the following commands as well. - -=== Listing your events: ``list`` - -If you would like to view your events as a list instead, this command would be helpful! - -*Format:* + -``list [d/START DAY] [m/START MONTH] [y/START YEAR] [D/END DAY] [M/END MONTH] [Y/END YEAR]`` - -*Examples:* -**** -* To list all _events_, - - list - -* To list all _events_ that happen between 2 December 2019 to 10 December 2019, - - list d/2 m/Dec y/2019 D/10 M/Dec Y/2019 - -**** - -*Step by step:* - -Step 1. Type ``list`` in the _command box_ and press _Enter_. + - -image::calendarScreenshots/list1.png[List command,width=600] - -Step 2. A pop-up will appear to show you all your _events_. - -image::calendarScreenshots/list2.png[List result,width=600] - -Step 3. When you click at a region outside of the pop-up, the pop-up will disappear. How neat is that? - -=== Checking your availability for a trip: ``check`` - -Do you need to find out whether you are available to go for a trip? You can get _TravEzy_ to find that out for you (i.e. when you happen to have a _school break_/_holiday_ *and* do not have any _commitment_/_trip_). - -Let's find out how! - -*Format:* + -``check d/START DAY [m/START MONTH] [y/START YEAR] [D/END DAY] [M/END MONTH] [Y/END YEAR]`` - -*Examples:* -**** -* To check whether you are available on 9 December 2019, - - check d/9 m/Dec y/2019 - -* To check whether you are available from 9 to 20 December 2019, - - check d/9 m/Dec y/2019 D/20 M/Dec Y/2019 - -**** - -*Step by step:* - -Step 1. Type ``check d/9 m/Dec y/2019`` in the _command box_ and press _Enter_. + - -image::calendarScreenshots/check1.png[Check command,width=600] - -Step 2. The _month and year panel_ and _month view panel_ will change to show you your schedule for this December. - -Step 3. The _result box_ will display a message to indicate whether you are available to travel during the specified time. If you happen to be free (like in this case), you may start booking your trip! ๐Ÿ˜€ + - -image::calendarScreenshots/check2.png[Check result,width=600] - - -=== Suggesting a suitable time for a trip: ``suggest`` - -The end of the semester is near. It is time to look for some cheap flights๐Ÿ›ซ! However, before deciding which flight to book, you need to find out when you can travel. Need some help with that? No worries! _TravEzy_ has got you covered. ๐Ÿ˜Š - -How so? Just ask _TravEzy_ to suggest a suitable time! - -*Format:* + -``suggest d/START DAY [m/START MONTH] [y/START YEAR] [D/END DAY] [M/END MONTH] [Y/END YEAR] [p/PERIOD]`` - -*Examples:* -**** -* To find out when you can travel between 9 and 20 December 2019, - - suggest d/9 m/Dec y/2019 D/20 M/Dec Y/2019 - -* To find out when you can travel for at least 5 days between 9 and 20 December 2019, - - suggest d/9 m/Dec y/2019 D/20 M/Dec Y/2019 p/5 - -**** - -*Step by step:* - -Step 1. Type ``suggest d/9 m/Dec y/2019 D/20 M/Dec Y/2019`` in the _command box_ and press _Enter_. + - -image::calendarScreenshots/suggest1.png[Suggest command,width=600] - -Step 2. The _month and year panel_ and _month view panel_ will change to show you your schedule for this December. - -Step 3. The _result box_ will display a message to indicate when you are able to travel during the specified time. + - -image::calendarScreenshots/suggest2.png[Suggest result,width=600] - -== Itinerary - -Now that you have book your flight, it's time to start planning your schedule with _TravEzy's_ itinerary. Here is our -Itinerary! - -image::ItineraryInterface.png[] - -In _TravEzy_, we have broken down your events into 4 key parts, namely _Title_, _Date_, _Time_, and _Tag_. - -For example, here is an Itinerary entry about our trip to Japan - -. _Title_ -> Visit Tokyo DisneySea -. _Date_ -> 12122019 -. _Time_ -> 1000 -. _Tag_ -> Priority: Critical - -In the Itinerary, you will be able to add, delete, edit, list and show your entries. There are also a few more special -tasks that you can do with your itinerary. Read on to find out more! ๐Ÿ˜Š - - -=== Adding an event: ``add`` - -Planning to visit DisneySea tomorrow? Add some rides that you plan to take then! ๐ŸŽข - -*Format:* - -``add title/TITLE date/DATE time/TIME [l/LOCATION] [d/DESCRIPTION]`` - -*Example:* - - add title/Ride DisneySea Electric Railway date/12122019 time/1500 l/DisneySea - -*Step by step:* - -Step 1. Type ``add title/Ride DisneySea Electric Railway date/12122019 time/1500 l/DisneySea`` in the command box. - -Step 2. Remember to prioritize your events using the Priority dropdown box, to one of the 5 different priorities: - -. Priority: None -. Priority: Low -. Priority: Medium -. Priority: High -. Priority: Critical - -After selecting the priority for the event, press _Enter_. - -image::ItineraryAdd1.png[] - -Step 3. The result box will display the message "Processing... -Done! -Your event has been successfully added! HAND, TravEzy! :D" - -Step 4. Now you can find your added event in the the event list. - -image::ItineraryAdd2.png[] - -=== Deleting an event: ``delete`` - -Had a change in plan during your trip but have already keyed in the event into _TravEzy's_ itinerary? Don't worry -you can always remove it from the event list. - -Read on to find out more! - -*Format:* - -``delete INDEX`` - -*Example:* - - delete 4 - -*Step by step:* - -Step 1. Type ``delete 4`` in the command box and press _Enter_. - -image::ItineraryDelete1.png[] - -Step 2. The result box will display the message "Processing... -Done! -Your event has been deleted successfully. Yay! :^)" - -Step 3. Now _TravEzy's_ itinerary view panel will show the new event list with the specified event removed. - -image::ItineraryDelete2.png[] - -=== Editing an event: ``edit`` - -Rather than deleting an event when you have a change of plans, why not edit the details of the event instead? - -*Format:* - -``edit INDEX [title/TITLE] [date/DATE] [time/TIME] [l/LOCATION] [d/DESCRIPTION] [tag/]`` - -[TIP] -If you wish to edit the tag field in the event, indicate it with the prefix ``tag/`` and use the Priority Dropdown Box -to select the new priority. - -*Example:* - - edit 4 title/Explore DisneySea's Aquatopia d/Take photos of the fishes tag/ - -*Step by step:* - -Step 1. Type ``edit 4 title/Explore DisneySea's Aquatopia d/Take photos of the fishes tag/`` in the command box. - -Step 2. If you indicate a change of the priority in the edit command using ``tag/``, do remember to select the new priority using -the Priority Dropdown Box. - -image::ItineraryEdit1.png[] - -Step 3. The result box will display the message "Updated successfully! :D -HAND, TrazEzy~" - -Step 4. Now _TravEzy's_ itinerary view panel will show the new event list with the edited event. - -image::ItineraryEdit2.png[] - -=== Checking a command as done: ``done`` - -Impressive! After you have completed an event that you have planned for the day, _TravEzy_ itinerary lets you check that -event as done. โœ… - -*Format:* - -``done INDEX`` - -*Example:* - - done 4 - -*Step by step:* - -Step 1. Type ``done 4`` in the command box and press _Enter_. - -image::ItineraryDone1.png[] - -Step 2. The result box will display the message "Processing... -Done! -Your event has been marked done successfully. Yay! :^)" - -Step 3. Now _TravEzy_ itinerary view panel will mark that event as done. Good Job! ๐Ÿ‘ - -image::ItineraryDone2.png[] - -=== Listing all events: ``list`` - -What if you want to see all your events in ONE, CONTINUOUS list? The Itinerary allows you to see everything in one, -convenient list! - -*Format:* - -``list`` - -*Example:* - - list - -*Step by step:* - -Step 1. Type ``list`` in the command box and press _Enter_. - -image::ItineraryList1.png[] - -Step 2. The result box will display the message "Processing... -Done! -Your event has been marked done successfully. Yay! :^)" - -Step 3. Now _TravEzy_ itinerary view panel will showcase all the events in your itinerary. - -image::ItineraryList2.png[] - -=== Clearing all entries: ``clear`` - -After using _TravEzy_ itinerary for a long time, you might find that your itinerary is cluttered with many past events. -However, it might be a hassle to delete each events one by one. Don't worry, _TravEzy's_ itinerary got you covered and allows - you to clear the entire event list instead. - -How convenient is that! ๐Ÿ˜„ - -[WARNING] -The clear function removes *ALL* the events that you have planned in your event itinerary. This action *CANNOT* be -undone. Hence, only click on the *Proceed* button if you are sure that you want to clear your event list. - -*Format:* - -``clear`` - -*Example:* - - clear - -*Step by step:* - -Step 1. Type ``clear`` in the command box and press _Enter_. - -image::ItineraryClear1.png[] - -Step 2. A popup window will appear prompting whether you would like to _Proceed_ in clearing all your events from the -itinerary list. - -Step 3. The result box will display the message "Currently viewing clear window warning.". - -image::ItineraryClear2.png[] - -Step 3. Upon selecting _Proceed_, a notification will be shown on the screen with the message, "Done! We have wiped off -all your events from the face of this Earth! ( ๏พŸใƒฎ๏พŸ)". - -Step 4. The result box will proceeed to display the message "" - - -image::ItineraryClear3.png[] - -=== Greet TravEzy itinerary: ``greet`` - -Start you day right by saying hello to _TravEzy_ itinerary and it will greet you back with the current _time_ and _date_. -_TravEzy_ will also filter the event list to showcase events that are due today. - -*Format:* - -``greet`` - -*Example:* - - greet - -*Step by step:* - -Step 1. Type ``greet`` in the command box and press _Enter_. - -image::ItineraryGreet1.png[] - -Step 2. The result box will display the message "Hello! Welcome to the itinerary page!" this will be followed by the -current _date_ and _time_. - -Step 3. _TravEzy_ itinerary view panel will showcase all the events that are due today. - -image::ItineraryGreet2.png[] - -=== Showing past commands: ``history`` - -Curious on what are the past commands that you have inputted during the current session? _TravEzy_ will show you a list of -your past commands for the itinerary. - -Let's find out how! - -*Format:* - -``history`` - -*Example:* - - history - -*Step by step:* - -Step 1. Type ``history`` in the command box and press _Enter_. - -image::ItineraryHistory1.png[] - -Step 2. The result box will display the message "Commands called for this session (Most recent โ†’ Earliest):" -followed by the list of past commands that are being called in _TravEzy's_ itinerary for that session. - -image::ItineraryHistory2.png[] - -=== Searching for an event: ``search`` - -Is your event list too cluttered up with events? Let _TravEzy_ help you by searching for events that matches specific -keywords. - -Let _TravEzy_ help you zoom into specific events! ๐Ÿ˜Š - -[TIP] -If your event list is too cluttered up, try using the ``clear`` command instead to reset the whole event list instead. - -*Format:* - -``search SEARCH CONDITION`` - -where ``SEARCH CONDITION`` can be any of the following: ``title/TITLE``, ``date/DATE``, ``time/TIME``, ``l/LOCATION``, -``d/DESCRIPTION`` or ``tag/`` - -*Example:* - - search date/12122019 l/DisneySea - -*Step by step:* - -Step 1. Type ``search`` in the command box and press _Enter_. - -image::ItinerarySearch1.png[] - -Step 2. The result box will display the message "Processing... -Done! -Here are the events that matches the details. ( อกยฐ อœส– อกยฐ)" - -Step 3. _TravEzy_ itinerary view panel will showcase the events which matches the specified keyword. - -image::ItinerarySearch2.png[] - -=== Sorting the events: ``sort`` - -Need some way to categorize your events in the event list, let _TravEzy_ itinerary sort out all the events for you. - -Format: - -``sort by/SORT CONDITION`` - -where ``SORT CONDITION`` can be any of the following: ``title``, ``location``, ``chronological``, ``completion`` or -``priority`` - -*Example:* - - sort by/priority - -*Step by step:* - -Step 1. Type ``sort by/priority`` in the command box and press _Enter_. - -image::ItinerarySort1.png[] - -Step 2. The result box will display the message "Processing... -Done! -TravEzy has helped sorted out your life!" - -Step 3. _TravEzy_ itinerary view panel will sort all the events in the event list based on the sort condition given. - -image::ItinerarySort2.png[] - -== Address Book - -You are heading to a different country for a trip this holiday and you want to let your friends in other countries know -that you are coming over. The troubles of managing contacts from many different countries can be overwhelming with a -large number of contacts. Looking for a better contacts management application? - -_TravEzy_ is the better contact management you are looking for. _TrazvEzy_ allows you to add your contacts information -specifying your contact's country. How does _TravEzy_ do it? Read on to find our more. - -=== Interface - -Navigating around the address book page: - -image::AddressBookInterface.png[width=800] - -=== Adding a person: `add` - -Met a new friend in a new foreign country during your holiday trip? Add him / her to your _TravEzy_ address book. - -*Format:* + -`add n/NAME p/PHONE_NUMBER e/EMAIL a/ADDRESS [t/TAG] [r/REMARK][c/COUNTRY]` - -[WARNING] -Address Book does not allow duplicate contacts. A person should not have the same `NAME`, `PHONE` and `EMAIL` - -[TIP] -Tags are useful ways to categorize your contacts. For example, tag a person with: + - + -`add n/Alice p/918273645 e/alice@example.com t/friend`, -the `t/` prefix is used for tagging. + - + -A person can have any number of tags (including 0) - -*Examples:* -**** -* To add a person into the address book, - - add n/John Doe p/98765432 e/johnd@example.com a/John street, block 123, #01-01 - -* To add a person into the address book specifying a tag and country, - - add n/Betsy Crowe t/friend e/betsycrowe@example.com a/Newgate Prison p/1234567 t/criminal r/Best friend c/Singapore - -**** - -*Step by Step:* - -Step 1. Type `add n/Alice p/918273645 e/alice@example.com a/566,Yishun Ring Road, #14-113` in the _command box_ and -click _Enter_. - -image::AddressBookAdd1.png[width=600] - -Step 2. In the _persons list panel_, you can now see that Alice has been added into the address book. - -Step 3. The _result box_ will also display a message that your contact has been added. - -image::AddressBookAdd2.png[width=600] - -=== Listing all persons : `list` - -After adding your contacts, you may want to see an overview of your contact information in the address book. -See everyone in your address book with one command! - -*Format:* + -`list` - -**** -*Examples:* - -* To list your contacts, - - list -**** - -*Step by Step:* - -Step 1. Type `list` in the _command box_ and click _Enter_. - -image::AddressBookList1.png[wdith=600] - -Step 2. See the overview of your contact information in the _persons list panel_ - -Step 3. The _result box_ will also display a message that all your contact information has been listed. - -image::AddressBookList2.png[width=600] - -=== Editing a person : `edit` - -Oh no, you have added a wrong contact into the address book! Edit all your contact information in the address book -inside _TravEzy_. - -*Format:* + -`edit INDEX [n/NAME] [p/PHONE] [e/EMAIL] [a/ADDRESS] [t/TAG] [r/REMARK] [c/COUNTRY]` - -[WARNING] -Edits the person at the specified `INDEX`. The index refers to the index number shown in the displayed person list. The index *must be a positive integer* 1, 2, 3, ... + - + -At least one of the optional fields must be provided. + - + - Existing values will be updated to the input values. + - + -When editing tags, the existing tags of the person will be removed i.e adding of tags is not cumulative. - -[TIP] - You can remove all the person's tags by typing `t/` without specifying any tags after it. + - + - You can remove the person's remark by typing `r/` without specifying any remark after it. + - + - You can remove the person's country by typing `c/` without specifying any country after it. - -**** - -Examples: - -* To edit a 1st person's phone number and email address to be `91234567` and `johndoe@example.com` respectively. + - - edit 1 p/91234567 e/johndoe@example.com - -* To edit the name of the 2nd person to be `Betsy Crower` and clears all exisiting tags. - - edit 2 n/Betsy Crower t/ - -* To edit the name of the 3rd person to be `Alexander Bell` and clears all existing country information. - - edit 3 n/Alexander Bell c/ - -**** - -*Step by Step:* - -Step 1. Type `edit7 p/9082373645` to edit Alice's phone number to reflect the correct phone number `908237645` - -image::AddressBookEdit1.png[width=600] - -Step 2. The _persons list panel_ will now display the updated information for Alice after the edit - -Step 3. The _result box_ will display a message that the person has been edited if successful. - -image::AddressBookEdit2.png[wdith=600] - - -=== Locating persons by name: `find` - -Your address book have many contacts and you would need to have a way to find your contacts information with keywords. + - -Format: `find KEYWORD [MORE_KEYWORDS]` - -[WARNING] - The search is case insensitive. e.g `hans` will match `Hans` + - + - The order of the keywords does not matter. e.g. `Hans Bo` will match `Bo Hans` + - + - Only the name is searched. + - + - Only full words will be matched e.g. `Han` will not match `Hans` + -[TIP] -Persons matching at least one keyword will be returned (i.e. `OR` search). e.g. `Hans Bo` will return `Hans Gruber`, `Bo Yang` - -Examples: -**** -* To find `John`, - - find John - -* To return any person having names `Besty`, `Time` or `John`, - - find Betsy Tim John - -**** - -*Step by Step* - -Step 1. Type `find Alice` in the _command box_ and click _Enter_ - -image::AddressBookFind1.png[width=600] - -Step 2. The found results will be displayed at the _persons list panel_. - -Step 3. The _result box_ will also display a message to indicate the number of matching results found. - -image::AddressBookFind2.png[width=600] - -=== Deleting a person : `delete` - -While organizing your _TravEzy_ address book, you want to clear your old contacts. - -*Format:* + - `delete INDEX` - -[WARNING] -The index refers to the index number shown in the displayed person list. + - + -The index *must be a positive integer* 1, 2, 3, ... - -**** -Examples: - -* Delete the 2nd person in the address book. + - - delete 2 - -* Deletes the 1st person in the results of the `find` command. + - - find Betsy - delete 1 - -**** - -*Step By Step:* - -Step 1. Type `delete 7` in the _command box_ and click _Enter_ - -image::AddressBookDelete1.png[width=600] - -Step 2. The _persons list panel_ will display the updated address book after deleting the specified contact - -Step 3. The _result box_ will also display a message to notify that the person has been deleted from the contact book. - -image::AddressbookDelete2.png[width=600] - -// end::delete[] -=== Clearing all entries : `clear` - -Your address book is in a mess, and you would like to clear all exisiting entries in the address book and restart from scratch + - -Format: + -`clear` - -[WARNING] -You will not be able to undo this operation. Think twice before entering this command! - -*Step by step:* - -Step 1. Type `clear` into the _command box_ and click _Enter_ - -image::AddressBookClear1.png[width=600] - -Step 2. The _persons list panel_ is now cleared. You will see an empty _persons list panel_. - -Step 3. The _result box_ will display a message that tells you that the address book has been cleared. - -image::AddressBookClear2.png[width=600] - -=== Saving the data - -Address book data are saved in the hard disk automatically after any command that changes the data. + - -There is no need to save manually. - -== Financial Tracker -Scare that you're gonna overspend whenever you're on a trip? Afraid no more! TravEzy's Financial Tracker allow you to track your expenses seamlessly! - -Each of your expense has 6 key fields: - -. Date -. Time -. Amount -. Description -. Type of expenditure -. Country - -The Date and Time specify when you spend your expenses, followed by the amount, description, types of expenditure and country where you're current travelling at. Example of the types of expenditure are food, entertainment, health care, etc. You name it, TravEzy tracks it! In Financial Tracker, you will be able to manage your expenses easily. - -=== Interface -This is what you will see when navigated to the financial tracker: - -image::FinancialTrackerInterface.png[Financial Tracker interface,width=800] - -=== Adding an expense: ``add`` -Adding the expense of milk you've bought at the grocery shop you stopped by? - -WARNING: You can only add a total maximum amount of one trillion! - -*Format:* - -``add a/AMOUNT d/DESCRIPTION t/TYPE OF EXPENDITURE [date/DATE] [time/TIME]`` - -*Example:* - - add a/2.89 d/Meiji Milk t/grocery - -*Step by step:* - -Step 1. Type ``add a/2.89 d/Meiji Milk t/grocery`` in the _Command box_ and press _Enter_. - -image::FinancialTrackerAdd1.png[width=600] - -Step 2. The _Result box_ will display the message "Expense added". - -Step 3. Now you can find your added expense in the _Expense list panel_. - -image::FinancialTrackerAdd2.png[width=600] - -=== Deleting an expense: ``delete`` -Added a wrong expense? Of course you can delete it if you want to :) - -*Format:* - -``delete INDEX`` - -*Example:* Delete the first expense you saw on your expense list. - - delete 1 - -*Step by step:* - -Step 1. Type ``delete 1`` in the _Command box_ and press _Enter_. - -image::FinancialTrackerDelete1.png[width=600] - -Step 2. The _Result box_ will display the message "Your expense has been deleted". - -image::FinancialTrackerDelete2.png[width=600] - -=== Editing an expense: ``edit`` -Add a wrong expense? Why not edit it instead! - -*Format:* - -``edit INDEX [a/AMOUNT] [d/DESCRIPTION] [t/TYPE OF EXPENDITURE] [date/DATE] [time/TIME]`` - -*Example:* Edit the 1st expense you saw on your expense list. - - edit 1 a/29.80 d/Nike bottle - -*Step by step:* - -Step 1. Notice the first expense's fields in the _Expense list panel_. - -Step 2. Now, type ``edit 1 a/29.80 d/Nike bottle`` in the _Command box_ and press _Enter_. - -image::FinancialTrackerEdit1.png[width=600] - -Step 3. The _Result box_ will display the message "The expense updated successfully!". - -Step 4. Now the first expense's amount and description fields have been changed to `29.80` and `Nike bottle` respectively. - -image::FinancialTrackerEdit2.png[width=600] - -=== Clears an expense list: ``clear`` -Messed up your expense list? Don't worry, just clear it! - -*Format:* - -``clear`` - -*Example:* Clears your current country's expense list. - - clear - -*Step by step:* - -Step 1. Type ``clear`` in the _Command box_ and press _Enter_. - -image::FinancialTrackerClear1.png[width=600] - -Step 2. The _Result box_ will display the message "Expense list cleared!". - -Step 3. Now in your _Expense list panel_, your expense list has been cleared! - -image::FinancialTrackerClear2.png[width=600] - -=== Undo your previous action: ``undo`` -Did something wrong? We heard you! Simply undo your previous action :) - -WARNING: You can only undo your previous `add`, `edit`, `delete` and `clear` command. - -*Format:* - -``undo`` - -*Example:* Undo your previous `clear` command. - - undo - -*Step by step:* (A continue from above `clear` command) - -Step 1. Type ``undo`` in the _Command box_ and press _Enter_. - -image::FinancialTrackerUndo1.png[width=600] - -Step 2. The _Result box_ will display the message "Done!". - -Step 3. Notice that your expense list has been recovered. Nice save! - -image::FinancialTrackerUndo2.png[width=600] - -// tag::financialtracker[] -=== Switching between countries: ``switch`` -Currently in somewhere else? Switch to that expense list instead! - -*Format:* - -`switch COUNTRY` - -TIP: Do realise that you can always use the drop down menu instead! - -WARNING: You can only type in countries which are only listed from the _Countries dropdown box_ - -*Example:* - - switch Japan - -*Step by step:* - -Step 1. Type ``switch Japan`` in the _Command box_ and press _Enter_. - -image::FinancialTrackerSwitch1.png[width=600] - -Step 2. The _Result box_ will display the message "Expense list switched". - -Step 3. Now your expense list inside the _Expense list panel_ has been switched to that which is in Japan! - -image::FinancialTrackerSwitch2.png[width=600] - -=== Sort out your expense list: ``sort`` -The default sorting way of the expense list is not your thing? Just sort your expense list according your needs! - -TIP: All of the sorting is done in reversed order :) - -*Format:* - -``sort CRITERIA`` - -Where ``CRITERIA`` can be ``amount``, ``date``, ``time``, ``type`` and ``default`` - -*Example:* to sort by amount - - sort amount - -*Step by step:* - -Step 1. Notice the amount field in each expenses are currently not in order. - -Step 2. Now, type ``sort amount`` in the _Command box_ and press _Enter_. - -image::FinancialTrackerSort1.png[width=600] - -Step 3. The _Result box_ will display the message "Expense List sorted!". - -Step 4. Now all your expenses are sorted in descending order of your amount! - -image::FinancialTrackerSort2.png[width=600] - -=== Generate an overview of your spending: ``summary`` -Do you ever have difficulty summarising your spending? Afraid not! You can view you expenses statistics easily! - -*Format:* - -`summary` - -*Example:* - - summary - -*Step by step:* - -Step 1. Type `summary` in the _Command box_ and press _Enter_. - -image::FinancialTrackerSummary1.png[width=600] - -Step 2. The result box will display the message "Currently viewing the Summary Window". - -Step 3. As you should have noticed, the Summary Window has been popped out showing you statistics of your expenses in a nice-looking pie chart and bar chart form! - -image::FinancialTrackerSummary2.png[width=600] -// end::financialtracker[] - -== Diary - -The sweetest part of any holiday is looking back at your fond memories. TravEzy's -Diary allows you to do just that! Here is our Diary! - -image::DiaryInterface.png[width=800] - - -In TravEzy, we have broken down your memories into 4 key parts, namely _Title_, _Date and Time_, _Place_ and _Memory_. - -For example, here is a Diary Entry about our trip to Tioman - -. _Title_ -> First time Snorkeling -. _Date and Time_ -> 30/12/2019 0900 -. _Place_ -> Tioman Island -. _Memory_ -> Saw so may beautiful fish! - -In the Diary, you will be able to add, delete, list and show your entries. There are also a few more special tasks that you can do with your diary. -Enjoy! - - -=== Adding diary entries to your diary ``add`` - -Trying to journal about your fishing trip? The Diary allows you to add entries and keep them alive in your desktop forever. - -Format: `add t/TITLE d/DATE TIME [p/PLACE] [m/MEMORY]` - - -Example: Lets take the example of our midnight fishing trip! - -Step 1: Enter ``add t/Fishing Trip d/12/12/2019 2300 p/Pulau Tekong m/Caught the biggest fish ever!`` - -image::DiaryAddBefore.png[width=600] - -Step 2: TravEzy will tell you if your `add` command was successful in the _Result Display_ - -Step 3: You can see you added entry in the _Diary List_ - - -image::DiaryAddAfter.png[width=600] - - - -=== Deleting diary entries from your diary ``delete`` - -For some memories, it's best to forget them โ˜น. The Diary can help you to get rid of unpleasant diary entries. - -Format: ``delete INDEX`` - -Example: I lost my wallet at the amusement park in Genting, I don't want to remember -that trip ever again :( - -Step 1: Enter ``delete 2`` - - -image::DiaryDeleteBefore.png[width=600] - -Step 2: TravEzy will tell you if your `delete` command was successful in the _Result Display_ - -Step 3: You can see your updated _Diary List_ without the horrible memory - - -image::DiaryDeleteAfter.png[width=600] - - - - -=== List all your diary entries ``list`` - -What if you want to see all your memories in _ONE_, _CONTINUOUS_ list? The Diary allows you to see everything in on, convenient list! - -Format: ``list`` - -Example: I want to relive *EVERYTHING* - -Step 1: Enter ``list`` - - -image::DiaryListBefore.png[width=600] - -Step 2: TravEzy will tell you if your `list` command was successful in the _Result Display_ - -Step 3: You can see all your entries in the _Diary List_ - - -image::DiaryListAfter.png[width=600] - -=== Find diary entries ``find`` - -"Hey, when did I go to Spain?" It can be hard to remember -all the details of your trips. That's why, this Diary allows you to look through all your entries to find the ones you want! - -Format: ``find TARGET`` - -Example: I want to see what I wrote about the Rugby World Cup - - -Step 1: Enter ``find rugby`` - - -image::DiaryFindBefore.png[width=600] - -Step 2: TravEzy will tell you if your `find` command was successful in the _Result Display_ - -Step 3: You can see the matching entries in your _Diary List_ - - - -image::DiaryFindAfter.png[width=600] - - - -=== Find specific diary entries ``findSpecific`` - -Let's narrow down your search! The diary allows you to look through specific sections of each entry to find the exact entry that you want! - - -Format: ``findSpecific [t/TITLE] [d/DATE TIME] [p/PLACE] [m/MEMORY]`` - -Example: I know that I had a trip on the 12th of December 2019, but I cant remember what I did... - - -Step 1: Enter ``findSpecific d/12/12/2019`` - - - -image::DiaryFindSpecificBefore.png[width=600] - -Step 2: TravEzy will tell you if your `findSpecific` command was successful in the _Result Display_ - -Step 3: You can see the specific matching entries in your _Diary List_ - - - -image::DiaryFindSpecificAfter.png[width=600] - - -=== Private personal memories ``private`` - -There are some personal memories which are for our eyes only. The Diary can help you to private memories from prying eyes. - -Format: ``private INDEX`` - -Example: I had my first sip of wine today at the restaurant! I don't want my mum to find out... - -Step 1: Enter ``private 4`` - - -image::DiaryPrivateBefore.png[width=600] - -Step 2: TravEzy will tell you if your `private` command was successful in the _Result Display_ - -Step 3: You can see your updated _Diary List_, after the memory has been hidden - - - -image::DiaryPrivateAfter.png[width=600] - - -=== Unprivate personal memories ``unprivate`` - -Once you know you are alone and away from prying eyes, you can look at your private memories safely. The Diary can help you to unprivate those memories. - -Format: ``unprivate INDEX`` - -Example: Ok!, I'm alone and I want to look at my private memories - -Step 1: Enter ``unprivate 4`` - - - -image::DiaryUnPrivateBefore.png[width=600] - -Step 2: TravEzy will tell you if your `unprivate` command was successful in the _Result Display_ - -Step 3: You can see your updated _Diary List_, after the memory is visible again - - -image::DiaryUnPrivateAfter.png[width=600] - - -=== Keep your diary protected ``setDetails`` - -You never know who may use your laptop when you're away. The Diary can help you to password protect your memories to stop hackers from looking at your private memories. -If you ``setDetails``, you will not be able to use the ``unprivate`` command and will have to use the ``unlock`` command (See below) - -Format: ``setDetails user/USERNAME password/PASSWORD`` - -Example: Better set a password to protect my memories against prying eyes - -Step 1: Enter ``setDetails user/youcanthackme password/youreallycanthackme`` - - - -image::DiarySetDetailsBefore.png[width=600] - - -Step 2: TravEzy will tell you if your `unprivate` command was successful in the _Result Display_ - - - -image::DiarySetDetailsAfter.png[width=600] - - -Step 1: Lets say someone tries to hack you - -image::DiarySetDetailsHack.png[width=600] - -Step 1: TravEzy will protect you if someone else tries to change your details - - -image::DiarySetDetailsHackFail.png[width=600] - - - -=== Unlock your private diary entries ``unlock`` - -With password protection, we want to ensure no one else can access our memories . The Diary can do this by ensuring only you can see the private memories. - -Format: ``unlock INDEX user/USERNAME password/PASSWORD`` - -Example: Time to look at all my private memories - -Step 1: Enter ``unlock 4 user/youcanthackme password/youreallycanthackme`` - - - -image::DiaryUnLockBefore.png[width=600] - - -Step 2: TravEzy will tell you if your `unlock` command was successful in the _Result Display_ - - - -image::DiaryUnLockAfter.png[width=600] - - -Step 1: Lets say someone tries to hack you - -image::DiaryUnLockHackBefore.png[width=600] - -Step 1: TravEzy will protect you if someone else tries to change your details - - -image::DiaryUnLockHackAfter.png[width=600] - - - -== Achievements - -Travezy provides a way for you to look through your progress within the app itself. You will be able to see the overall -statistics of your current progress as you grow to become a top traveller! - -=== Address Book Achievements - -In the Address Book Achievements, you will be able to see: - -. Total Contacts in your Address Book out of 200 -. Number of contacts from different country - -=== Calendar Achievements (Coming in v1.4) - -=== Diary Achievements (Coming in v1.4) - -=== Financial Tracker Achievements (Coming in v1.4) - -=== Itinerary Achievements (Coming in v1.4) - -== FAQ - -*Q:* How do I backup my data onto cloud storage? + -*A:* Locate the ``data`` folder in the same directory where you saved you jar file. Compact it into zip file before uploading it onto cloud storage. - -*Q:* How do I transfer my data onto another computer? + -*A:* Backup your data first. Then, download TravEzy in the other computer and put your ``data`` folder on the same directory where you saved the jar file. Execute TravEzy and you should see your data has been safely transferred. - -*Q:* Can I change the theme of the application? I prefer to work with a night theme interface. + -*A:* Stay tuned for TravEzy v2.0 for this features! The TravEzy theme also aims to provide user with a UI that they are comfortable with. Hence, we strongly believe giving users the option to personalize their theme is extremely useful and would greatly consider adding it for the upcoming major update on TravEzy! Stay tuned for that! - -*Q:* Who can view my travel posts in my TravEzy? + -*A:* As TravEzy is a single user application, it is not opened to the public, and unable to be viewed by others. You can however, showcase your application in front of your friends to show off your overseas trips. + - -*Q:* Is it possible to connect to social media such as Facebook, Snapchat, Instagram? + -*A:* Currently, it is not possible to connect to social media using TravEzy. However, we will consider implementing this feature in the future! Stay tuned for that! ๐Ÿ˜‰ - -*Q:* Is there any in-app purchase for this application? + -*A:* NO there isnโ€™t. TravEzy is created from a non-profit organization and we are not here to milk any of your gold coins! It is absolutely free! It cost nothing, zilch, nada, ้›ถ, nil, kosong. So what are you waiting for get? Get TravEzy today! - -*Q:* Iโ€™m having difficulties uploading the pictures onto the travel diary. + -*A:* At the moment, TravEzy does not have any feature where it allows the user to store their travel photos. However, this will definitely be implemented in v2.0. We intend for the pictures to be stored in the user's local drive and subsequently in a cloud database which is stored online. - -*Q:* Who can I contact should there be a bug or feedback that I would like to share? + -*A:* Feel free to send an email to the developer team: mailto:thetravellerdiary@gmail.com[thetravellerdiary@gmail.com] and we will access to your queries within three working days. We also value your feedback and will use it to improve TravEzy. Thank you and we looking forward to serving you better! - -*Q:* What are some of the cool features that are available in TravEzy currently? + -*A:* TravEzy currently boast a plethora of features such as calendar, itinerary, address book, travelling diary, financial tracker and achievements page. All these features work in tandem with each other to give you the best and only the best travelling experience. Not only that, the TravEzy team also decided to spice things up and included some easter eggs scattered throughout the -application for users to discuss and discover. Hope that you have fun finding these cool easter egg features! ๐Ÿฐ๐Ÿฐ๐Ÿฐ - -== Command Summary - -Here are summary lists of commands for the different features. - -=== Calendar - -.Calendar Commands Summary -|=== -|Command |Function |Syntax - -|``add`` -|Adds a new event to your calendar -|``add EVENT TYPE n/NAME d/START DAY [m/START MONTH] [y/START YEAR] [D/END DAY] [M/END MONTH] [Y/END YEAR]`` - -|``delete`` -|Deletes an event from your calendar -|``delete EVENT TYPE n/NAME d/START DAY [m/START MONTH] [y/START YEAR] [D/END DAY] [M/END MONTH] [Y/END YEAR]`` - -|``show`` -|Shows the requested month view -|``show m/MONTH [y/YEAR]`` - -|``list`` -|Lists your events -|``list [d/START DAY] [m/START MONTH] [y/START YEAR] [D/END DAY] [M/END MONTH] [Y/END YEAR]`` - -|``check`` -|Checks whether you are available to travel during the specified time -|``check d/START DAY [m/START MONTH] [y/START YEAR] [D/END DAY] [M/END MONTH] [Y/END YEAR]`` - -|``suggest`` -|Suggests suitable time periods to travel -|``suggest d/START DAY [m/START MONTH] [y/START YEAR] [D/END DAY] [M/END MONTH] [Y/END YEAR] [p/PERIOD]`` - -|=== - -=== Itinerary - -.Itinerary Commands Summary -|=== -|Command |Function |Syntax - -|``add`` -|Add an event entry to the itinerary -|``add title/title date/date time/time [l/location] [d/description]`` - -|``delete`` -|Delete a certain entry from the itinerary -|``delete index`` - -|``edit`` -|Edit a certain entry from the itinerary -|``edit index title/title date/date time/time l/location d/description t/[tag]`` - -|``done`` -|Mark an event as done from the itinerary -|``done index`` - -|``list`` -|List all the events that are currently in the itinerary -|``list`` - -|``clear`` -|Clears the whole event list in the itinerary -|``clear`` - -|``greet`` -|Give user the current time and date. Also shows the events for today -|``greet`` - -|``help`` -|Pops up the help window for the itinerary page -|``help`` - -|``history`` -|Gives a list of the past user input to the itinerary page for that session -|``history`` - -|``search`` -|Search the whole event list and filter out events which meets the search condition -|``search [title \| date \| time \| location]/[keyword]`` - -|``sort`` -|Sort the event list based on the sorting condition -|``sort by/[title \| location \| chronological \| completion \| priority]`` - -|=== - -=== Address Book - -.Address Book Commands Summary -|=== -|Command |Function |Syntax - -|``add`` -|Adds a person to the address book -|``add n/NAME p/PHONE NUMBER e/EMAIL[t/TAG] [r/REMARK] [c/COUNTRY]`` - -|``clear`` -|Clears all entries from the address book -|``clear`` - -|``edit`` -| Edits an existing person in the address book -|``edit INDEX [n/NAME] [p/PHONE_NUMBER] [e/EMAIL] [a/ADDRESS] [t/TAG] [r/REMARK] [c/COUNTRY]`` - -|``delete`` -|Deletes the specified person from the address book -|``delete INDEX`` - -|``find`` -|Finds persons whose names contain any of the given keywords -|``find KEYWORD [MORE_KEYWORDS]`` - -|``list`` -|Shows a list of all persons in the address book. -|``list`` - -|``help`` -|View help -|``help`` - -|=== - -=== Financial Tracker - -.Financial Tracker Commands Summary -|=== -|Command |Function |Syntax - -|``add`` -|Adds an expense to the Financial Tracker -|``add a/AMOUNT d/DESCRIPTION t/TYPE OF EXPENDITURE [date/DATE] [time/TIME]`` - -|``edit`` -| Edits an existing expense in the Financial Tracker -|``edit INDEX [a/AMOUNT] [d/DESCRIPTION] [t/TYPE OF EXPENDITURE] [date/DATE] [time/TIME]`` - -|``delete`` -|Deletes the specified expense from the Financial Tracker -|``delete INDEX`` - -|``clear`` -|Clears all your expenses in your current country's expense list -|``clear`` - -|``undo`` -|Undo your previous action -|``undo`` - -|``switch`` -|Switch to another country's expense list -|``switch COUNTRY`` - -|``sort`` -|Sort your expense list based on amount, type, date, time or default -|``sort CRITERIA`` - -|``summary`` -|Generate an overview of your expenses statistics -|``summary`` - -|=== - -=== Travel Diary - -.Diary Commands Summary -|=== -|Command |Function |Syntax - -|``add`` -|Add a diary entry to the diary -|``add t/title d/date [p/place] [m/memory]`` - -|``delete`` -|Delete a certain entry from the diary -|``delete index`` - -|=== - - -=== TRIVAGO (Coming in V2.0) -``addData`` : add a new data to be used for price comparison + - -``showData`` : show the prices for a selected data + - -``deleteData`` : delete data used for price comparison + - -``compareData`` : compare prices between two data + - -``reviewData`` : review the previous few comparisons that user did + - -``listData`` : list out all the data that user has inputted into TTD - -Travel Recommendations: + -``setDates`` : set the dates for your proposed trip + - -``setPrice`` : set your price range + - -``setType`` : set the type of trip (Fun, educational etc) + - -``generate`` : generate recommendations from stored diaries - -NUS trips: + -``loadTrips`` : download trips from NUS societies + - -``deleteTrips`` : delete certain NUS trips + - -``showTrip`` : show your whole trip in a calendar view + - -``getSoc`` : get societies from NUS which organise trips + - -``deleteSoc`` : delete certain societies + - -``selectSoc`` : select a certain society to load trips - += TravEzy +:site-section: UserGuide +:toc: +:toc-title: +:toc-placement: preamble +:sectnums: +:imagesDir: images +:stylesDir: stylesheets +:xrefstyle: full +:experimental: +ifdef::env-github[] +:tip-caption: :bulb: +:warning-caption: โš ๏ธ +:note-caption: :information_source: +endif::[] +:repoURL: https://ay1920s1-cs2103t-t17-2.github.io/main/ + +By: `Team SE-EDU` Since: `Aug 2019` Licence: `MIT` + +Team: *T17-2* + +*Content* + + +== Introduction +//tag::intro +image::TraveEzyLogo.png[TravEzy Logo,width=600] + + +Welcome to _TravEzy_! ๐Ÿ˜Š + +Firstly, thank you for downloading our application. We greatly appreciate your support and +we *promise* to make travel easy with _TravEzy_. + +So, is _TravEzy_ for you? + +. Are you a busy university student with a passion for travelling? +. Are your summers and winters swamped with internships, projects and CCA activities? +. Do your numerous commitments get in the way of your travel plans? + +IF you answered yes to the questions above, then *yes* it is. If not, it still is :) + +What is _TravEzy_? + +_TravEzy_ is a desktop application with a command line interface (CLI) and is *perfect* for NUS students who love travelling as much as we do. With a CLI, you will be able to type in your commands much faster than similar applications which require you to keep using your mouse. Furthermore, since this is a desktop application, you do not need a web browser (like Chrome, Firefox, Internet Explorer, etc.) to start using _TravEzy_. + +TravEzy is perfect for: + +. Managing your busy calendar and finding the a good time to take that much needed holiday! + +. Creating the ideal itinerary for your trips :) + +. Tracking your expenses during your trip, so that you have enough money left for the trip home + +. Journaling in your travel diary and effortlessly looking at old entries to recall your favourite moments + +. Keep in contact with your old and new friends with the help of _TravEzy's_ address book + + +What are you waiting for? Hop on to this user guide and we will +travel to ++++++Section 2, โ€œQuick Startโ€++++++ to start TravEzy ๐Ÿ˜Š + +== Quickstart + +. Grab a cup of coffee. + +. Ensure that you have Java 11 or above installed in your Computer. + +. Download the latest +https://github.com/AY1920S1-CS2103T-T17-2/main/releases[TravEzy.jar] + +. Copy the file to the folder you want to use as the home folder for your _TravEzy_. + +. Double-click the file to start the app. +The GUI (Graphical User Interface) should appear in a few seconds. + + +. You are now in the Main Page of TravEzy. + +. At the bottom of the screen, type the command in the command box and press ** on your keyboard to execute it. +E.g. typing *help* and pressing ** will open the help window. + +Refer to Section 3, โ€œFeaturesโ€ for details of each command. + + + +== Preface + +Excited to start using _TravEzy_? Read this section to find out how this document is structured, and what each symbol and special font style mean. We promise that this will help you to get started with using _TravEzy_ more quickly! ๐Ÿ˜Š + +=== Structure of this Document + +There are *alot* of things that TravEzy can do. So, we have organised this document such that you can easily look for what *you* need. + + +We've split up this guide into the different features of our application, namely: + +* Main +* Calendar +* Itinerary +* Address Book +* Diary +* Achievements + +In each of the above sections, you will be introduced to the *interface* of the feature and the *commands* that will do the menial tasks for you. + +=== Reading this Document + +Symbols and fanciful (okay, different) fonts are exciting, aren't they? Let's find out more about what they mean in this document! + +.Symbols and fonts +[grid="rows", frame="none"] +|=== +| Symbol/font | What does it mean? + +| _italics_ +| Italicised text indicates that the text has a definition that is specific to the application. Do look out for the definitions of these words along the way. If not, please look at the glossary in section 13). + +| ``command`` +| A grey highlight means that you can type the words into _TravEzy_ and it will start performing tasks to make travel easier for you + +| ``MONTH`` +| Uppercase letters that are highlighted in grey indicate that the word is a _parameter_.footnote:[A parameter is like a field in your regular form. Just replace it and fill it up with anything appropriate. ๐Ÿ˜Š] + +| ``m/MONTH`` +| The slash and letter (or word) before the _parameter_ is a _prefix_. It is used to separate the current _parameter_ from other _parameters_. + +| ``[m/MONTH]`` +| Square brackets imply that the the stated _prefix_ and _parameter_ are optional. (This means less typing! ๐Ÿ˜†) + +| ๐Ÿ’ก +| A light bulb indicates that the enclosed text is a tip. + +| โš ๏ธ +| A warning sign indicates that enclosed text is important. + +|=== + + + +== Main + +Main is the welcome screen for _TravEzy_. From here, you can easily navigate to the other _pages_ (which contains the interface of the features): _calendar_, _itinerary_, _address book_, _financial tracker_, _diary_ and _achievements_. You can also the exit the application from here. + +=== Interface + +This is how _TravEzy's main_ page looks like: + +image::mainInterface.png[Main interface,width=800] + +=== Going to another page: ``goto`` + +Trying to open up the another _page_? Use this command! + +*Format:* + +``goto PAGE TYPE`` + +{nbsp} + +where ``PAGE TYPE`` can be any of the following: ``calendar``, ``itinerary``, ``address_book``, ``financial_tracker``, ``diary`` or ``achievements`` + +*Example:* + + goto itinerary + + +*Step by step:* + +Step 1. Type ``goto itinerary`` in the _command box_ and press _Enter_. + + +image::mainGoto1.png[Goto command] + +Step 2. You will be directed to the _itinerary page_. + +image::mainGoto2.png[Goto result] + + +=== Viewing help: ``help`` + +If you are lost, this command will be helpful. + +*Format:* + +``help`` + +*Step by step:* + +Step 1. Type ``help`` in the _command box_ and press _Enter_. + + +image::mainHelp1.png[Help command] + +Step 2. The message in the _result box_ will be updated to indicate that the help window has been opened. + +Step 3. The help window will appear as a pop-up and you may click the "copy link". This link will direct you to _TravEzy's_ user guide (i.e. this document).๐Ÿ˜Š + + +image::mainHelp2.png[Help result] + +=== Exiting the application: ``exit`` + +It's time to catch your flight, exit _TravEzy_ and start your trip! + +*Format:* + +``exit`` + +*Step by step:* + +Step 1. Type ``exit`` in the _command box_ and press _Enter_. + + +image::exit1.png[Exit command] + +Step 2. All _TravEzy's_ windows will close. + +WARNING: The above commands ``goto``, ``help`` and ``exit`` can also be executed from the other _pages_. + +== Calendar + +It's the end of the semester but there are still orientation camps, internships, and family commitments to attend to. However, after a long and tiring semester, the desire to unwind by travelling is just *too strong*. Sounds like you? + +Well, _TravEzy_ has got you covered. Simply inform _TravEzy_ of your schedule (your _commitments_, _school breaks_, public _holidays_ and _trips_) and _TravEzy_ will suggest periods of time when you can travel! Excited to find out more? Well... Read on! + +=== Interface + +This is how _TravEzy's calendar_ looks like: + +image::calendarScreenshots/calendarInterfaceUG.png[Calendar interface,width=800] + +{nbsp} + +To help you easily differentiate between various types of _events_, _TravEzy_ has categorised the _events_ into four types: _commitment_, _holiday_, _school break_ and _trip_. Visually, _TravEzy_ also uses different _labels_ for the different types of _events_, as shown in the image above. + +WARNING: The _labels_ indicate the *type* of _event_ you have for that particular day. It does not indicate the number of _events_. + +=== Adding an event to your calendar: ``add`` + +Whew! After reading so much, it is time to find out how you can add your _event_ so that _TravEzy_ can start suggesting when you can travel! ๐Ÿ˜Š + +*Format:* + +``add EVENT TYPE n/NAME d/START DAY [m/START MONTH] [y/START YEAR] [D/END DAY] [M/END MONTH] [Y/END YEAR]`` + +*Examples:* +**** +* To add a _commitment_, + + add commitment n/volunteer to tutor children d/2 m/Dec y/2019 D/5 M/Dec Y/2019 + +* To add a _holiday_, + + add holiday n/labour day d/1 m/May y/2020 + +* To add a _school break_, + + add school_break n/winter vacation d/8 m/Dec y/2019 D/12 M/Jan Y/2020 + +* To add a _trip_, + + add trip n/Bali 3D2N d/10 m/Dec y/2019 D/13 M/Dec Y/2019 + +**** + +*Step by step:* + +Step 1. Type ``add commitment n/volunteer to tutor children d/2 m/Dec y/2019 D/5 M/Dec Y/2019`` in the _command box_ and press _Enter_. + + +image::calendarScreenshots/add1.png[Add command,width=600] + +Step 2. The _month and year panel_ will change to "December" and the relevant view will be shown. + +Step 3. In the _month view panel_, you will be able to see the newly added _commitment labels_. + +Step 4. The _result box_ will also display a message to indicate that your _commitment_ has been successfully added. + + +image::calendarScreenshots/add2.png[Add result,width=600] + +TIP: You do not have to specify the ``END YEAR``, ``END MONTH`` and/or ``END DAY`` if they are the same as ``START YEAR``, ``START MONTH`` and/or ``START DAY``, respectively. This applies to the following commands as well. + +WARNING: If you leave out the month and/or year, the current month and/or year will be used. This applies to the following commands as well. + +=== Deleting an event from your calendar: ``delete`` + +Yes, we have all had that experience. We thought that next Friday is a public _holiday_ even though it isn't. However, you have added this _holiday_ to _TravEzy_! ๐Ÿ˜ง What should you do now? Delete it! + +But how? Well, this is the section for you. ๐Ÿ˜€ + +*Format:* + +``delete EVENT TYPE n/NAME d/START DAY [m/START MONTH] [y/START YEAR] [D/END DAY] [M/END MONTH] [Y/END YEAR]`` + +*Examples:* +**** +* To delete a _commitment_, + + delete commitment n/volunteer to tutor children d/2 m/Dec y/2019 D/5 M/Dec Y/2019 + +* To delete a _holiday_, + + delete holiday n/labour day d/1 m/May y/2020 + +* To delete a _school break_, + + delete school_break n/winter vacation d/8 m/Dec y/2019 D/12 M/Jan Y/2020 + +* To delete a _trip_, + + delete trip n/Bali 3D2N d/10 m/Dec y/2019 D/13 M/Dec Y/2019 + +**** + +*Step by step:* + +Step 1. Type ``delete commitment n/volunteer to tutor children d/2 m/Dec y/2019 D/5 M/Dec Y/2019`` in the _command box_ and press _Enter_. + + +image::calendarScreenshots/delete1.png[Delete command,width=600] + +Step 2. The _month and year panel_ will change to "December" and the relevant view will be shown. + +Step 3. In the _month view panel_, you will be able to see that the _commitment labels_ have been removed. + +Step 4. The _result box_ will also display a message to indicate that your _commitment_ has been successfully deleted. + + +image::calendarScreenshots/delete2.png[Delete result,width=600] + +=== Showing your schedule for the month: ``show`` + +After adding and deleting your events, you can have an overview of them! + +How easy is it? + +*Format:* + +``show m/MONTH [y/YEAR]`` + +*Example:* + + + show m/Dec + +*Step by step:* + +Step 1. Type ``show m/Dec`` in the _command box_ and press _Enter_. + + +image::calendarScreenshots/show1.png[Show command,width=600] + +Step 2. The _month and year panel_ and _month view panel_ will change to show you your schedule for this December. + +Step 3. The _result box_ will also display a message to indicate that _TravEzy_ is currently showing you your schedule for December. + + +image::calendarScreenshots/show2.png[Show result,width=600] + +WARNING: Do remember that if you leave out the year (as we have done in this example), the current year will be used. This applies to the following commands as well. + +=== Listing your events: ``list`` + +If you would like to view your events as a list instead, this command would be helpful! + +*Format:* + +``list [d/START DAY] [m/START MONTH] [y/START YEAR] [D/END DAY] [M/END MONTH] [Y/END YEAR]`` + +*Examples:* +**** +* To list all _events_, + + list + +* To list all _events_ that happen between 2 December 2019 to 10 December 2019, + + list d/2 m/Dec y/2019 D/10 M/Dec Y/2019 + +**** + +*Step by step:* + +Step 1. Type ``list`` in the _command box_ and press _Enter_. + + +image::calendarScreenshots/list1.png[List command,width=600] + +Step 2. A pop-up will appear to show you all your _events_. + +image::calendarScreenshots/list2.png[List result,width=600] + +Step 3. When you click at a region outside of the pop-up, the pop-up will disappear. How neat is that? + +=== Checking your availability for a trip: ``check`` + +Do you need to find out whether you are available to go for a trip? You can get _TravEzy_ to find that out for you (i.e. when you happen to have a _school break_/_holiday_ *and* do not have any _commitment_/_trip_). + +Let's find out how! + +*Format:* + +``check d/START DAY [m/START MONTH] [y/START YEAR] [D/END DAY] [M/END MONTH] [Y/END YEAR]`` + +*Examples:* +**** +* To check whether you are available on 9 December 2019, + + check d/9 m/Dec y/2019 + +* To check whether you are available from 9 to 20 December 2019, + + check d/9 m/Dec y/2019 D/20 M/Dec Y/2019 + +**** + +*Step by step:* + +Step 1. Type ``check d/9 m/Dec y/2019`` in the _command box_ and press _Enter_. + + +image::calendarScreenshots/check1.png[Check command,width=600] + +Step 2. The _month and year panel_ and _month view panel_ will change to show you your schedule for this December. + +Step 3. The _result box_ will display a message to indicate whether you are available to travel during the specified time. If you happen to be free (like in this case), you may start booking your trip! ๐Ÿ˜€ + + +image::calendarScreenshots/check2.png[Check result,width=600] + + +=== Suggesting a suitable time for a trip: ``suggest`` + +The end of the semester is near. It is time to look for some cheap flights๐Ÿ›ซ! However, before deciding which flight to book, you need to find out when you can travel. Need some help with that? No worries! _TravEzy_ has got you covered. ๐Ÿ˜Š + +How so? Just ask _TravEzy_ to suggest a suitable time! + +*Format:* + +``suggest d/START DAY [m/START MONTH] [y/START YEAR] [D/END DAY] [M/END MONTH] [Y/END YEAR] [p/PERIOD]`` + +*Examples:* +**** +* To find out when you can travel between 9 and 20 December 2019, + + suggest d/9 m/Dec y/2019 D/20 M/Dec Y/2019 + +* To find out when you can travel for at least 5 days between 9 and 20 December 2019, + + suggest d/9 m/Dec y/2019 D/20 M/Dec Y/2019 p/5 + +**** + +*Step by step:* + +Step 1. Type ``suggest d/9 m/Dec y/2019 D/20 M/Dec Y/2019`` in the _command box_ and press _Enter_. + + +image::calendarScreenshots/suggest1.png[Suggest command,width=600] + +Step 2. The _month and year panel_ and _month view panel_ will change to show you your schedule for this December. + +Step 3. The _result box_ will display a message to indicate when you are able to travel during the specified time. + + +image::calendarScreenshots/suggest2.png[Suggest result,width=600] + +== Itinerary + +Now that you have booked your flight, it's time to start planning your trip using _TravEzy's_ Itinerary. + +In _TravEzy_, we have broken down your events into 6 key parts, namely _Title_, _Date_, _Time_, _Location_, +_Description_ and _Tag_. + +For example, here is an Itinerary entry about our trip to Japan + +. _Title_ -> Visit Tokyo DisneySea +. _Date_ -> 12122019 +. _Time_ -> 1000 +. _Location_ -> DisneySea +. _Description_ -> Remember to take pictures with the Disney Mascots! +. _Tag_ -> Priority: Critical + +In the Itinerary, you will be able to add, delete, edit, list and show your entries. There are also a few more special +tasks that you can do with your Itinerary. Read on to find out more! ๐Ÿ˜Š + +=== Interface + +This is how _TravEzy's_ Itinerary looks like: + +image::ItineraryInterface.png[width=800] + +=== Auto-completion feature + +Don't you wish there's a way to quickly type all your commands. Well _TravEzy's_ Itinerary got you covered! _TravEzy's_ +Itinerary _command box_ has auto-completion function which offers suggestions based on your input. + +This is how _TravEzy's_ Itinerary auto-complete looks like: + +image::ItineraryAuto.png[width=600] + +1. _Auto-complete dropdown bar_. Provides suggestions to complete your command base on your current input typed in the +_command box_. + +[WARNING] +The _auto-complete dropdown bar_ requires some time to sync with the input typed in the command box. Hence, give some time for +it to read the input before hitting _Enter_ + +=== Adding an event: ``add`` + +Planning to visit DisneySea tomorrow? Add some rides that you plan to take then! ๐ŸŽข + +*Format:* + +``add title/TITLE date/DATE time/TIME [l/LOCATION] [d/DESCRIPTION]`` + +*Example:* + + add title/Ride DisneySea Electric Railway date/12122019 time/1500 l/DisneySea + +*Step by step:* + +Step 1. Type ``add title/Ride DisneySea Electric Railway date/12122019 time/1500 l/DisneySea`` in the _command box_. + +Step 2. Remember to prioritize your events using the _Priority dropdown box_, to one of the 5 different priorities: + +. Priority: None +. Priority: Low +. Priority: Medium +. Priority: High +. Priority: Critical + +After selecting the priority for the event, press _Enter_. + +image::ItineraryAdd1.png[width=600] + +Step 3. The _result box_ will display the message "Processing... +Done! +Your event has been successfully added! HAND, TravEzy! :D" + +Step 4. Now you can find your added event in the the event list. + +image::ItineraryAdd2.png[width=600] + +=== Deleting an event: ``delete`` + +Had a change in plan during your trip but have already keyed in the event into _TravEzy's_ Itinerary? Don't worry +you can always remove it from the _event list_. + +Read on to find out more! + +*Format:* + +``delete INDEX`` + +*Example:* + + delete 4 + +*Step by step:* + +Step 1. Type ``delete 4`` in the _command box_ and press _Enter_. + +image::ItineraryDelete1.png[width=600] + +Step 2. The _result box_ will display the message "Processing... +Done! +Your event has been deleted successfully. Yay! :^)" + +Step 3. The new _event list_ will be shown with the specified event being removed. + +image::ItineraryDelete2.png[width=600] + +=== Editing an event: ``edit`` + +Rather than deleting an event when you have a change of plans, why not edit the details of the event instead? + +*Format:* + +``edit INDEX [title/TITLE] [date/DATE] [time/TIME] [l/LOCATION] [d/DESCRIPTION] [tag/]`` + +[TIP] +If you wish to edit the tag field in the event, indicate it with the prefix ``tag/`` and use the _Priority Dropdown Box_ +to select the new priority. + +*Example:* + + edit 4 title/Explore DisneySea's Aquatopia d/Take photos of the fishes tag/ + +*Step by step:* + +Step 1. Type ``edit 4 title/Explore DisneySea's Aquatopia d/Take photos of the fishes tag/`` in the _command box_. + +Step 2. If you indicate a change of the priority in the edit command using ``tag/``, do remember to select the new priority using +the _Priority Dropdown Box_. + +image::ItineraryEdit1.png[width=600] + +Step 3. The _result box_ will display the message "Updated successfully! :D +HAND, TrazEzy~" + +Step 4. _TravEzy's_ Itinerary will showcase the new _event list_ with the edited event. + +image::ItineraryEdit2.png[width=600] + +=== Checking a command as done: ``done`` + +Impressive! After you have completed an event that you have planned for the day, _TravEzy_ itinerary lets you check that +event as done. โœ… + +*Format:* + +``done INDEX`` + +*Example:* + + done 4 + +*Step by step:* + +Step 1. Type ``done 4`` in the _command box_ and press _Enter_. + +image::ItineraryDone1.png[width=600] + +Step 2. The _result box_ will display the message "Processing... +Done! +Your event has been marked done successfully. Yay! :^)" + +Step 3. In the _event list_, that event will be marked as done. Great Job! ๐Ÿ‘ + +image::ItineraryDone2.png[width=600] + +=== Listing all events: ``list`` + +What if you want to see all your events in ONE, CONTINUOUS list? The Itinerary allows you to see everything in one, +convenient list! + +*Format:* + +``list`` + +*Example:* + + list + +*Step by step:* + +Step 1. Type ``list`` in the _command box_ and press _Enter_. + +image::ItineraryList1.png[width=600] + +Step 2. The _result box_ will display the message "Processing... +Done! +Your event has been marked done successfully. Yay! :^)" + +Step 3. A continuous _event list_ will be shown with all the events in the Itinerary. + +image::ItineraryList2.png[width=600] + +=== Clearing all entries: ``clear`` + +After using _TravEzy_ Itinerary for a long time, you might find that your Itinerary is cluttered with many past events. +However, it might be a hassle to delete each events one by one. + +Don't worry, _TravEzy's_ Itinerary got you covered and allows you to clear the entire _event list_ instead. + +How convenient is that! ๐Ÿ˜„ + +[WARNING] +The clear function removes *ALL* the events that you have planned in your _event list_. This action *CANNOT* be +undone. Hence, only click on the *Proceed* button if you are sure that you want to clear your _event list_. + +*Format:* + +``clear`` + +*Example:* + + clear + +*Step by step:* + +Step 1. Type ``clear`` in the _command box_ and press _Enter_. + +image::ItineraryClear1.png[width=600] + +Step 2. A popup window will appear prompting whether you would like to _Proceed_ in clearing all your events from the +_event list_. + +Step 3. The _result box_ will display the message "Currently viewing clear window warning.". + +image::ItineraryClear2.png[width=600] + +Step 4. Upon selecting _Proceed_, a notification will be shown on the screen with the message, "Done! We have wiped off +all your events from the face of this Earth! ( ๏พŸใƒฎ๏พŸ)". + +image::ItineraryClear3.png[width=600] + +=== Greet TravEzy itinerary: ``greet`` + +Start you day right by saying hello to _TravEzy_ Itinerary and it will greet you back with the current _time_ and _date_. +_TravEzy_ will also filter the _event list_ to showcase events that are due today. + +*Format:* + +``greet`` + +*Example:* + + greet + +*Step by step:* + +Step 1. Type ``greet`` in the _command box_ and press _Enter_. + +image::ItineraryGreet1.png[width=600] + +Step 2. The _result box_ will display the message "Hello! Welcome to the itinerary page!" this will be followed by the +current _date_ and _time_. + +Step 3. The _event list_ in the Itinerary will only showcase events that are due for the day. + +image::ItineraryGreet2.png[width=600] + +=== Showing past commands: ``history`` + +Curious on what are the past commands that you have inputted during the current session? _TravEzy_ will show you a list of +your past commands for the Itinerary. + +Let's find out how! + +*Format:* + +``history`` + +*Example:* + + history + +*Step by step:* + +Step 1. Type ``history`` in the _command box_ and press _Enter_. + +image::ItineraryHistory1.png[width=600] + +Step 2. The _result box_ will display the message "Commands called for this session (Most recent โ†’ Earliest):" +followed by the list of past commands that are being called in the Itinerary for that session. + +image::ItineraryHistory2.png[width=600] + +=== Searching for an event: ``search`` + +Does your _event list_ too many events to browse through? Let _TravEzy_ Itinerary help you by searching for events that matches specific +keywords. ๐Ÿ˜Š + +[TIP] +If your _event list_ is too cluttered up, try using the ``clear`` command instead to reset the *whole* _event list_ instead. + +*Format:* + +``search SEARCH CONDITION`` + +where ``SEARCH CONDITION`` can be any of the following: ``title/TITLE``, ``date/DATE``, ``time/TIME``, ``l/LOCATION``, +``d/DESCRIPTION`` or ``tag/`` + +*Example:* + + search date/12122019 l/DisneySea + +*Step by step:* + +Step 1. Type ``search`` in the _command box_ and press _Enter_. + +image::ItinerarySearch1.png[width=600] + +Step 2. The _result box_ will display the message "Processing... +Done! +Here are the events that matches the details. ( อกยฐ อœส– อกยฐ)" + +Step 3. The filtered _event list_ will be shown containing events that matches the keywords given. + +image::ItinerarySearch2.png[width=600] + +=== Sorting the events: ``sort`` + +Organizing your events in the _event list_ has never been easier the Itinerary's awesome sorting capabilities. ๐Ÿ’ฏ + +Format: + +``sort by/SORT CONDITION`` + +where ``SORT CONDITION`` can be any of the following: ``title``, ``location``, ``chronological``, ``completion`` or +``priority`` + +*Example:* + + sort by/priority + +*Step by step:* + +Step 1. Type ``sort by/priority`` in the _command box_ and press _Enter_. + +image::ItinerarySort1.png[width=600] + +Step 2. The _result box_ will display the message "Processing... +Done! +TravEzy has helped sorted out your life!" + +Step 3. The Itinerary will present the sorted _event list_ based on the sort condition given. + +image::ItinerarySort2.png[width=600] + +== Address Book + +You are heading to a different country for a trip this holiday and you want to let your friends in other countries know +that you are coming over. The troubles of managing contacts from many different countries can be overwhelming with a +large number of contacts. Looking for a better contacts management application? + +_TravEzy_ is the better contact management you are looking for. _TrazvEzy_ allows you to add your contacts information +specifying your contact's country. How does _TravEzy_ do it? Read on to find our more. + +=== Interface + +Navigating around the address book page: + +image::AddressBookInterface.png[width=800] + +=== Adding a person: `add` + +Met a new friend in a new foreign country during your holiday trip? Add him / her to your _TravEzy_ address book. + +*Format:* + +`add n/NAME p/PHONE_NUMBER e/EMAIL a/ADDRESS [t/TAG] [r/REMARK][c/COUNTRY]` + +[WARNING] +Address Book does not allow duplicate contacts. A person should not have the same `NAME`, `PHONE` and `EMAIL` + +[TIP] +Tags are useful ways to categorize your contacts. For example, tag a person with: + + + +`add n/Alice p/918273645 e/alice@example.com t/friend`, +the `t/` prefix is used for tagging. + + + +A person can have any number of tags (including 0) + +*Examples:* +**** +* To add a person into the address book, + + add n/John Doe p/98765432 e/johnd@example.com a/John street, block 123, #01-01 + +* To add a person into the address book specifying a tag and country, + + add n/Betsy Crowe t/friend e/betsycrowe@example.com a/Newgate Prison p/1234567 t/criminal r/Best friend c/Singapore + +**** + +*Step by Step:* + +Step 1. Type `add n/Alice p/918273645 e/alice@example.com a/566,Yishun Ring Road, #14-113` in the _command box_ and +click _Enter_. + +image::AddressBookAdd1.png[width=600] + +Step 2. In the _persons list panel_, you can now see that Alice has been added into the address book. + +Step 3. The _result box_ will also display a message that your contact has been added. + +image::AddressBookAdd2.png[width=600] + +=== Listing all persons : `list` + +After adding your contacts, you may want to see an overview of your contact information in the address book. +See everyone in your address book with one command! + +*Format:* + +`list` + +**** +*Examples:* + +* To list your contacts, + + list +**** + +*Step by Step:* + +Step 1. Type `list` in the _command box_ and click _Enter_. + +image::AddressBookList1.png[wdith=600] + +Step 2. See the overview of your contact information in the _persons list panel_ + +Step 3. The _result box_ will also display a message that all your contact information has been listed. + +image::AddressBookList2.png[width=600] + +=== Editing a person : `edit` + +Oh no, you have added a wrong contact into the address book! Edit all your contact information in the address book +inside _TravEzy_. + +*Format:* + +`edit INDEX [n/NAME] [p/PHONE] [e/EMAIL] [a/ADDRESS] [t/TAG] [r/REMARK] [c/COUNTRY]` + +[WARNING] +Edits the person at the specified `INDEX`. The index refers to the index number shown in the displayed person list. The index *must be a positive integer* 1, 2, 3, ... + + + +At least one of the optional fields must be provided. + + + + Existing values will be updated to the input values. + + + +When editing tags, the existing tags of the person will be removed i.e adding of tags is not cumulative. + +[TIP] + You can remove all the person's tags by typing `t/` without specifying any tags after it. + + + + You can remove the person's remark by typing `r/` without specifying any remark after it. + + + + You can remove the person's country by typing `c/` without specifying any country after it. + +**** + +Examples: + +* To edit a 1st person's phone number and email address to be `91234567` and `johndoe@example.com` respectively. + + + edit 1 p/91234567 e/johndoe@example.com + +* To edit the name of the 2nd person to be `Betsy Crower` and clears all exisiting tags. + + edit 2 n/Betsy Crower t/ + +* To edit the name of the 3rd person to be `Alexander Bell` and clears all existing country information. + + edit 3 n/Alexander Bell c/ + +**** + +*Step by Step:* + +Step 1. Type `edit7 p/9082373645` to edit Alice's phone number to reflect the correct phone number `908237645` + +image::AddressBookEdit1.png[width=600] + +Step 2. The _persons list panel_ will now display the updated information for Alice after the edit + +Step 3. The _result box_ will display a message that the person has been edited if successful. + +image::AddressBookEdit2.png[wdith=600] + + +=== Locating persons by name: `find` + +Your address book have many contacts and you would need to have a way to find your contacts information with keywords. + + +Format: `find KEYWORD [MORE_KEYWORDS]` + +[WARNING] + The search is case insensitive. e.g `hans` will match `Hans` + + + + The order of the keywords does not matter. e.g. `Hans Bo` will match `Bo Hans` + + + + Only the name is searched. + + + + Only full words will be matched e.g. `Han` will not match `Hans` + +[TIP] +Persons matching at least one keyword will be returned (i.e. `OR` search). e.g. `Hans Bo` will return `Hans Gruber`, `Bo Yang` + +Examples: +**** +* To find `John`, + + find John + +* To return any person having names `Besty`, `Time` or `John`, + + find Betsy Tim John + +**** + +*Step by Step* + +Step 1. Type `find Alice` in the _command box_ and click _Enter_ + +image::AddressBookFind1.png[width=600] + +Step 2. The found results will be displayed at the _persons list panel_. + +Step 3. The _result box_ will also display a message to indicate the number of matching results found. + +image::AddressBookFind2.png[width=600] + +=== Deleting a person : `delete` + +While organizing your _TravEzy_ address book, you want to clear your old contacts. + +*Format:* + + `delete INDEX` + +[WARNING] +The index refers to the index number shown in the displayed person list. + + + +The index *must be a positive integer* 1, 2, 3, ... + +**** +Examples: + +* Delete the 2nd person in the address book. + + + delete 2 + +* Deletes the 1st person in the results of the `find` command. + + + find Betsy + delete 1 + +**** + +*Step By Step:* + +Step 1. Type `delete 7` in the _command box_ and click _Enter_ + +image::AddressBookDelete1.png[width=600] + +Step 2. The _persons list panel_ will display the updated address book after deleting the specified contact + +Step 3. The _result box_ will also display a message to notify that the person has been deleted from the contact book. + +image::AddressbookDelete2.png[width=600] + +// end::delete[] +=== Clearing all entries : `clear` + +Your address book is in a mess, and you would like to clear all exisiting entries in the address book and restart from scratch + + +Format: + +`clear` + +[WARNING] +You will not be able to undo this operation. Think twice before entering this command! + +*Step by step:* + +Step 1. Type `clear` into the _command box_ and click _Enter_ + +image::AddressBookClear1.png[width=600] + +Step 2. The _persons list panel_ is now cleared. You will see an empty _persons list panel_. + +Step 3. The _result box_ will display a message that tells you that the address book has been cleared. + +image::AddressBookClear2.png[width=600] + +=== Saving the data + +Address book data are saved in the hard disk automatically after any command that changes the data. + + +There is no need to save manually. + +== Financial Tracker +Scare that you're gonna overspend whenever you're on a trip? Afraid no more! TravEzy's Financial Tracker allow you to track your expenses seamlessly! + +Each of your expense has 6 key fields: + +. Date +. Time +. Amount +. Description +. Type of expenditure +. Country + +The Date and Time specify when you spend your expenses, followed by the amount, description, types of expenditure and country where you're current travelling at. Example of the types of expenditure are food, entertainment, health care, etc. You name it, TravEzy tracks it! In Financial Tracker, you will be able to manage your expenses easily. + +=== Interface +This is what you will see when navigated to the financial tracker: + +image::FinancialTrackerInterface.png[Financial Tracker interface,width=800] + +=== Adding an expense: ``add`` +Adding the expense of milk you've bought at the grocery shop you stopped by? + +WARNING: You can only add a total maximum amount of one trillion! + +*Format:* + +``add a/AMOUNT d/DESCRIPTION t/TYPE OF EXPENDITURE [date/DATE] [time/TIME]`` + +*Example:* + + add a/2.89 d/Meiji Milk t/grocery + +*Step by step:* + +Step 1. Type ``add a/2.89 d/Meiji Milk t/grocery`` in the _Command box_ and press _Enter_. + +image::FinancialTrackerAdd1.png[width=600] + +Step 2. The _Result box_ will display the message "Expense added". + +Step 3. Now you can find your added expense in the _Expense list panel_. + +image::FinancialTrackerAdd2.png[width=600] + +=== Deleting an expense: ``delete`` +Added a wrong expense? Of course you can delete it if you want to :) + +*Format:* + +``delete INDEX`` + +*Example:* Delete the first expense you saw on your expense list. + + delete 1 + +*Step by step:* + +Step 1. Type ``delete 1`` in the _Command box_ and press _Enter_. + +image::FinancialTrackerDelete1.png[width=600] + +Step 2. The _Result box_ will display the message "Your expense has been deleted". + +image::FinancialTrackerDelete2.png[width=600] + +=== Editing an expense: ``edit`` +Add a wrong expense? Why not edit it instead! + +*Format:* + +``edit INDEX [a/AMOUNT] [d/DESCRIPTION] [t/TYPE OF EXPENDITURE] [date/DATE] [time/TIME]`` + +*Example:* Edit the 1st expense you saw on your expense list. + + edit 1 a/29.80 d/Nike bottle + +*Step by step:* + +Step 1. Notice the first expense's fields in the _Expense list panel_. + +Step 2. Now, type ``edit 1 a/29.80 d/Nike bottle`` in the _Command box_ and press _Enter_. + +image::FinancialTrackerEdit1.png[width=600] + +Step 3. The _Result box_ will display the message "The expense updated successfully!". + +Step 4. Now the first expense's amount and description fields have been changed to `29.80` and `Nike bottle` respectively. + +image::FinancialTrackerEdit2.png[width=600] + +=== Clears an expense list: ``clear`` +Messed up your expense list? Don't worry, just clear it! + +*Format:* + +``clear`` + +*Example:* Clears your current country's expense list. + + clear + +*Step by step:* + +Step 1. Type ``clear`` in the _Command box_ and press _Enter_. + +image::FinancialTrackerClear1.png[width=600] + +Step 2. The _Result box_ will display the message "Expense list cleared!". + +Step 3. Now in your _Expense list panel_, your expense list has been cleared! + +image::FinancialTrackerClear2.png[width=600] + +=== Undo your previous action: ``undo`` +Did something wrong? We heard you! Simply undo your previous action :) + +WARNING: You can only undo your previous `add`, `edit`, `delete` and `clear` command. + +*Format:* + +``undo`` + +*Example:* Undo your previous `clear` command. + + undo + +*Step by step:* (A continue from above `clear` command) + +Step 1. Type ``undo`` in the _Command box_ and press _Enter_. + +image::FinancialTrackerUndo1.png[width=600] + +Step 2. The _Result box_ will display the message "Done!". + +Step 3. Notice that your expense list has been recovered. Nice save! + +image::FinancialTrackerUndo2.png[width=600] + +// tag::financialtracker[] +=== Switching between countries: ``switch`` +Currently in somewhere else? Switch to that expense list instead! + +*Format:* + +`switch COUNTRY` + +TIP: Do realise that you can always use the drop down menu instead! + +WARNING: You can only type in countries which are only listed from the _Countries dropdown box_ + +*Example:* + + switch Japan + +*Step by step:* + +Step 1. Type ``switch Japan`` in the _Command box_ and press _Enter_. + +image::FinancialTrackerSwitch1.png[width=600] + +Step 2. The _Result box_ will display the message "Expense list switched". + +Step 3. Now your expense list inside the _Expense list panel_ has been switched to that which is in Japan! + +image::FinancialTrackerSwitch2.png[width=600] + +=== Sort out your expense list: ``sort`` +The default sorting way of the expense list is not your thing? Just sort your expense list according your needs! + +TIP: All of the sorting is done in reversed order :) + +*Format:* + +``sort CRITERIA`` + +Where ``CRITERIA`` can be ``amount``, ``date``, ``time``, ``type`` and ``default`` + +*Example:* to sort by amount + + sort amount + +*Step by step:* + +Step 1. Notice the amount field in each expenses are currently not in order. + +Step 2. Now, type ``sort amount`` in the _Command box_ and press _Enter_. + +image::FinancialTrackerSort1.png[width=600] + +Step 3. The _Result box_ will display the message "Expense List sorted!". + +Step 4. Now all your expenses are sorted in descending order of your amount! + +image::FinancialTrackerSort2.png[width=600] + +=== Generate an overview of your spending: ``summary`` +Do you ever have difficulty summarising your spending? Afraid not! You can view you expenses statistics easily! + +*Format:* + +`summary` + +*Example:* + + summary + +*Step by step:* + +Step 1. Type `summary` in the _Command box_ and press _Enter_. + +image::FinancialTrackerSummary1.png[width=600] + +Step 2. The result box will display the message "Currently viewing the Summary Window". + +Step 3. As you should have noticed, the Summary Window has been popped out showing you statistics of your expenses in a nice-looking pie chart and bar chart form! + +image::FinancialTrackerSummary2.png[width=600] +// end::financialtracker[] + +== Diary + +The sweetest part of any holiday is looking back at your fond memories. TravEzy's +Diary allows you to do just that! Here is our Diary! + +image::DiaryInterface.png[width=800] + + +In TravEzy, we have broken down your memories into 4 key parts, namely _Title_, _Date and Time_, _Place_ and _Memory_. + +For example, here is a Diary Entry about our trip to Tioman + +. _Title_ -> First time Snorkeling +. _Date and Time_ -> 30/12/2019 0900 +. _Place_ -> Tioman Island +. _Memory_ -> Saw so may beautiful fish! + +In the Diary, you will be able to add, delete, list and show your entries. There are also a few more special tasks that you can do with your diary. +Enjoy! + + +=== Adding diary entries to your diary ``add`` + +Trying to journal about your fishing trip? The Diary allows you to add entries and keep them alive in your desktop forever. + +Format: `add t/TITLE d/DATE TIME [p/PLACE] [m/MEMORY]` + + +Example: Lets take the example of our midnight fishing trip! + +Step 1: Enter ``add t/Fishing Trip d/12/12/2019 2300 p/Pulau Tekong m/Caught the biggest fish ever!`` + +image::DiaryAddBefore.png[width=600] + +Step 2: TravEzy will tell you if your `add` command was successful in the _Result Display_ + +Step 3: You can see you added entry in the _Diary List_ + + +image::DiaryAddAfter.png[width=600] + + + +=== Deleting diary entries from your diary ``delete`` + +For some memories, it's best to forget them โ˜น. The Diary can help you to get rid of unpleasant diary entries. + +Format: ``delete INDEX`` + +Example: I lost my wallet at the amusement park in Genting, I don't want to remember +that trip ever again :( + +Step 1: Enter ``delete 2`` + + +image::DiaryDeleteBefore.png[width=600] + +Step 2: TravEzy will tell you if your `delete` command was successful in the _Result Display_ + +Step 3: You can see your updated _Diary List_ without the horrible memory + + +image::DiaryDeleteAfter.png[width=600] + + + + +=== List all your diary entries ``list`` + +What if you want to see all your memories in _ONE_, _CONTINUOUS_ list? The Diary allows you to see everything in on, convenient list! + +Format: ``list`` + +Example: I want to relive *EVERYTHING* + +Step 1: Enter ``list`` + + +image::DiaryListBefore.png[width=600] + +Step 2: TravEzy will tell you if your `list` command was successful in the _Result Display_ + +Step 3: You can see all your entries in the _Diary List_ + + +image::DiaryListAfter.png[width=600] + +=== Find diary entries ``find`` + +"Hey, when did I go to Spain?" It can be hard to remember +all the details of your trips. That's why, this Diary allows you to look through all your entries to find the ones you want! + +Format: ``find TARGET`` + +Example: I want to see what I wrote about the Rugby World Cup + + +Step 1: Enter ``find rugby`` + + +image::DiaryFindBefore.png[width=600] + +Step 2: TravEzy will tell you if your `find` command was successful in the _Result Display_ + +Step 3: You can see the matching entries in your _Diary List_ + + + +image::DiaryFindAfter.png[width=600] + + + +=== Find specific diary entries ``findSpecific`` + +Let's narrow down your search! The diary allows you to look through specific sections of each entry to find the exact entry that you want! + + +Format: ``findSpecific [t/TITLE] [d/DATE TIME] [p/PLACE] [m/MEMORY]`` + +Example: I know that I had a trip on the 12th of December 2019, but I cant remember what I did... + + +Step 1: Enter ``findSpecific d/12/12/2019`` + + + +image::DiaryFindSpecificBefore.png[width=600] + +Step 2: TravEzy will tell you if your `findSpecific` command was successful in the _Result Display_ + +Step 3: You can see the specific matching entries in your _Diary List_ + + + +image::DiaryFindSpecificAfter.png[width=600] + + +=== Private personal memories ``private`` + +There are some personal memories which are for our eyes only. The Diary can help you to private memories from prying eyes. + +Format: ``private INDEX`` + +Example: I had my first sip of wine today at the restaurant! I don't want my mum to find out... + +Step 1: Enter ``private 4`` + + +image::DiaryPrivateBefore.png[width=600] + +Step 2: TravEzy will tell you if your `private` command was successful in the _Result Display_ + +Step 3: You can see your updated _Diary List_, after the memory has been hidden + + + +image::DiaryPrivateAfter.png[width=600] + + +=== Unprivate personal memories ``unprivate`` + +Once you know you are alone and away from prying eyes, you can look at your private memories safely. The Diary can help you to unprivate those memories. + +Format: ``unprivate INDEX`` + +Example: Ok!, I'm alone and I want to look at my private memories + +Step 1: Enter ``unprivate 4`` + + + +image::DiaryUnPrivateBefore.png[width=600] + +Step 2: TravEzy will tell you if your `unprivate` command was successful in the _Result Display_ + +Step 3: You can see your updated _Diary List_, after the memory is visible again + + +image::DiaryUnPrivateAfter.png[width=600] + + +=== Keep your diary protected ``setDetails`` + +You never know who may use your laptop when you're away. The Diary can help you to password protect your memories to stop hackers from looking at your private memories. +If you ``setDetails``, you will not be able to use the ``unprivate`` command and will have to use the ``unlock`` command (See below) + +Format: ``setDetails user/USERNAME password/PASSWORD`` + +Example: Better set a password to protect my memories against prying eyes + +Step 1: Enter ``setDetails user/youcanthackme password/youreallycanthackme`` + + + +image::DiarySetDetailsBefore.png[width=600] + + +Step 2: TravEzy will tell you if your `unprivate` command was successful in the _Result Display_ + + + +image::DiarySetDetailsAfter.png[width=600] + + +Step 1: Lets say someone tries to hack you + +image::DiarySetDetailsHack.png[width=600] + +Step 1: TravEzy will protect you if someone else tries to change your details + + +image::DiarySetDetailsHackFail.png[width=600] + + + +=== Unlock your private diary entries ``unlock`` + +With password protection, we want to ensure no one else can access our memories . The Diary can do this by ensuring only you can see the private memories. + +Format: ``unlock INDEX user/USERNAME password/PASSWORD`` + +Example: Time to look at all my private memories + +Step 1: Enter ``unlock 4 user/youcanthackme password/youreallycanthackme`` + + + +image::DiaryUnLockBefore.png[width=600] + + +Step 2: TravEzy will tell you if your `unlock` command was successful in the _Result Display_ + + + +image::DiaryUnLockAfter.png[width=600] + + +Step 1: Lets say someone tries to hack you + +image::DiaryUnLockHackBefore.png[width=600] + +Step 1: TravEzy will protect you if someone else tries to change your details + + +image::DiaryUnLockHackAfter.png[width=600] + + + +== Achievements + +Travezy provides a way for you to look through your progress within the app itself. You will be able to see the overall +statistics of your current progress as you grow to become a top traveller! + +=== Address Book Achievements + +In the Address Book Achievements, you will be able to see: + +. Total Contacts in your Address Book out of 200 +. Number of contacts from different country + +=== Calendar Achievements (Coming in v1.4) + +=== Diary Achievements (Coming in v1.4) + +=== Financial Tracker Achievements (Coming in v1.4) + +=== Itinerary Achievements (Coming in v1.4) + +== FAQ + +*Q:* How do I backup my data onto cloud storage? + +*A:* Locate the ``data`` folder in the same directory where you saved you jar file. Compact it into zip file before uploading it onto cloud storage. + +*Q:* How do I transfer my data onto another computer? + +*A:* Backup your data first. Then, download TravEzy in the other computer and put your ``data`` folder on the same directory where you saved the jar file. Execute TravEzy and you should see your data has been safely transferred. + +*Q:* Can I change the theme of the application? I prefer to work with a night theme interface. + +*A:* Stay tuned for TravEzy v2.0 for this features! The TravEzy theme also aims to provide user with a UI that they are comfortable with. Hence, we strongly believe giving users the option to personalize their theme is extremely useful and would greatly consider adding it for the upcoming major update on TravEzy! Stay tuned for that! + +*Q:* Who can view my travel posts in my TravEzy? + +*A:* As TravEzy is a single user application, it is not opened to the public, and unable to be viewed by others. You can however, showcase your application in front of your friends to show off your overseas trips. + + +*Q:* Is it possible to connect to social media such as Facebook, Snapchat, Instagram? + +*A:* Currently, it is not possible to connect to social media using TravEzy. However, we will consider implementing this feature in the future! Stay tuned for that! ๐Ÿ˜‰ + +*Q:* Is there any in-app purchase for this application? + +*A:* NO there isnโ€™t. _TravEzy_ is created from a non-profit organization and we are not here to milk any of your gold coins! It is absolutely free! It cost nothing, zilch, nada, ้›ถ, nil, kosong. So what are you waiting for get? Get TravEzy today! + +*Q:* Iโ€™m having difficulties uploading the pictures onto the travel diary. + +*A:* At the moment, _TravEzy_ does not have any feature where it allows the user to store their travel photos. However, this will definitely be implemented in v2.0. We intend for the pictures to be stored in the user's local drive and subsequently in a cloud database which is stored online. + +*Q:* Who can I contact should there be a bug or feedback that I would like to share? + +*A:* Feel free to send an email to the developer team: mailto:thetravellerdiary@gmail.com[thetravellerdiary@gmail.com] and we will access to your queries within three working days. We also value your feedback and will use it to improve TravEzy. Thank you and we looking forward to serving you better! + +*Q:* Is it advisable to edit the storage files in _TravEzy_ so that the changes will be reflected when I start the application? + +*A:* _TravEzy_ gives you a caveat and strongly advise against tempering with the storage files in _TravEzy_ as this could result in falsification of the data. + +*Q:* What are some of the cool features that are available in TravEzy currently? + +*A:* TravEzy currently boast a plethora of features such as calendar, itinerary, address book, travelling diary, financial tracker and achievements page. All these features work in tandem with each other to give you the best and only the best travelling experience. Not only that, the TravEzy team also decided to spice things up and included some easter eggs scattered throughout the +application for users to discuss and discover. Hope that you have fun finding these cool easter egg features! ๐Ÿฐ๐Ÿฐ๐Ÿฐ + +== Command Summary + +Here are summary lists of commands for the different features. + +=== Calendar + +.Calendar Commands Summary +|=== +|Command |Function |Syntax + +|``add`` +|Adds a new event to your calendar +|``add EVENT TYPE n/NAME d/START DAY [m/START MONTH] [y/START YEAR] [D/END DAY] [M/END MONTH] [Y/END YEAR]`` + +|``delete`` +|Deletes an event from your calendar +|``delete EVENT TYPE n/NAME d/START DAY [m/START MONTH] [y/START YEAR] [D/END DAY] [M/END MONTH] [Y/END YEAR]`` + +|``show`` +|Shows the requested month view +|``show m/MONTH [y/YEAR]`` + +|``list`` +|Lists your events +|``list [d/START DAY] [m/START MONTH] [y/START YEAR] [D/END DAY] [M/END MONTH] [Y/END YEAR]`` + +|``check`` +|Checks whether you are available to travel during the specified time +|``check d/START DAY [m/START MONTH] [y/START YEAR] [D/END DAY] [M/END MONTH] [Y/END YEAR]`` + +|``suggest`` +|Suggests suitable time periods to travel +|``suggest d/START DAY [m/START MONTH] [y/START YEAR] [D/END DAY] [M/END MONTH] [Y/END YEAR] [p/PERIOD]`` + +|=== + +=== Itinerary + +.Itinerary Commands Summary +|=== +|Command |Function |Syntax + +|``add`` +|Add an event entry to the itinerary +|``add title/TITLE date/DATE time/TIME [l/LOCATION] [d/DESCRIPTION]`` + +|``delete`` +|Delete a certain entry from the itinerary +|``delete INDEX`` + +|``edit`` +|Edit a certain entry from the itinerary +|``edit INDEX [title/TITLE] [date/DATE] [time/TIME] [l/LOCATION] [d/DESCRIPTION] [tag/]`` + +|``done`` +|Mark an event as done from the itinerary +|``done INDEX`` + +|``list`` +|List all the events that are currently in the itinerary +|``list`` + +|``clear`` +|Clears the whole event list in the itinerary +|``clear`` + +|``greet`` +|Give user the current time and date. Also shows the events for today +|``greet`` + +|``help`` +|Pops up the help window for the itinerary page +|``help`` + +|``history`` +|Gives a list of the past user input to the itinerary page for that session +|``history`` + +|``search`` +|Search the whole event list and filter out events which meets the search condition +|``search [title/TITLE] [date/DATE] [time/TIME] [l/LOCATION] [d/DESCRIPTION] [tag/] + +|``sort`` +|Sort the event list based on the sorting condition +|``sort by/[title] [location] [chronological] [completion] [priority]`` + +|=== + +=== Address Book + +.Address Book Commands Summary +|=== +|Command |Function |Syntax + +|``add`` +|Adds a person to the address book +|``add n/NAME p/PHONE NUMBER e/EMAIL[t/TAG] [r/REMARK] [c/COUNTRY]`` + +|``clear`` +|Clears all entries from the address book +|``clear`` + +|``edit`` +| Edits an existing person in the address book +|``edit INDEX [n/NAME] [p/PHONE_NUMBER] [e/EMAIL] [a/ADDRESS] [t/TAG] [r/REMARK] [c/COUNTRY]`` + +|``delete`` +|Deletes the specified person from the address book +|``delete INDEX`` + +|``find`` +|Finds persons whose names contain any of the given keywords +|``find KEYWORD [MORE_KEYWORDS]`` + +|``list`` +|Shows a list of all persons in the address book. +|``list`` + +|``help`` +|View help +|``help`` + +|=== + +=== Financial Tracker + +.Financial Tracker Commands Summary +|=== +|Command |Function |Syntax + +|``add`` +|Adds an expense to the Financial Tracker +|``add a/AMOUNT d/DESCRIPTION t/TYPE OF EXPENDITURE [date/DATE] [time/TIME]`` + +|``edit`` +| Edits an existing expense in the Financial Tracker +|``edit INDEX [a/AMOUNT] [d/DESCRIPTION] [t/TYPE OF EXPENDITURE] [date/DATE] [time/TIME]`` + +|``delete`` +|Deletes the specified expense from the Financial Tracker +|``delete INDEX`` + +|``clear`` +|Clears all your expenses in your current country's expense list +|``clear`` + +|``undo`` +|Undo your previous action +|``undo`` + +|``switch`` +|Switch to another country's expense list +|``switch COUNTRY`` + +|``sort`` +|Sort your expense list based on amount, type, date, time or default +|``sort CRITERIA`` + +|``summary`` +|Generate an overview of your expenses statistics +|``summary`` + +|=== + +=== Travel Diary + +.Diary Commands Summary +|=== +|Command |Function |Syntax + +|``add`` +|Add a diary entry to the diary +|``add t/title d/date [p/place] [m/memory]`` + +|``delete`` +|Delete a certain entry from the diary +|``delete index`` + +|=== + + +=== TRIVAGO (Coming in V2.0) +``addData`` : add a new data to be used for price comparison + + +``showData`` : show the prices for a selected data + + +``deleteData`` : delete data used for price comparison + + +``compareData`` : compare prices between two data + + +``reviewData`` : review the previous few comparisons that user did + + +``listData`` : list out all the data that user has inputted into TTD + +Travel Recommendations: + +``setDates`` : set the dates for your proposed trip + + +``setPrice`` : set your price range + + +``setType`` : set the type of trip (Fun, educational etc) + + +``generate`` : generate recommendations from stored diaries + +NUS trips: + +``loadTrips`` : download trips from NUS societies + + +``deleteTrips`` : delete certain NUS trips + + +``showTrip`` : show your whole trip in a calendar view + + +``getSoc`` : get societies from NUS which organise trips + + +``deleteSoc`` : delete certain societies + + +``selectSoc`` : select a certain society to load trips + diff --git a/docs/images/ItineraryAuto.png b/docs/images/ItineraryAuto.png new file mode 100644 index 00000000000..41eef060cd5 Binary files /dev/null and b/docs/images/ItineraryAuto.png differ diff --git a/docs/images/ItineraryClear3.png b/docs/images/ItineraryClear3.png new file mode 100644 index 00000000000..7faaa5d7b47 Binary files /dev/null and b/docs/images/ItineraryClear3.png differ diff --git a/docs/images/ItineraryInterface.png b/docs/images/ItineraryInterface.png index c6dadb7a202..a7104910e05 100644 Binary files a/docs/images/ItineraryInterface.png and b/docs/images/ItineraryInterface.png differ diff --git a/src/main/java/seedu/address/itinerary/logic/commands/AddEventCommand.java b/src/main/java/seedu/address/itinerary/logic/commands/AddEventCommand.java index f70f3e1208d..efad305c6f5 100644 --- a/src/main/java/seedu/address/itinerary/logic/commands/AddEventCommand.java +++ b/src/main/java/seedu/address/itinerary/logic/commands/AddEventCommand.java @@ -15,8 +15,9 @@ public class AddEventCommand extends Command { public static final String COMMAND_WORD = "add"; public static final String MESSAGE_USAGE = COMMAND_WORD + ": Adds an event to the itinerary, " - + "based on the following format:\nadd title/[title] date/ [date] time/[time] l/[location] d/[desc]\n" - + "NOTE: Title, date and time are compulsory the rest can be left as empty fields."; + + "based on the following format:\nadd title/TITLE date/DATE time/TIME [l/LOCATION] [d/DESC]\n" + + "NOTE: Title, date and time are compulsory location and description can be left as empty fields. \n" + + "Please remember to also change the priority of your event using the dropdown box"; public static final String MESSAGE_DUPLICATE_EVENT = "There is another event which is happening at the same " + "date and time.\n" diff --git a/src/main/java/seedu/address/itinerary/logic/parser/ParserUtil.java b/src/main/java/seedu/address/itinerary/logic/parser/ParserUtil.java index 2b09bab95e6..12007f362d6 100644 --- a/src/main/java/seedu/address/itinerary/logic/parser/ParserUtil.java +++ b/src/main/java/seedu/address/itinerary/logic/parser/ParserUtil.java @@ -11,9 +11,13 @@ import seedu.address.itinerary.model.event.Tag; import seedu.address.itinerary.model.event.Time; import seedu.address.itinerary.model.event.Title; +import seedu.address.logic.parser.ArgumentMultimap; +import seedu.address.logic.parser.Prefix; import seedu.address.logic.parser.exceptions.ParseException; import seedu.address.ui.PageType; +import java.util.stream.Stream; + /** * Contains utility methods used for parsing strings in the various *Parser classes. */ diff --git a/src/main/java/seedu/address/itinerary/model/event/Date.java b/src/main/java/seedu/address/itinerary/model/event/Date.java index 4de3b6b6f8b..6f72c277f39 100644 --- a/src/main/java/seedu/address/itinerary/model/event/Date.java +++ b/src/main/java/seedu/address/itinerary/model/event/Date.java @@ -49,6 +49,12 @@ public static boolean isValidDate(String test) { return false; } + } else if (month.equals("04") | month.equals("06") | month.equals("09") | month.equals("11")) { + + if (Integer.parseInt(day) > 31) { + return false; + } + } else { if (month.equals("02")) { diff --git a/src/main/java/seedu/address/itinerary/ui/ItineraryPage.java b/src/main/java/seedu/address/itinerary/ui/ItineraryPage.java index 221a5de67d5..5af828f335d 100644 --- a/src/main/java/seedu/address/itinerary/ui/ItineraryPage.java +++ b/src/main/java/seedu/address/itinerary/ui/ItineraryPage.java @@ -53,7 +53,7 @@ public class ItineraryPage extends UiPart implements Page { private TagDropdown tagDropdown; - private HelpWindow helpWindow; + private HelpCommandWindow helpWindow; private CodeWindow codeWindow; @@ -107,7 +107,7 @@ public ItineraryPage(ItineraryLogic itineraryLogic) { setAccelerators(); - this.helpWindow = new HelpWindow(); + this.helpWindow = new HelpCommandWindow(); this.codeWindow = new CodeWindow(); fillInnerParts(); diff --git a/src/main/java/seedu/address/ui/CommandBox.java b/src/main/java/seedu/address/ui/CommandBox.java index 72702f211d6..a6828d3997a 100644 --- a/src/main/java/seedu/address/ui/CommandBox.java +++ b/src/main/java/seedu/address/ui/CommandBox.java @@ -53,6 +53,7 @@ public CommandBox(CommandExecutor commandExecutor, List history, String[ // calls #setStyleToDefault() whenever there is a change to the text of the command box. commandTextField.textProperty().addListener((unused1, unused2, unused3) -> setStyleToDefault()); + // Credits to the implementation of the controlsfx library AutoCompletionBinding autoComplete = TextFields.bindAutoCompletion(commandTextField, possibleSuggestions); autoComplete.setVisibleRowCount(3);