By: CS2103-AY1819S1-W14-2 Since: Sep 2018 Licence: MIT

1. Introduction

Welcome to ThanePark! ThanePark is a theme park management application that assists theme park managers and operators in obtaining ride information readily. Using the keyboard, you can easily access features such as creating rides, updating ride information, finding rides with short waiting time and more.

Get started now by heading over to Section 3, “Quick Start”. Enjoy!

2. About

This user guide introduces you to ThanePark, provides detailed instructions to set up and gives you an overview of the available features. No prior technical knowledge is required to use ThanePark.

For frequently asked questions, check out Section 5, “FAQ”.

For a brief summary of all features, check out Section 6, “Command Summary”.

3. Quick Start

Steps to set up ThanePark:

  1. Check that you have Java version 9 or later installed in your Computer.

  2. Download the latest thanepark.jar here.

  3. Copy the file to the folder you want to use as the home folder for your ThanePark.

  4. Double-click the file to start the app. The GUI should appear in a few seconds.

    startup

If you left click on the any ride in the list, it will show the ride information in a window similar to below:

Ui
The bar at the top of the window allows you to access Help or About. The About option on the navigation bar opens an About Us window.
You will not be able to customise the image for rides. This feature will only be implemented in v2.0.
Additionally, note that you may not enter more than 250 characters inside the CommandBox. Any character past the 250th will be forcefully truncated. This is to guard against abuse.
Also note that the waiting time and maintenance dates are not live, they are static and require manual updates. Maintenance dates will update only when a command is executed. Maintenance dates do not update when ThanePark is restarted. In v2.0 this updating process will be automated.

Congratulations! You have successfully set up ThanePark!

Type the command in the command box and press Enter to execute it.
e.g. typing help more and pressing Enter will open the help window.

Type some of these commands to try out ThanePark:

  • viewall : lists all rides in your theme park.

  • exit : exits the app.

Refer to Section 4, “Features” for details of each command.

4. Features

This section contains information of all commands used in ThanePark.

Command Format

  • Items in chevrons <> denotes compulsory field.
    Example: add <attraction><maintenance> <waitTime> <zone>

  • Items in square brackets [] denotes optional field.
    Example: help [more]

  • Items in curly brackets {} denotes keystroke.
    Example: {tab} is the TAB keystroke.

  • Items ending with ellipses …​ denotes variable number of arguments.
    Example: filter <tag> <condition> [[tag] [condition]…​]

  • Parameters with prefix / can be in any order
    Example: if the command specifies n/name p/zone, p/zone n/name is also acceptable.

4.1. Manage Attractions

This section contains all commands related to managing attractions.

4.1.1. Adding attractions: add

Adds an attraction by name with the information.
Format: add <n/attraction> <m/maintenance> <w/waitTime> <z/zone> [t/tag(s)]

A ride can have any number of tags (including 0).

Maintenance and waiting time should only contain positive integers with at least 1 digit long and should be less than 1 billion.
The length for zone and tag(s) field exceeds 30 characters is undefined behaviour.

Examples:

  • add n/Transformers m/1 w/30 z/John street, block 123, #01-01

  • add n/The Mummy m/3 w/45 z/311, Clementi Ave 2, #02-25 t/3D t/indoor

4.1.2. Deleting attractions: delete

Deletes the specified attraction from ThanePark.
Format: delete <index>

  • Deletes the ride at the specified index.

  • The index refers to the index number shown in the list of displayed rides.

  • The index must be a positive integer 1, 2, 3, …​

Examples:

  • viewall
    delete 2
    Deletes the 2nd ride in ThanePark.

  • find Puss in Boots' Giant Journey
    delete 1
    Deletes the 1st ride in the results of the find command.

4.1.3. Updating information of attraction: update

Updates the details of the ride identified by the index number used in the displayed ride list.

The length for zone and tag(s) field exceeds 30 characters is undefined behaviour.

Format: update <index> <prefix/value>

Parameters: INDEX (must be a positive integer) [n/NAME] [m/MAINTENANCE] [w/WAITING_TIME] [z/ZONE] [t/TAG].

Examples:

  • update 1 m/90
    Updates the 1st ride in ThanePark.

  • update 2 m/90 w/60
    Updates the 2nd ride in ThanePark.

This command cannot update the waiting time and maintenance field when the ride is not open.
Maintenance and waiting time should only contain positive integers with at least 1 digit long and should be less than 1 billion.

4.1.4. Shutting down attraction: shutdown

Closes the ride for the day. Display statistics for the ride on that day.
Format: shutdown <index>

This command will reset the waiting time field to zero.

Example : shutdown 1

  • shutdown 1
    Closes the 1st ride in ThanePark.

As seen in the diagram below, the status of the 1st ride changes from open to shutdown within the red box after shutdown 1 is executed.

shutdown example 1
Figure 1. Before executing shutdown 1
shutdown example 2
Figure 2. After executing shutdown 1

After shutdown 1 is executed, the name, status, days since last maintenance, waiting time, zone and tags for the ride is displayed.

4.1.5. Opening attraction: open

Opens the ride for the day. Display statistics for the ride on that day.
Format: open <index>

Example:

  • open 2
    Opens the 2nd ride in ThanePark.

This command also resets the waiting time field to zero.

4.1.6. Closing attraction for maintenance: maintain

Closes the ride for maintenance. Display statistics for the ride on that day.
Format: maintain <index>

This command also resets both waiting time and maintenance fields to zero.

4.1.7. Clearing all entries : clear

Clears all entries from the address book.
Format: clear

4.2. Manage Commands

This section contains all commands related to managing commands.

4.2.1. Viewing help: help

Displays short summary of important commands. You should see a similar-looking summarized help sheet as shown below.

help example 1

Format: help

Extended usage of help command: If you want to see the full help manual, use help [more]. If you want to see the full help for a specific commandWord, use help [commandWord]. Should you provide an invalid [commandWord], you will be shown the default short help message. Please note that any arguments beyond the 2nd position will be discarded and ignored.
Please note that the short help only shows the rough syntax of commands. If you want the full help, do refer to this User Guide. You should also note that help will cause the currently selected Ride to be deselected.

Examples:

  • help more: Opens a help window that describes the usage of ThanePark. You should see something similar to the image below.

help example 2
  • help add: Opens a help window and scrolls to add command word usage. You should see something similar to the image below.

  • help add 1234: Same as previous, the extra arguments are discarded and ignored.

help example 3

4.2.2. Suggesting commands: {tab}

Displays suggested list of commands when TAB is pressed.

Format: TAB

If you want to see common usage, skip to examples to view common usage. The full functionality of suggesting commands can be quite heavy.
Extended usage of suggesting commands:
Action State of application Expected Output

TAB

  • CommandBox contains half complete command

  • Only 1 command word match to first prefix in CommandBox

  • Strips all text behind first prefix in CommandBox.

  • Replaces prefix with matching command word in CommandBox.

  • Displays matching command word in result panel.

TAB

  • CommandBox contains half complete command

  • More than 1 command word match to first prefix in CommandBox

  • Displays all matching command words in result panel.

  • No change in CommandBox.

TAB

  • CommandBox contains half complete command

  • No command word match to first prefix in CommandBox

  • No visible change is reflected.

TAB

  • CommandBox contains nothing

  • No visible change is reflected.

TAB

  • CommandBox starts with a complete command word

  • More than 1 command word match to first prefix in CommandBox

  • Displays all matching command words in result panel.

  • No change in CommandBox.

TAB

  • CommandBox starts with a complete command word

  • Only 1 command word match to first prefix in CommandBox

  • Strips all text behind command word in CommandBox.

  • Command in CommandBox will not be executed.

  • Command word will be shown in result panel.

ENTER

  • CommandBox contains half complete command

  • Only 1 command word match to first prefix in CommandBox

  • Strips all text behind first prefix in CommandBox.

  • Replaces prefix with matching command word in CommandBox.

  • Displays matching command word in result panel.

ENTER

  • CommandBox contains half complete command

  • More than 1 command word match to first prefix in CommandBox

  • Displays all matching command words in result panel.

  • Remove all text in CommandBox.

ENTER

  • CommandBox contains half complete command

  • No command word match to first prefix in CommandBox

  • Error is shown in result panel.

  • CommandBox text turns red.

ENTER

  • CommandBox starts with a complete command word

  • Command arguments are invalid

  • Suggested command usage is shown in result panel.

  • CommandBox text turns red.

Examples:

  • he
    TAB (Completes the help command word.)

  • histor more
    ENTER (Corrects the history command word. Strips more from the command)

4.2.3. Viewing history of previous commands: history

Displays previous user inputs during this session. Does not include the executed history itself.

Format: history [more]

Extended usage of history:
If you wish to get a report of all commands executed across sessions, use history more and a report will be generated.
The xml file produce by ThanePark was not designed for you to read.
You may experience loss of command history information when commandHistory.xml exceeds 5MB or is unintentionally modified.

Examples:

  • history (Shows user inputs in current session.)

  • history more (A window similar to the one below should show up:)

history example 1

4.2.4. Undoing commands: undo

Undo previous command during current session.

Format: undo

Examples:

  • delete 1
    viewAll
    undo (reverses the delete 1 command)

  • view 1
    viewAll
    undo
    The undo command fails as there are no undoable commands executed previously.

  • delete 1
    clear
    undo (reverses the clear command)
    undo (reverses the delete 1 command)

4.2.5. Redoing previously undone commands: redo

Reverse the previously undone commands during current session.

Format: redo

Examples:

  • delete 1
    undo (reverses the delete 1 command)
    redo (reapplies the delete 1 command)

  • delete 1
    redo
    The redo command fails as there are no undo commands executed previously.

  • delete 1
    clear
    undo (reverses the clear command)
    undo (reverses the delete 1 command)
    redo (reapplies the delete 1 command)
    redo (reapplies the clear command)

4.2.6. Exiting ThanePark: exit

Exits the ThanePark application.

Format: exit

4.3. View information of rides

This section contains all commands related to both viewing information of specific rides and viewing different lists of rides.

4.3.1. Viewing detailed information of a specific ride: view

Displays all available information about a single ride on the list of displayed rides. The index field specifies the index of the ride that you want to view.

Format: view <index>

index should be a positive integer that is not larger than the size of the displayed list.

Example 1: view 4

Note how the information within the red box changes when view 4 is executed.

view example 1
Figure 3. Before executing view 4
view example 2
Figure 4. After executing view 4

When view 4 is executed, the display shows the name, status, days since last maintenance and waiting time for the selected ride.

Example 2: view 17

Note how the information within the red box at the top changes when view 17 is executed.

view example 3
Figure 5. Before executing view 17

The red box at the bottom of the diagram above shows the last ride, with an index of 16. If you want to view a ride with an index larger than the list, an error message will be shown.

view example 4
Figure 6. After executing view 17

The red box in the diagram above shows the error message when you try to enter an index that is not in the list,

4.3.2. Viewing rides by their status: viewstatus

Displays all rides according to the status of the rides.

Format: viewstatus <status>

There are only three statuses that are valid, namely open, shutdown and maintenance.

Example 1: viewstatus open

Note how the information within the red boxes changes when the viewstatus open command is executed.

viewstatus example 1
Figure 7. Before executing viewstatus open

In the diagram above, note that the list of rides in the red box at the left contains rides with different statuses.

viewstatus example 2
Figure 8. After executing viewstatus open

As seen in the diagram above, once viewstatus open is executed, the list of rides in the box at the left only contains rides that are open. In addition, the response box at the top of the diagram displays the total number of rides that are open.

Example 2: viewstatus MainTenaNce

viewstatus MainTenaNce command accepts inputs with mixed cases in the status field.

viewstatus example 3
Figure 9. Before executing viewstatus MainTenaNce command
viewstatus example 4
Figure 10. After executing viewstatus MainTenaNce command

As seen in the diagram above, ThanePark is able to read viewstatus MainTenaNce and display rides with the status MAINTENANCE.

4.3.3. Viewing all available rides: viewall

Displays all available rides in a list.

Format: viewall

Example: viewall

Note how the information within the red boxes changes when the viewall command is executed.

viewall example 1
Figure 11. Before executing viewall
viewall example 2
Figure 12. After executing viewall

As seen in the diagram above, the response box at the top of the diagram will display the total number of rides, with a break down of the total number of rides of different statuses. The list box at the left of the diagram is also updated to show all the rides in ThanePark, regardless of status.

4.4. Find the relevant list of rides

This section contains all commands related to finding rides that you need at any time.

4.4.1. Finding a particular attraction: find

Find a list of rides that the you need to check on. Case insensitive.
Can only find the name, the zone, and the tags of the attractions.

Format: find <[name] [[tag][keyword]…​]>
Must include arguments when finding.

Here are some examples with images to let you follow along.

Examples:

  • find accelerator
    Finds and displays the list of attractions in ThanePark with the name "accelerator".

    You can only use find to look for a full word in the name. This means a part of the name like "accel" will not work and only the full name like "accelerator" will work.

The list of results should be like this if no changes were made to the application (ie. delete or add or update):

find example 1
  • find z/ sci-fi
    Finds and displays the list of attractions with zones that contain the word "sci-fi". The list of results should look like this:

find example 2
  • find zone sci-fi t/popular tag rollerCoaster
    Finds and displays the list of attractions with zones in the theme park that contain the word "sci-fi" and the tags "rollerCoaster" and "popular". The list of results should look like this:

find example 3

4.4.2. Finding rides that fits the given condition: filter

Display all rides that fits the condition in a list. It can only filter conditions that have numeric values i.e. Maintenance and WaitTime.

Format: filter <tag> <condition> [[tag] [condition]…​]
Can include more conditions as desired.

Examples:

  • filter w/ < 10
    Filters attractions with waiting time less than 10 minutes. The list of results should like this if no changes were made to the application (ie. delete or add or update):

filter example 1
  • filter w/ < 10 m/ >= 50
    Filters attractions with waiting time less than 10 and maintenance of more than equals 50 days. The list of results should look like this:

filter example 2
If a ride is selected, a find or filter is performed, the ride panel will still show the ride that was previously selected. Future versions will automatically select the first ride on the list and allow you to see information about it on the BrowserPanel or show the short help menu if no rides are found.

4.5. Coming in v2.0

This section contains all commands that is related to accessing the system.

All commands in this section have not been implemented. They will be implemented in v2.0.

4.5.1. Signing up as a user

Creates a new user profile to allow the user to access ThanePark.
Format: signup <username> <password>

4.5.2. Logging into the system

Logs in a user that has already signed up.
Format: login <username> <password>

4.5.3. Logging out of the system

Logs out a user from the system.
Format: logout

4.5.4. Security features

Secures ThanePark data by requiring operators to log in using their identity.

4.5.5. Identity logging

Command history will now track the identity of the person who executed the command.

4.5.6. Network deployment

ThanePark will have network capabilities that allow it to communicate with other devices.

4.5.7. Zone and tag length limit of 40 characters

ThanePark will be able to handle zones and tags of over 40 characters. Currently the text will overflow, thus users should refrain from going over the limit.

4.5.8. Customizable ride image

You will be able to customize the image for each and every ride.

4.5.9. Realtime data

You will be receiving live data from other sources in the network. Also, the maintenance and wait time will update in realtime.

5. FAQ

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 ThanePark folder.

6. Command Summary

Action Syntax

Manage Attractions

Add

add <n/attraction> <m/maintenance> <w/waitTime> <z/zone> [t/tag(s)]
e.g. add n/Mummy m/3 w/45 z/311, Clementi Ave 2, #02-25 t/3D t/indoor

Delete

delete <index>
e.g. delete 3

Update

update <index> <prefix/value>
e.g. update 2 m/90 w/60

Shutdown

shutdown <index>

Open

open <index>

Maintain

maintain <index>

Clear

clear

Get help and accessibility

Help

help [more], help [commandWord]
e.g. help add

Using Autocomplete

TAB
e.g. dele
TAB completes the delete command word.

History

history [more]
e.g. history more

Undo

undo
e.g. undo

Redo

redo
e.g. redo

Exit

exit
e.g. exit

View information on the list of rides

View all

viewall

View

view <index>

View status

viewstatus <status>

Find the relevant list of rides

Find

find <[name] [[tag][keyword]…​]>

Filter

filter <tag> <condition> [[tag] [condition]…​]