By: Team SGTravel
Since: Aug 2019
Licence: MIT
- 1. Introduction
- 2. How to use this user guide
- 3. Quick Start
- 4. Features
- 4.1. Help:
help
- 4.2. Setting a profile:
profile
- 4.3. Showing a profile:
profileShow
- 4.4. Set the preference in profile:
profileSet
- 4.5. Adding an event:
event
- 4.6. Deleting an event :
delete
- 4.7. Marking an event :
done
- 4.8. Editing places of visit:
edit
- 4.9. Listing all places to visit :
list
- 4.10. Finding certain events you have:
find
- 4.11. Searching for a location in Singapore:
search
- 4.12. Searching for the map of a location in Singapore:
map
- 4.13. Recommend an Itinerary:
recommend
- 4.14. Save a Recommended Itinerary:
addThisList
- 4.15. Create new Itinerary:
newItinerary
- 4.16. List Saved Itineraries:
listItinerary
- 4.17. Show a saved Itinerary:
showItinerary
- 4.18. Delete an Itinerary:
doneItinerary
- 4.19. Add favourite itinerary:
addToFav
- 4.20. Delete favourite itinerary:
deleteFav
- 4.21. List favourite itineraries:
listFav
- 4.22. Show favourite itinerary:
showFav
- 4.23. Creating a new Route:
routeAdd
- 4.24. Creating a new RouteNode:
routeNodeAdd
- 4.25. Automatically generates a Route:
routeGenerate
- 4.26. Listing the information of all the Routes:
routeListAll
- 4.27. Listing the information of a Route:
routeList
- 4.28. Showing the map image of a Route:
routeShow
- 4.29. Showing the information of a RouteNode with image:
routeNodeShow
- 4.30. Showing the information of nearby RouteNodes with image:
routeNodeNearby
- 4.31. Editing a Route:
routeEdit
- 4.32. Deleting a Route:
routeDelete
- 4.33. Deleting a RouteNode:
routeNodeDelete
- 4.34. List nearby bus stops of destination:
busStop
- 4.35. Shows the bus route of a bus service:
busRoute
- 4.36. Viewing calendar :
view
- 4.37. Exiting the program :
bye
- 4.38. Saving the data
- 4.39. Viewing Singapore map
- 4.40. Viewing of information
- 4.1. Help:
- 5. Features that are coming in version 2.0!
- 5.1. List the fastest bus route, time and cost from a given location to destination:
busride
- 5.2. List the fastest mrt route, time and cost from a given location to destination:
mrtride
- 5.3. Undo:
undo
- 5.4. Redo:
redo
- 5.5. PSI alerts:
psi
- 5.6. UVI alerts:
uvi
- 5.7. PM2.5 alerts:
pm2.5
- 5.8. Weather alerts:
weather
- 5.9. Create a travel plan for user:
worldtour
- 5.10. Weather forecast of destinations:
weather
- 5.11. Exchange rate:
rate
- 5.12. Listing popular places of a destination:
recommend
- 5.13. Listing nearby hotels of a destination:
recommendhotel
- 5.14. Listing flight information from home location to destination:
flight
- 5.1. List the fastest bus route, time and cost from a given location to destination:
- 6. FAQ
- 7. Command Summary
SGTravel is for those who prefer to use a desktop app for scheduling travel plans. SGTravel is also able to provide all sort of information about Singapore. Regardless whether you are a tourist or a local, SGTravel is the best application for planning your vacation plans in Singapore! More importantly, SGTravel 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, SGTravel can get your tasks done faster than traditional GUI apps. Interested? Jump to the Section 3, “Quick Start” to get started. Enjoy!
To jump to a specific topic immediately, simply click on the topic in the Table of Contents at the top
To improve the navigability and readability of this user guide, multiple styles will be used, which will include the following:
-
User commands and parameters will displayed as:
format
-
Important keywords will be displayed as: format
-
Keyboard buttons will be displayed as: format
Additionally, the following annotations will be used throughout this user guide:
💡
|
This symbol denotes a tip which you may find useful when using the application. |
|
This symbol denotes a warning which you will need to be careful of when using the application. |
ℹ️
|
This symbol denotes some information or caveats that you will need to take note of when using the application. |
Now that you have familiarized yourself with the style used in this guide, lets move on to how to setup SGTravel!
-
Ensure you have Java
11
(revision11
or later) installed in your Computer.ℹ️Only Java 11+ is supported.
This app may not work with older major Java releases such as Java 10, 9, 8 etc. -
Download the latest
SGTravel.jar
here. -
Copy the file to the folder you want to use as the home folder for your SGTravel.
-
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.
-
Some example commands you can try:
-
list
: lists all events -
map
Jurong Regional Library
: Shows the map area ofJurong Regional Library
on SGTravel. -
delete
3
: deletes the 3rd event shown in the current list -
bye
: exits the app
-
-
Refer to Section 4, “Features” for details of each command.
Command Format
-
Words in
UPPER_CASE
are the parameters to be supplied by the user e.g. infind KEYWORD
,KEYWORD
is a parameter which can be used asfind Zoo
. -
Items with
…
after them can be used multiple times including zero times e.g.TAG…
(i.e. 0 times),friend
,friend family fish
etc.
Setup a profile in SGTravel
Format: profile NAME BIRTHDAY
Examples:
-
profile James 01/01/00
💡
|
Entering |
SGTravel shows the current profile.
Format: profileShow
Examples:
-
profileShow
SGTravel sets the preferences of activity the user prefers to do in the profile.
Format: profileSet CATEGORY STATE
ℹ️
|
Vaild CATEGORY:
Vaild STATE:
|
Examples:
-
profileSet sports true
Adds an event to SGTravel.
Format: event VENUE between DATE and DATE
Examples:
-
event Geylang between Mon and Wed
ℹ️
|
|
Deletes the specified event from SGTravel.
Format: delete INDEX
ℹ️
|
|
Examples:
-
list
delete 2
Deletes the 2nd event in SGTravel.
💡
|
Entering |
Mark the specified event as done on SGTravel.
Format: done INDEX
ℹ️
|
|
Examples:
-
list
done 2
Marks the 2nd event as done in SGTravel.
💡
|
Entering |
Panel will automatically select an initial location and the current location will be glowing green in color.
Users will use up+down+left+right+ESC+Enter keys to then select the place of visit they want to edit.
Enter selects and ESC deselects.
Once an event is selected (orange), simply type in the new VENUE/DATE
into the CLI depending on what is currently highlighted.
Examples:
-
Orchard road
if updating theVENUE
-
Mon
or12/12/22
if updating aDATE
To save the edits, type save
or done
.
To discard the changes, type close
or end
.
💡
|
|
|
Examples:
|
💡
|
|
|
Single step command does not allow for locations with spaces in between them. |
SGTravel shows a list of all the places to visit in SGTravel.
Format: list
SGTravel shows the events whose names contain any of the given keywords.
Format: find KEYWORD
ℹ️
|
|
Examples:
-
find Singapore
ReturnsSingapore
andSingapore Bishan
💡
|
Entering |
SGTravel finds the location with the given keywords.
Format: search KEYWORD
Examples:
-
find Bishan mrt
💡
|
Entering |
SGTravel finds the map of a location with the given keywords.
Format: map KEYWORD
Examples:
Gets a recommended itinerary list from SGTravel.
Format: recommend itinerary between START_DATE and END_DATE
ℹ️
|
|
|
This command still works if you enter 23/04/20 and 31/04/20 (invalid date). This is just the Java Library automatically changing 31/04/20 to 01/05/20. Hence, do not enter invalid dates (This is not a bug, the smart feature is enabled by default). |
Examples:
-
recommend itinerary between 23/04/20 and 25/04/20
After SGTravel shows a recommended list, you can save this list using this command.
Format: addThisList NEW_ITINERARY_NAME
ℹ️
|
|
|
|
Examples:
-
recommend between 23/04/20 and 25/04/20
then afterwardsaddThisList Sunday Vacation!
💡
|
|
Creates a new itinerary from scratch and stores it.
Format: newItinerary START_DATE END_DATE ITINERARY_NAME DAY_NUMBER /venue VENUE_NAME /do TODO1 /and TODO2 /venue VENUE_NAME /do TODO1 /and TODO2 …. DAY_NUMBER ….
ℹ️
|
|
|
|
Examples:
An itinerary with multiple days.
-
newItinerary 23/04/20 24/04/20 TwoDayHoliday 1 /venue Orchard /do dancing /and singing /and swinging 2 /venue Changi /do running /and jumping /and playing
An itinerary with multiple venues in 1 day.
-
newItinerary 23/04/20 23/04/20 SundayVacay 1 /venue Bedok /do swimming /and jumping /and swinging /venue Simei /do jogging /and running
Shows the list of saved itineraries and their names.
Format: listItinerary
ℹ️
|
|
Example Output:
💡
|
Use this command in order to refer to itinerary names before using the showItinerary command |
Displays a specific saved Itinerary.
Format: showItinerary ITINERARY_NAME
|
|
Examples:
-
showItinerary SundayVacay
Will print the SundayVacay
Itinerary.
Removes a specified Itinerary.
Format: doneItinerary ITINERARY_NAME
ℹ️
|
|
|
|
Examples:
-
doneItinerary SundayVacay
Will mark the SundaVacay
Itinerary as done (removes it from storage).
💡
|
If you wish to see an itinerary even after entering this command, consider adding it as a favourite! The addToFav command will archive your favourite itineraries. |
Adds an itinerary to favourite list in profile.
Format: addToFav ITIERARY_NAME
Examples:
-
addToFav SundayVacay
ℹ️
|
Itinerary must exist in itinerary list before it can be added to favourite list |
Removes itinerary from favourite list in profile.
Format: deleteFav ITIERARY_NAME
Examples:
-
deleteFav SundayVacay
Shows the list of itinerary in favourite list.
Format: listFav
Examples:
-
listFav
💡
|
List of favourite itinerary can also be found in profile by using |
Shows the details of itinerary in favourite list.
Format: showFav ITINERARY_NAME
Examples:
-
showFav my3DayTrip
-
showFav SundayVacay
Adds a new Route to SGTravel.
Format: routeAdd NAME
ℹ️
|
|
|
|
Examples:
-
routeAdd Day trip to Sentosa
-
routeAdd 2 Week staycation at Pulau Tekong
💡
|
Entering |
Adds a new RouteNode to an existing Route.
Format: routeNodeAdd INDEXROUTE INDEXNODE at LOCATION by CONSTRAINT
ℹ️
|
|
|
|
Valid CONSTRAINT:
-
bus
-
mrt
-
custom
Examples:
-
routeNodeAdd 1 1 at 17009 by bus
-
routeNodeAdd 1 at 46431 by bus
-
routeNodeAdd 1 1 at ang mo kio by mrt
-
routeNodeAdd 1 at Bishan by mrt
-
routeNodeAdd 1 1 at jurong bird park by custom
-
routeNodeAdd 1 at Bishan Park by custom
💡
|
Entering |
Automatically creates a new Route between 2 given locations with RouteNodes in it.
Format: routeGenerate STARTLOCATION to ENDLOCATION by CONSTRAINT
ℹ️
|
|
Valid CONSTRAINT:
-
bus
Examples:
-
routeGenerate amk hub to clementi by bus
💡
|
Entering |
Lists the information about each Route.
Format: routeListAll
ℹ️
|
|
Examples:
-
routeListAll
Lists the information about a Route.
Format: routeList INDEX_ROUTE
ℹ️
|
|
Examples:
-
routeList 1
Shows a Route on the Singapore map.
Format: routeShow INDEX_ROUTE
ℹ️
|
|
Examples:
-
routeShow 1
💡
|
Entering |
Shows information and a map image of a RouteNode.
Format: routeNodeShow INDEX_ROUTE INDEX_NODE
ℹ️
|
|
Examples:
-
routeNodeShow 1 1
-
routeNodeShow 4 8
Shows information of nearby bus stops and MRT stations to a RouteNode, in an image.
Format: routeNodeNearby INDEX_ROUTE INDEX_NODE
ℹ️
|
|
Examples:
-
routeNodeNearby 1 1
-
routeNodeNearby 9 6
Edits a specific field in a Route.
Format: routeEdit INDEX_ROUTE FIELD VALUE
ℹ️
|
|
Valid FIELD:
-
name
-
description
Examples:
-
routeEdit 1 name Go to Sentosa for the beach
-
routeEdit 3 description stop at MBS for lunch
💡
|
Entering |
Deletes a Route.
Format: routeDelete INDEX_ROUTE
ℹ️
|
|
Examples:
-
routeDelete 1
💡
|
Entering |
Deletes a RouteNode in a Route.
Format: routeNodeDelete INDEX_ROUTE INDEX_NODE
ℹ️
|
|
💡
|
Entering |
Examples:
-
routeNodeDelete 1 1
-
routeNodeDelete 3 10
SGTravel shows the information of a bus stop.
Format: busStop BUSCODE
Examples:
-
busStop 17009
-
busstop 17001
💡
|
Entering |
SGTravel finds the bus route of a given bus service given the bus service number.
Format: busroute BUS_NUMBER
Examples:
-
busRoute 96
-
busRoute 193
SGTravel will display a calendar containing the events. Click or hover to view other events on the same day.
Format: view
SGTravel data are saved in the hard disk automatically after any command that changes the data.
There is no need to save manually.
SGTravel will automatically display Singapore map when the relevant commands are invoke.
SGTravel provides fastest bus route, time and cost to destination.
Format: busride START DESTINATION
Examples:
-
busride J-Cube Sentosa
SGTravel provides fastest mrt route, time and cost to destination.
Format: mrtride START DESTINATION
Examples:
-
mrtride J-Cube Sentosa
SGTravel provides user with information on PSI-levels of all destinations in Singapore.
Examples:
-
psi
SGTravel provides user with information on Ultra-violet Index of Singapore.
Examples:
-
uvi
SGTravel provides user with information on PM2.5-levels of all destinations in Singapore.
Examples:
-
pm2.5
SGTravel provides user with information on weather of all destinations in Singapore.
Examples:
-
weather
SGTravel recommends a travelling plan (short path) based on the user’s input of destinations.
Format: worldtour
Examples:
-
worldtour
SGTravel provides weather forecast for all destinations (including outside of Singapore) user have added.
Format: weather
Examples:
-
weather
SGTravel provides the currency exchange rate of the 2 currency user stated.
Format: rate CURRENCY /to CURRENCY
Examples:
-
rate SGD /to RMB
SGTravel recommends popular places of visit at a given location.
Format: recommend LOCATION
Examples:
-
recommend Toronto
SGTravel recommends hotels to stay at a given location.
Format: recommendhotel LOCATION
Examples:
-
recommendhotel Disneyland Tokyo
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 creates with the file that contains the data of your previous SGTravel folder.
Q: Why is the Ui not refreshing by itself? A: Our Ui only updates itself when user inputs something.
Q: Why can’t I zoom into the map? A: You will be able to do so in v2.0!
Q: Why are some error messages not very informative? A: This is due to flexibility of our design and sometimes its impossible to identify the root cause.
-
Help :
help
e.g.help
-
Setting a profile :
profile NAME BIRTHDAY
e.g.profile James 01/01/00
-
Showing a profile :
profileShow
e.g.profileShow
-
Set the preference in profile :
profileSet CATEGORY STATE
e.g.profileSet sports true
-
Adding an event :
event VENUE between DATE and DATE
e.g.event Geylang between Mon and Wed
-
Deleting an event :
delete INDEX
e.g.list
,delete 2
-
Marking an event :
done INDEX
e.g.list
,done 2
-
Editing places of visit :
edit
e.g.Orchard road
if updating theVENUE
Mon
or12/12/22
if updating aDATE
-
Listing all places to visit :
list
e.g.list
-
Finding certain events you have :
find KEYWORD
e.g.find Singapore
-
Searching for a location in Singapore :
search KEYWORD
e.g. Multistep version of find -
Searching for the map of a location in Singapore :
map KEYWORD
e.g.map ntu
-
Recommend an Itinerary :
recommend itinerary between START_DATE and END_DATE
e.g.recommend itinerary between 23/04/20 and 24/04/20
-
Save a Recommended Itinerary :
addThisList NEW_ITINERARY_NAME
e.g.addThisList MyBestVacation
-
Create new Itinerary :
newItinerary START_DATE END_DATE ITINERARY_NAME DAY_NUMBER /venue VENUE_NAME /do TODO1 /and TODO2 /venue VENUE_NAME /do TODO1 /and TODO2
e.g.newItinerary 23/04/20 23/04/20 SundayVacay 1 /venue Bedok /do swimming /and jumping /and swinging /venue Simei /do jogging /and running
-
List Saved Itineraries :
listItinerary
e.g.listItinerary
-
Show a saved Itinerary :
showItinerary ITINERARY_NAME
e.g.showItinerary SundayVacay
-
Delete an Itinerary :
doneItinerary ITINERARY_NAME
e.g.doneItinerary SundayVacay
-
Add favourite itinerary :
addToFav ITIERARY_NAME
e.g.addToFav SundayVacay
-
Delete favourite itinerary :
deleteFav ITIERARY_NAME
e.g.deleteFav SundayVacay
-
List favourite itineraries :
listFav
e.g.listFav
-
Show favourite itinerary :
showFav ITINERARY_NAME
e.g.showFav my3DayTrip
-
Creating a new Route :
routeAdd NAME
e.g.routeAdd Day trip to Sentosa
-
Creating a new RouteNode :
routeNodeAdd INDEXROUTE INDEXNODE at LOCATION by CONSTRAINT
e.g.routeNodeAdd 1 1 at 17009 by bus
-
Automatically generate a Route :
routeGenerate STARTLOCATION to ENDLOCATION by CONSTRAINT
e.g.routeGenerate amk hub to clementi by bus
-
Listing the information of all the Routes :
routeListAll
e.g.routeListAll
-
Listing the information of a Route :
routeList INDEX_ROUTE
e.g.routeList 1
-
Showing the map image of a Route :
routeShow INDEX_ROUTE
e.g.routeShow 1
-
Showing the information of a RouteNode with image :
routeNodeShow INDEX_ROUTE INDEX_NODE
e.g.routeNodeShow 4 8
-
Showing the information of nearby RouteNodes with image :
routeNodeNearby INDEX_ROUTE INDEX_NODE
e.g.routeNodeNearby 9 6
-
Editing a Route :
routeEdit INDEX_ROUTE FIELD VALUE
e.g.routeEdit 1 name Go to Sentosa for the beach
-
Deleting a Route :
routeDelete INDEX_ROUTE
e.g.routeDelete 1
-
Deleting a RouteNode :
routeNodeDelete INDEX_ROUTE INDEX_NODE
e.g.routeNodeDelete 3 10
-
List nearby bus stops of destination :
busStop BUSCODE
e.g.busStop 17009
-
Shows the bus route of a bus service :
busroute BUS_NUMBER
e.g.busRoute 96
-
Viewing calendar :
view
e.g.view
-
Exiting the program :
bye
e.g.bye