By: Team CS2103T T09-1
Since: Sep 2019
License: MIT
- 1. Introduction
- 2. Quick Start
- 3. Features
- 3.1. Help :
help
- 3.2. View specific tab
view
- 3.3. Set name/start date :
set
- 3.4. Adding an accommodation:
add accommodation
- 3.5. Editing an accommodation:
edit accommodation
- 3.6. Deleting an accommodation:
delete accommodation
- 3.7. Listing all accommodation:
list accommodation
- 3.8. Viewing a specific accommodation:
view accommodation
- 3.9. Adding an activity:
add activity
- 3.10. Editing an activity:
edit activity
- 3.11. Deleting an activity:
delete activity
- 3.12. Listing all activities:
list activity
- 3.13. Viewing a specific activity:
view activity
- 3.14. Adding a contact:
add contact
- 3.15. Editing a contact:
edit contact
- 3.16. Deleting a contact:
delete contact
- 3.17. List the contacts in the planner:
list contact
- 3.18. Viewing a specific contact:
view contact
- 3.19. Adds days to the schedule:
add days
- 3.20. Deleting a day:
delete day
- 3.21. List activities in a day:
list day
- 3.22. Scheduling an activity to a day:
schedule
- 3.23. Unscheduling activities from a day:
unschedule
- 3.24. Auto Schedule:
autoschedule
- 3.25. Optimising by budget:
optimise
- 3.26. Planning a new trip:
new
- 3.27. Review an existing trip:
load
- 3.28. Make a copy of an existing trip:
copyto
- 3.29. Clears existing trip:
clear
- 3.30. Undo:
undo
- 3.31. Redo:
redo
- 3.32. Autocomplete
- 3.33. Look up history of inputs:
history
[Coming in v2.0] - 3.34. Export trip plan:
export
[Coming in v2.0] - 3.35. Auto-correct[Coming in v2.0]
- 3.36. Exiting the program :
exit
- 3.1. Help :
- 4. FAQ
- 5. Command Summary
Plan2Travel is for those who prefer to use a desktop app for planning an overseas trip. More importantly, Plan2Travel is optimized for those who prefer to work with a Command Line Interface (CLI) while still having the benefits of a Graphical User Interface (GUI). If you can type fast, Plan2Travel can get your contact management tasks done faster than traditional GUI apps. Interested? Jump to the Section 2, “Quick Start” to get started. Enjoy!
-
Ensure you have Java
11
or above installed in your Computer. -
Download the latest
plan2travel.jar
here. -
Copy the file to the folder you want to use as the home folder for your Plan2Travel.
-
Double-click the file to start the app. The GUI should appear in a few seconds.
-
Type the command in the command box and press Enter to execute it.
e.g. typinghelp
and pressing Enter will open the help window. -
Some example commands you can try:
-
help
: a list of commands available on Plan2Travel -
add activity n/Visit Gundam Museum a/Tokyo du/120 p/65543221
: adds an activity namedVisit Gundam Museum
at locationTokyo
with a duration of 120 minutes and contact number65543221
to the activity list. -
exit
: exits the app
-
-
Refer to Section 3, “Features” for details of each command.
Command Format
-
All command words are CASE SENSITIVE.
-
Words in
UPPER_CASE
are the parameters to be supplied by the user e.g. inadd activity n/NAME
,NAME
is a parameter which can be used asadd activity n/Eat lunch
. -
Items in square brackets are optional e.g
n/NAME [t/TAG]
can be used asn/Eat lunch t/Western
or asn/Eat lunch
. -
Items with
…
after them can be used multiple times including zero times e.g.[t/TAG]…
can be used as (i.e. 0 times),t/friend
,t/friend t/family
etc. -
Parameters can be in any order e.g. if the command specifies
n/NAME p/PHONE_NUMBER
,p/PHONE_NUMBER n/NAME
is also acceptable. -
Any two items enclosed within with
()
and has a||
lying between them indicates that either one of the items has to be present. e.g.(t/Dining || n/DisneyLand)
can be used ast/Dining
orn/DisneyLand
.
Callouts are rectangular boxes with an icon and words to explain certain information. Below are 3 callouts that are used for this user guide:
ℹ️
|
This represents a note. A note represents additional information. Do take a look as they might be relevant to you! |
💡
|
This represents a tip. A tip means something that is handy, and may aid you in getting through the application. Tips are usually less crucial, and you may decide to skip them. |
Warning
|
This represents a warning. A warning denotes something of great significance, and you should pay close attention to the statement. |
Displays the tab specified. The available tabs to view are itinerary
, info
and help
.
Format: view TAB_NAME
Examples:
-
view itinerary
-
view info
-
view help
Each command will display the tab specified.
Sets the trip’s name or start date
Format: set [n/NAME] [sd/START_DATE]
-
The name provided cannot exceed 30 characters long.
-
The start date provided needs to be in dd-mm-yyyy format.
Examples:
-
set n/India sd/11-11-2019
Creates an accommodation and adds it to the accommodation list
Format: add accommodation n/NAME a/ADDRESS [p/PHONE_NUMBER] [t/TAGS]
-
Name must only contain alphanumeric characters and spaces (names with only white space would be treated as blank).
-
Address can take up any values (likewise, addresses with only white space would be treated as blank).
Examples:
-
add accommodation n/Hotel 81 a/Orchard p/67555312
Adds "Hotel 81" with an address, "Orchard", and phone number, "67555312", into the accommodation list.
-
add accommodation n/Mandarin Oriental a/Ang Mo Kio
Adds "Mandarin Oriental" with an address, "Ang Mo Kio" into the accommodation list.
Edits an accommodation
Format: edit accommodation INDEX [n/NAME] [a/ADDRESS] [p/PHONE_NUMBER] [t/TAGS]
-
Edits the accommodation with the specified INDEX.
-
The index provided refers to the index number shown in the displayed accommodation list.
-
The index provided must be a positive integer.
-
The index provided must not exceed the number of accommodations in the accommodation list.
-
-
At least one of the optional fields must be provided.
-
Existing fields will be updated by the input fields.
Examples:
-
edit accommodation 1 n/MBS a/Marina Bay t/Atas
Edits the 1st accommodation in the accommodation list to have a name, "MBS", address, "Marina Bay", and tag, "Atas".
Delete one or more accommodation from the accommodation list
Format: delete accommodation INDEX…
-
Deletes the accommodation at the specified INDEX.
-
The index provided refers to the index number shown in the displayed accommodation list.
-
The index provided must be a positive integer.
-
The index provided must not exceed the number of accommodations in the accommodation list.
-
Examples:
-
delete accommodation 2
Deletes the 2nd accommodation in the accommodation list.
Displays a list view of all the accommodation
Format: list accommodation
Example:
-
list accommodation
The tab of the accommodation list would drop down to show the accommodations.
Allows the user to view a specific accommodation in the list based on the index shown
Format view accommodation ACCOMMODATION_INDEX
-
Views the accommodation at the specified INDEX.
-
The index provided refers to the index number shown in the displayed accommodation list.
-
The index provided must be a positive integer.
-
The index provided must not exceed the number of accommodations in the accommodation list.
-
Examples :
-
view accommodation 3
Shows a detailed view of the 3rd accommodation in the accommodation list.
Creates an activity and adds it to the activity list
Format: add activity n/NAME a/ADDRESS du/DURATION [p/PHONE_NUMBER] [c/COST] [pr/PRIORITY] [t/TAGS]
-
Name must only contain alphanumeric characters and spaces (names with only white space would be treated as blank).
-
Address can take up any values (likewise, addresses with only white space would be treated as blank).
-
Duration is in minutes and must be less than or equal to 1440 minutes.
-
Phone number should only contain numbers and must be at least 3 digits long.
-
Cost should only contain numbers and have at most 2 decimal places. (Maximum cost is 10^25)
-
Priority should only contain numbers and range from 1 to 7 inclusive. (1 being the highest priority, 7 being the lowest).
Examples:
-
add activity n/Visit Gundam Museum a/Tokyo du/90 p/67521312
Adds "Visit Gundam Museum" with an address, "Tokyo", duration, 90 minutes, and phone number, "67521312", to the activity list.
-
add activity n/Ski a/Mount Sinai du/120
Adds "Ski" with an address, "Mount Sinai", and duration, 120 minutes, to the activity list.
Edits an activity
Format: edit activity INDEX [n/NAME] [a/ADDRESS] [p/PHONE_NUMBER] [c/COST] [pr/PRIORITY] [t/TAGS]
-
Edits the activity with the specified INDEX.
-
The index provided refers to the index number shown in the displayed activity list.
-
The index provided must be a positive integer.
-
The index provided must not exceed the number of activities in the activity list.
-
-
At least one of the optional fields must be provided.
-
Existing fields will be updated by the input fields.
Examples:
-
edit activity 1 n/Dinner a/Hotel t/Western
Edits the 1st activity in the activity list to have a name, "Dinner", address, "Hotel", and tag, "Western".
Delete one or more activities from the activity list
Format: delete activity INDEX…
-
Deletes the activity at the specified INDEX.
-
The index provided refers to the index number shown in the displayed activity list.
-
The index provided must be a positive integer.
-
The index provided must not exceed the number of activities in the activity list.
-
Examples:
-
delete activity 2
Deletes the 2nd activity in the activity list.
Displays a list view of all the activities
Format: list activity
Example:
-
list activity
The tab of the activity list would drop down to show the activities.
Allows the user to view a specific activity in the list based on the index shown
Format view activity ACTIVITY_INDEX
-
Views the activity at the specified INDEX.
-
The index provided refers to the index number shown in the displayed activity list.
-
The index provided must be a positive integer.
-
The index provided must not exceed the number of activities in the activity list.
-
Examples :
-
view activity 3
Shows a detailed view of the 3rd activity in the activity list.
Creates a contact and adds it the contact list
Format: add contact n/NAME p/PHONE_NUMBER [e/EMAIL] [a/ADDRESS] [t/TAGS]
-
Name must only contain alphanumeric characters and spaces (names with only white space would be treated as blank).
-
Phone number should only contain numbers and must be at least 3 digits long (numbers with only white space would be treated as blank).
-
Emails should be of the format local-part@domain
-
local-part should only contain alphanumerics and the following special characters: !#$%&'*+/=?`{|}~^.-
-
Examples:
-
add contact n/Bob p/91392506
A contact with name, "Bob" and phone number, "83747658", is added to the contact list.
-
add contact n/Sheryl p/85516629 a/Buangkok
A contact with name, "Sheryl", phone number, "96668710", and address, "Buangkok", is added to the contact list.
Edits an existing contact in the contact list
Format: edit contact INDEX [n/NAME] [p/PHONE_NUMBER] [e/EMAIL] [a/ADDRESS] [t/TAGS]
-
Edits the contact with the specified INDEX.
-
The index provided refers to the index number shown in the displayed contact list.
-
The index provided must be a positive integer.
-
The index provided must not exceed the number of contacts in the contact list.
-
-
At least one of the optional fields must be provided.
-
Existing fields will be updated with the input fields.
-
Name must only contain alphanumeric characters and spaces (names with only white space would be treated as blank).
-
Phone number should only contain numbers and must be at least 3 digits long (numbers with only white space would be treated as blank).
-
Emails should be of the format local-part@domain
-
local-part should only contain alphanumerics and the following special characters: !#$%&'*+/=?`{|}~^.-
-
Examples:
-
edit contact 1 p/93746658
Edits the phone number of the 1st contact to be ,"93746658".
Deletes a contact from the contact list
Format: delete contact INDEX
-
Deletes the contact at the specified INDEX.
-
The index provided refers to the index number shown in the displayed contact list.
-
The index provided must be a positive integer.
-
The index provided must not exceed the number of contacts in the contact list.
-
Examples:
-
delete contact 3
Deletes the 3rd contact in the contact list.
List the contacts in the planner
Format: list contact
Allows the user to view a specific contact in the list based on the index shown
Format view contact CONTACT_INDEX
-
Views the contact at the specified INDEX.
-
The index provided refers to the index number shown in the displayed contact list.
-
The index provided must be a positive integer.
-
The index provided must not exceed the number of contacts in the contact list.
-
Examples :
-
view contact 3
Views the 3rd contact in the contact list.
Adds DAY_NUMBER amount of days to the itinerary
Format: add days DAY_NUMBER
-
The number of days provided must be a positive integer.
-
The total number of days in the itinerary cannot exceed 15 days.
Examples:
-
add days 7
Extends the itinerary by 7 days.
Deletes day at DAY_INDEX from the itinerary.
Format: delete day DAY_INDEX
-
Deletes the day at the specified INDEX.
-
The index provided refers to the index of the day in the itinerary.
-
The index provided must be a positive integer.
-
The index provided must not exceed the number of days in the itinerary.
-
Examples:
-
delete day 2
Deletes day 2 from the itinerary.
Lists the activities within the day at DAY_INDEX in the itinerary.
Format: list day DAY_INDEX
Examples:
-
list day 3
Lists activities within day 3 in the itinerary.
Lists activities within day 3 of the itinerary.
Schedules an activity to a day
Format: schedule ACTIVITY_INDEX st/START_TIME d/DAY_INDEX
-
The indices provided refers to the index of an activity in the activity list and the index of a day in the itinerary.
-
The indices provided must be positive integers.
-
The indices provided must not exceed the number of activities in the activity list or the number of days in the itinerary.
-
The start time should follow a 24-HOUR format (i.e. 1400)
Examples:
-
schedule 2 st/1000 d/2
Schedules the second activity in the activity list under day 2 to start at 1000hrs.
Unschedules an activity from a day
Format: unschedule ACTIVITY_INDEX d/DAY_INDEX
-
The
ACTIVITY_INDEX
provided refers to the index of an activity in the day list and theDAY_INDEX
is the index of a day in the itinerary. -
The indices provided refers to the index of an activity in the day and the index of a day in the itinerary.
-
The indices provided must be positive integers.
-
The indices provided must not exceed the number of activities in the day or the number of days in the itinerary.
Examples:
-
unschedule 5 d/2
This remove the 5th activity from scheduled in day 2.
💡
|
You can use the list day command to find out the index of the activity you wish to unschedule. |
Generates a list of activities for the specified days based on the activity’s priority and the number of times it has been scheduled in the timetable. Activity with the highest priority and the least number of times being scheduled in the timetable will be chosen.
If the end time of the activity chosen overlaps with the next activity’s start time, the
activity with the next highest priority
and second lowest number of counts in the timetable
will be chosen. This process will repeat until a suitable activity to schedule is found.
-
Start time can be specified for activity to be scheduled at that timing.
-
A specific activity name can be specified using
n/
instead oft/
if there is a desired activity to be scheduled. -
Location for those activities can be specified as well.
-
The day to schedule for can be specified, otherwise it is assumed to be scheduled for all days.
-
Timing can be specified if there is an activity that is confirmed to do at that timing.
-
An
activity name
can be specified usingn/
instead oft/
if there is an activity that has been confirmed to do. -
Location for that
day
can be specified, otherwise it is assumed to be any location. -
The
Day
to schedule for can be specified, otherwise it is assumed to be scheduled for all days.
Warning
|
The activity with the specified name or tag must be present in the activity list. |
💡
|
You may use n/ to denote a specific activity name and specify the start time if you have confirmed to do an activity at a specific time.
|
💡
|
You may wish to input the location of the activities so that we schedule activities that are in the same location together for the specified day to reduce your travelling time. |
Format: autoschedule (t/TAG [START_TIME]|| n/ACTIVITY_NAME [START_TIME])… [a/LOCATION_OF_ACTIVITIES] [d/DAY_INDEX…]
Examples:
-
autoschedule t/Breakfast t/Sightseeing t/Dinner
-
autoschedule t/Breakfast t/Sightseeing t/Dinner a/Kyoto d/1
-
autoschedule t/Breakfast n/DisneyLand t/Dinner a/Kyoto d/1
-
autoschedule t/Breakfast 1000 n/DisneyLand t/Dinner a/Kyoto d/1 2 3 4
Optimises a day’s schedule by finding all possible combinations of activities. The resulting combination would have the lowest total cost. If there are multiple combinations with the same cost, the combination with the most activities would be chosen.
Format: optimise DAY_INDEX
-
Optimises the day at the specified DAY_INDEX.
-
The index provided refers to the index of a day in the itinerary.
-
The index provided must be positive integer.
-
The index provided must not exceed the number of days in the itinerary.
-
Examples:
-
optimise 2
Warning
|
The day to be optimised must not be empty. |
Creates and loads a new empty trip with desired name.
Format: new n/NAME
-
Compulsory field, name, must be present.
-
Name cannot exceed 30 characters.
-
Name can only contain alphanumeric characters and spaces, and cannot be left empty.
-
Name of an existing saved trip cannot be used.
-
Name is reflected as itinerary name.
Examples:
-
new n/Iceland Trip
Creates a new, empty trip plan that has the name "Iceland Trip" and saves it.
Loads a saved trip with desired name.
Format: load n/NAME
-
Compulsory field, name, must be present.
-
Unsaved trip plans cannot be loaded.
-
The current trip plan cannot be reloaded.
-
Name is reflected as itinerary name.
Example:
-
load n/Greenland Trip
Loads an existing, saved trip plan that has the name "Greenland Trip".
Creates and loads a copy of current trip using desired name.
Format: copyto n/NAME
-
Compulsory field, name, must be present.
-
Name cannot exceed 30 characters.
-
Name can only contain alphanumeric characters and spaces, and cannot be left empty.
-
Name of an existing saved trip cannot be used.
-
Name is the only visible difference between the copy and the original trip plan.
-
Name is reflected as itinerary name.
Examples:
-
copyto n/London Trip
Creates a copy of the current viewable, saved trip plan. The trip plan copy will have the name "London Trip".
Clears all current trip information except for name.
-
Name is reflected as itinerary name.
Format: clear
Allows the user to undo by one action. Only Undoable commands executed previously can
be undone. Refer to the list below for all possible undoable commands.
Format: undo
List of UndoableCommand:
add activity/ accommodation/ contact/ days |
delete activity/ accommodation/ contact/ day |
edit activity/ accommodation/ contact |
schedule |
unschedule |
autoschedule |
optimise |
clear |
Redo by one action. This command is to revert the changes of the latest undo.
Format: redo
ℹ️
|
redo command can only be called after undo. |
The 4 screenshots below demonstrates the Undo/Redo command when the user executes optimise budget command
.
-
Before executing 'optimise'
-
After executing 'optimise 2'
-
After executing 'undo'
-
After executing 'redo'
While typing a command, suggestions from a dropdown menu will appear. The menu can be interacted with using the arrow keys, enter button or the mouse.
-
Autocomplete for commands
-
Autocomplete for prefix
Lists the inputs that have been entered
Format: history
When there is an invalid command, the input command is checked against the known command list for similarity and the user will be prompted with the closest command match
Examples:
-
hitsory
User will be prompted with the “history” command as a suggestion.
Q: How do I transfer my data to another Computer?
A: Install the app in the other computer and overwrite the empty data file it adds with the file that contains the data of your previous Plan2Travel folder.
Command |
Example |
add accommodation n/NAME a/ADDRESS [p/Phone_NUMBER] [e/EMAIL] [t/TAG] |
add accommodation n/Paradise Hotel a/23 Amoy Quee Road p/22224444 |
add activity n/NAME a/ADDRESS du/DURATION [p/PHONE_NUMBER] [e/EMAIL] [pr/PRIORITY] [t/TAG] |
add activity n/Skiing a/Mount Kurabaki du/120 |
add contact n/NAME p/PHONE_NUMBER [e/EMAIL] [a/ADDRESS] [t/TAG] |
add contact n/James Ho a/123, Clementi Rd, 1234665 p/22224444 e/[email protected] t/friend t/colleague |
add days NUMBER |
add days 10 |
Command |
delete accommodation INDEX |
delete activity INDEX |
delete contact INDEX |
delete day INDEX |
Command |
Example |
edit accommodation INDEX [n/NAME] [a/ADDRESS] [p/PHONE_NUMBER] [e/EMAIL] [t/TAG] |
edit accommodation 3 n/Kent Ridge Hotel a/Clementi |
edit activity INDEX [n/NAME] [a/ADDRESS] [du/DURATION] [p/PHONE_NUMBER] [e/EMAIL] [pr/PRIORITY] [t/TAG] |
edit activity 5 n/Go Disneyland |
edit contact INDEX [n/NAME] [p/PHONE_NUMBER] [e/EMAIL] [a/ADDRESS] [t/TAG] |
edit contact 2 n/James Lee e/[email protected] |
Command |
Example |
schedule ACTIVITY_INDEX st/START_TIME d/DAY_INDEX |
schedule 2 st/1400 d/2 |
unschedule ACTIVITY_INDEX d/DAY_INDEX |
unschedule ACTIVITY_INDEX d/DAY_INDEX |
autoschedule [t/TAG START_TIME] n/ACTIVITY_NAME START_TIME a/LOCATION_OF_ACTIVITIES d/[DAY_INDEX] |
autoschedule t/Dining 1000 t/Attraction 1200 n/Disneyland 1400 t/Dining a/Tokyo d/1 4 5 |
Command |
view accommodation ACCOMMODATION_INDEX |
view activity ACTIVITY_INDEX |
view contact CONTACT_INDEX |
view itinerary |
view info |
view help |