By: Team AY1920S1-CS2113T-T12-1 Since: Oct 2019
Optix is a desktop application made for users who want to manage the seating of a theatre or other venues while keeping track of the finances earned. Optix is optimised for users who can type fast and prefers using a Command Line Interface (CLI) to other methods. A Graphical User Interface (GUI) is also developed for additional user interaction. Want to skip the process of going through multiple steps to manage bookings and viewing your profits? If you can type fast and want to avoid this hassle, Optix is the perfect application for you! Jump to Section 2, “Quick Start” to get started.
-
Ensure that Java 11 or above is installed on your computer.
-
Download the latest
optix.jarhere. -
Copy the file to the folder you want to use as the home folder for your theatre bookings.
-
Double-click the file to start the application. The GUI should appear in a few seconds.
-
Type the command in the command box and press Enter to execute it (e.g. type help and press Enter to open the help window.)
-
Some example commands you can try:
-
addPhantom of the Opera|20|5/5/2020 : adds a show called “Phantom of the Opera” to be scheduled on the 5/5/2020 and the base price of $20 per seat to Optix. -
list: list all shows currently added to Optix. -
deletePhantom of the Opera|5/5/2020 : finds a show called Phantom of the Opera scheduled on the 5/5/2020 in Optix, and deletes it. -
help: displays the list of commands available. -
bye: exits the application.
-
-
Words in
UPPER_CASEare the parameters to be supplied by the user. e.g. in addSHOW_NAME|SCHEDULED_DATE|PRICE, theSHOW_NAME,SCHEDULED_DATE, andPRICEare parameters that can be used asadd Phantom of the Opera|5/5/2020|20. -
Items with
…after them can be used multiple times (minimally once). e.g.SEATcan be used asA1 A2 B6etc. -
Parameters have to be in order. e.g. if the command specifies
SHOW_NAME|SHOW_DATE,SHOW_DATE|SHOW_NAMEis invalid. -
All
SHOW_DATEentered must be in the format dd/mm/yyyy -
All COMMAND and
SHOW_NAMEare case insensitive.
The following set of commands
As a new or returning user you may be unsure about the commands.
The help command displays descriptions of all the available commands.
Format: help
Hate clicking? Simply type in the tab headers to achieve fast navigation
between the various tabs!
Format: show, finance, archive
The following set of commands helps with managing shows within the theatre.
Let’s say that a new event is coming up and you’d like to add it to the application showlist.
Use the add command to add shows to the current show list.
Format: add SHOW_NAME|SEATS_BASE_PRICE|DATE1|DATE2|…
|
💡
|
use DATE1|DATE2|… to easily add multiple dates for the show
* SEATS_BASE_PRICE represents the lowest cost of a seat in the venue.
* There must be no other show on that DATE.
* The DATE must be in the future.
* The format of DATE must be dd/mm/yyyy
* Shows of the same name can be added.
|
Examples:
Add a single show:
add Phantom of the Opera|20|5/5/2020
Add multiple shows:
add Lion King|30|6/5/2020|7/5/2020|8/5/2020
In the event a show is cancelled, you can remove it from the list using the delete command. It
deletes shows for specific dates.
Format: delete SHOW_NAME|DATE1|DATE2|…
|
💡
|
use DATE1|DATE2|DATE3|… to easily remove multiple dates for the show
|
-
Removes
SHOW_NAMEon the specifiedDATE -
The exact
SHOW_NAMEandDATEmust be entered for show to be removed successfully.
Examples:
Delete a single show:
Delete Lion King|10/10/2020
Delete multiple shows:
delete Phantom of the Opera|5/5/2020|6/5/2020
The list command allows you to view all current shows.
Format: list
|
💡
|
Use list before you type other commands so you can see all the show names and show dates
|
You can also search for all listings of a particular show with the list command!
Scheduled shows with the specified name will be listed.
Format: list SHOW_NAME
Examples:
list Phantom of the Opera list Lion King
You can also search for all listings of a particular month!
Lists all the shows for a specific month.
|
💡
|
use numbers or abbreviations to represent the month instead of spelling it out! |
Format: list MONTH YEAR
Examples:
list 12 2020 list Dec 2020 list December 2020
Use the reschedule command to reschedule the requested
current show in the showlist to a specified date.
Format: reschedule SHOW_NAME|OLD_DATE|NEW_DATE
-
Changes the date of the specified
SHOW_NAMEfromOLD_DATEtoNEW_DATE -
Invalid if the date of
SHOW_NAMEdoes not matchOLD_DATE -
Invalid if
NEW_DATEhas already passed.
Example:
reschedule Phantom of the Opera|5/5/2020|10/5/2020
If you made a spelling error while adding an event, there is no need to delete and add it again.
Use edit to change its name.
Format: edit OLD_SHOW_NAME|SHOW_DATE|NEW_SHOW_NAME
-
Changes the name of the specified
SHOW_DATEwithOLD_SHOW_NAMEtoNEW_SHOW_NAME -
Invalid if the date of
OLD_SHOW_NAMEdoes not matchSHOW_DATE
Example:
edit Phanom of the Opera|5/5/2020|Phantom of the Opera
|
ℹ️
|
Phanom of the Opera is intentionally mispelled |
The following set of commands helps with managing ticketing for any show that is scheduled to perform in the theatre.
You can use the view command to check seat availabilities for shows.
The layout of the seats within the theatre will be displayed.
Format: view SHOW_NAME|SHOW_DATE
-
Displays the layout of the specified
SHOW_NAMEonSHOW_DATEin a 2D array format. -
The layout will not be displayed if the specified
SHOW_DATEdoes not correspond to the actual show date of the indicatedSHOW_NAME. -
The layout will not be displayed if the specified
SHOW_DATEdoes not have any show scheduled for the day.
Examples:
view Lion King|11/10/2020 view Phantom of the Opera|20/11/2021
|
ℹ️
|
red seats indicates that seat has been sold, while blue seats indicates that seat is still available for booking. |
The sell command can be used to record bookings. It is useful for managing seats sold to customers and for tracking the availability of the seats
Format: sell SHOW_NAME|SHOW_DATE|SEAT …
|
💡
|
Use the view command for a visual representation of the statuses of all the seats to ensure successful purchase of seats
|
-
Sells
SEATspecified by customers for the indicatedSHOW_NAMEonSHOW_DATE. -
Each
SEATis represented by an alphabet followed by an integer e.g. A1 -
Multiple
SEATcan be entered in the parameterSEAT …to book all those seats
Examples:
Sell a single seat:
sell Phantom of the Opera|5/5/2020|C1
Sell multiple seats in a single command:
sell Lion King|6/5/2020| A1 A2 A3 A4
Changes the seat of a customer.
Format: reassign-seat SHOW_NAME|SHOW_DATE|OLD_SEAT|NEW_SEAT
-
Reassign a booked seat to another available seat for the show.
-
Seat cannot be reassigned if:
-
OLD_SEATis not booked previously. -
NEW_SEAThas been booked. -
OLD_SEAT/NEW_SEATdoes not exist -
Both
OLD_SEATandNEW_SEATare the same.
-
Examples:
reassign-seat Phantom of the Opera|5/5/2020|A1|A2 reassign-seat Lion King|10/5/2020|D6|A1
The following set of commands helps with tracking the finance of the theatre.
Displays the profit earned from that particular show.
Format: view-profit SHOW_NAME|SHOW_DATE
-
Displays the profit for the specified
SHOW_NAMEonSHOW_DATE -
Displays projected earnings for a show if
SHOW_DATEis in the future.
Example:
view-profit Lion King|5/5/2020
Displays the profit earned for a particular month.
|
💡
|
use numbers or abbreviations to represent the month instead of spelling it out! |
Format: view-monthly MONTH YEAR
-
Displays the total profit collected for all the shows in MONTH YEAR
-
Displays projected earnings if MONTH YEAR is in the future.
Examples:
view-monthly 1 2020 view-monthly Jan 2020 view-monthly January 2018
As shown in the figure above, entering the view-monthly command would cause Optix to
respond with the profit of that month.
As shown in the figure above, the GUI would also display the shows performed in that month, together with the revenue of each show
Aliases help you to create shortcuts for commands, hence enabling you to to input commands with less effort!
As a user, you can give a Command an alternate name for easy access.
You can add them with add-alias to an existing command.
After adding the alias, it is immediately available for use!
Format: add-alias ALIAS|COMMAND
-
Adds a new alias for
COMMAND -
The alias must not already be in use.
-
The alias must not be the name of a command.
Examples:
Give the command add an alias 't':
add-alias t|add
Assigning an alias that is already in use is not allowed:
add-alias t|delete would not work if 't' is paired to another command already.
Assigning a command keyword as an alias is also not allowed:
add-alias add|delete is not allowed.
Assigning a command keyword with space is also not allowed:
add-alias g g|add is not allowed.
Let’s say you changed your mind after adding the alias.
Use the remove-alias command to delete an existing alias.
Format: remove-alias ALIAS|COMMAND
-
Remove the
ALIASforCOMMAND
Example:
remove-alias t|add
If you forgot the aliases you set, or would like to view the default aliases,
use the list-alias command!
Format: list-alias
Q: How do I transfer my data to another computer?
A: Download the optix.jar in the other computer and paste the file that contains the data from the previous Optix folder in the same folder as the jar file.
-
Add:
add SHOW_NAME|SEATS_BASE_PRICE|DATE1|DATE2|…Eg.add Phantom of the Opera|20|5/5/2020|6/5/2020 -
Add-alias:
add-alias ALIAS|COMMANDEg.add-alias q|add -
Bye
-
Delete:
delete SHOW_NAME|DATE1|DATE2|…Eg.delete Phantom of the Opera|5/5/2020 -
Edit:
edit OLD_SHOW_NAME|SHOW_DATE|NEW_SHOW_NAMEEg.edit Phanom of the Opera|5/5/2020|Phantom of the Opera -
List:
list -
List:
list SHOW_NAMEEg.list Phantom of the Opera -
List:
list MONTH YEAREg.list May 2020 -
List Alias:
List-alias -
reschedule:
reschedule SHOW_NAME|OLD_DATE|NEW_DATEEg.reschedule Phantom of the Opera|5/5/2020|10/5/2020 -
Reassign-seat:
reassign-seat SHOW_NAME|SHOW_DATE|OLD_SEAT|NEW_SEATEg.reassign-seat Phantom of the Opera|5/5/2020|A1|A2 -
Remove-alias:
remove-alias ALIAS|COMMANDEg.remove-alias q|add -
Reset-alias:
reset-alias -
Sell:
sell SHOW_NAME|SHOW_DATE|SEAT1 SEAT2 SEAT3 …Eg.sell Phantom of the Opera|5/5/2020| C1 D6 E10 -
View:
view SHOW_NAME|SHOW_DATEEg.view Phantom of the Opera|5/5/2020 -
View-profit:
view-profit SHOW_NAME|SHOW_DATEEg.view-profit Lion King|5/5/2020 -
View-monthly:
view-monthly MONTH YEAREg.view-monthly May 2020 -
Help:
help










