User Guide
- 1. About BookCoin
- 2. Quick start
- 3. Features
- FAQ
- Command summary
1. About BookCoin
BookCoin (to the Moon) is a desktop app for managing bookings that presents users with a structured and detailed information on facility availability via a Command Line Interface (CLI) while still having the benefits of a Graphical User Interface (GUI). BookCoin is designed for administrative personnels of schools or organisations who need to manage bookings across a large number of facilities. If you can type fast, BookCoin can get your facility management tasks done faster than traditional GUI apps. Enjoy!
2. Quick start
-
Ensure you have Java
11
or above installed in your Computer. -
Download the latest
BookCoin.jar
here, or as provided for PE. -
Copy the file to the folder that you want to use as the home folder for BookCoin.
-
Run
java -jar BookCoin.jar via your terminal
(preferred). As a second alternative, double-click the file to start the app. The GUI similar to the below should appear in a few seconds.
When you open the app, note how it already contains some sample data. This is for you to test out the commands first, and you may delete them using theclear
command when you are ready to use the app for your own purposes. -
Type the command in the command box and press Enter to execute it. e.g. typing
help
and pressing Enter will open the help window.
Some example commands you can try:-
list_venue
: Lists all venues. -
add_venue v/Chua Thian Poh Hall
: Starts a multi-step command to create a venue namedChua Thian Poh Hall
. Fill in the prompts as directed. -
exit
: Exits the app.
-
-
Refer to the Features below for details of each command.
Using BookCoin:
This section gives an overview of BookCoin’s layout so that you can get started quickly.
There are four main segments in BookCoin:
-
Tabs that allow you to navigate between Persons, Venues and Bookings
-
A command box as well as a result display box at the top left of the application
-
A bookmark list on the left of the screen
-
A main viewing area that would display complete information about a person, venue or booking
3. Features
Notes about the command format:
-
Words in
UPPER_CASE
are the parameters to be supplied by the user.
e.g. infind_venue v/VENUE_NAME
,VENUE_NAME
is a parameter which can be used asfind_venue v/Victoria Hall
. - Items in square brackets are optional.
e.g.add_venue v/VENUE_NAME [max/MAXIMUM_OCCUPANCY]
can be used asv/Chua Thian Poh Hall max/40
or asv/Chua Thian Poh Hall
. -
If a parameter is expected only once in the command, but you specified it multiple times, only the last occurrence of the parameter will be taken.
e.g. if you specifyp/12341234 p/56785678
, onlyp/56785678
will be taken. -
Extraneous parameters for commands that do not take in parameters (such as
exit
) will be ignored.
e.g. if the command specifiesexit 123
, it will be interpreted asexit
. - Limitations: certain keywords are reserved for commands and hence should not be used in your regular input field. For example, you would not be able to set a venue description to “n/a” because
n/
is a reserved keyword.
3.1. General features and commands
3.1.1. Viewing all available commands : help
Displays the link to the user guide.
Format: help
3.1.2. Deletes all records : clear
Deletes all records in the booking system.
Format: clear
Warning about clear command:
-
The clear command is especially useful for first time users because the app would first launch with sample data for new users to have greater convenience when testing app functionalities. Users can then use the clear command to clear the database of sample data after familiarising themselves with the app.
-
Be careful when using this command! All data will be deleted permanently.
3.1.3. Saving data
BookCoin data is saved in the hard disk automatically after any command which results in changes the data. There is no need to save manually.
3.1.4. Exiting the program : exit
Exits the program.
Format: exit
3.2. Command specific to multi-step commands
More information about multi-step commands:
- Some operations require several input fields, which can be very tedious to type in one go and may be difficult to remember. Multi-step commands therefore allow such commands to be used with greater ease as the system will prompt you to input items one at a time. To skip input for optional fields, you can just press the Enter key without typing anything when prompted to enter an optional field.
- The multi-step commands currently supported in v1.4 are
add_person
,add_venue
andadd_booking
. - The commands listed in this section are specific to multi-step commands and are only applicable for use when you are in the middle of a multi-step command.
3.2.1. Exiting prompting : exit_prompt
Exits the multi-step prompting for multi-step commands. After exiting prompting, you would be able to give command inputs again. Other commands would not work if you do not exit the multi-step command.
Format: exit_prompt
3.3. Person
About persons:
- BookCoin stores information about venue bookers which is important for scheduling/ contacting purposes. When bookers are stored, their information can be used for multiple bookings in the future which allows you to access their details easily without having to repeat the same booker details multiple times across bookings.
- For your convenience, we use the term “person” in the app instead of “booker” to make a distinction between “booker” and “booking”, which can be confusing.
- Persons are identified by their emails, hence all email inputs between persons must be unique. Phone inputs must also be unique between persons, but persons with the same name are allowed.
3.3.1. Adding a person : add_person
(Multi step command)
Adds a new person for the booking app. add_person
is a multi-step command that will prompt you for additional input. Inputting
add_person n/NAME
will start the command.
The app will guide you through the command through prompts for each field. As with other multi step commands, you can exit the command by entering exit_prompt
at any point. Optional fields can be skipped by pressing the Enter key when you are prompted to input an optional field.
Below, you can see the multi-step command when in action as it is prompting the user to input an email address.
If your command went through successfully without any invalid fields, you should see a success message like this:
After keying a valid initial input, the multi-step prompting will prompt you to enter details for the following fields in the specified order:
- Email: must be unique and of the format local-part@domain.
- Phone number: must be unique and input as digits without spaces in between. The permitted length is 7-15 digits inclusive, which is the standard length of all international phone numbers.
- Tags: tags should be alphanumeric without spaces. To add multiple tags, tags should be separated by commas. Tags cannot be empty, so consecutive commas without any tag in between would be invalid. Tags are added in a case-insensitive manner, duplicate tags with different casing but same letters will be merged into one.
Format:add_person n/NAME
Example: `add_person n/Christopher Nolan’
3.3.2. Editing a person :
edit_person
Edits an existing person in the booking system.
Format: edit_person eo/EMAIL [n/NAME] [p/PHONE] [e/EMAIL] [t/TAG]
- Edits the person with the specified
EMAIL
indicated ineo/EMAIL
(case-insensitive). - At least one of the optional fields must be provided. The field(s) provided will replace the data in the existing field(s) of the specified person.
- It is allowed that the provided field(s) match the data in the corresponding existing field(s) of the specified person.
Example:
-
edit_person eo/amy@example.com p/83984029 n/Jane
edits the person who currently has the emailamy@example.com
. The person’s phone number is edited to83984029
and name is edited toJane
.
3.3.3. Deleting a person : delete_person
Deletes the specified person from the booking system.
Format: delete_person e/EMAIL
- Deletes the person with the specified
EMAIL
(case-insensitive).
Example:
-
delete_person e/johndoe@gmail.com
deletes the person with emailjohndoe@gmail.com
from the system.
3.3.4. Listing all persons : list_person
Shows a list of all persons and their corresponding fields in the booking app.
Format: list_person
3.3.5. Finding a person : find_person
Shows a list of persons who match the specified field(s).
Format: find_person [n/NAME] [p/PHONE] [e/EMAIL] [t/TAG]
- The fields that can be specified include the person’s
NAME
,PHONE
,EMAIL
, andTAG
. At least one field must be provided. - Matching is case-insensitive, and partial matching on a keyword is not accepted to reduce the number of unrelated search results for greater convenience in searching.
- Only for the
NAME
andTAG
fields, multiple keywords can be provided. The keywords must be separated by whitespace for theNAME
field, and a comma for theTAG
field. Matching is successful as long as a person’s name/tag(s) contains words that fully matches any of the specified keywords.
Example:
-
find_person n/John Doe t/Student
shows a list of persons whose name contains words that fully matches any of the two specified name keywordsJohn
andDoe
, and is tagged withStudent
.
3.4. Venue
About venues:
- BookCoin stores information about venues which is important for scheduling/ contacting purposes. When venues are stored, their information can be used for multiple bookings in the future which allows you to access their details easily without having to repeat the same venue details multiple times across bookings.
- Venues are identified by their venue names, hence all venue names between venues must be unique.
3.4.1. Adding a venue : add_venue
(Multi step command)
Adds a new venue for the booking app. add_venue
is a multi-step command that will prompt you for additional input. Inputting
add_venue v/VENUE_NAME
will start the command and the app will guide you through the command through prompts for each field. As with other multi step commands, you can exit the command by entering exit_prompt
at any point. Optional fields can be skipped by pressing the Enter key when you are prompted to input an optional field.
After keying in a valid initial input, the multi-step prompting will prompt you to enter details for the following optional fields in the order stated, which can be skipped by pressing the Enter key:
- Venue capacity: the capacity should be entered as a digit, with the maximum limit being 50000. Default capacity is set to 10.
- Venue description
- Tags: tags should be alphanumeric without spaces. To add multiple tags, tags should be separated by commas. No tag can be empty, so consecutive commas without any tag in between would be invalid. Tags are added in a case-insensitive manner, duplicate tags with different casing but same letters will be merged into one.
Format: add_venue v/VENUE_NAME
Example:
-
add_venue v/Chua Thian Poh Hall
adds a venue with venue name Chua Thian Poh Hall and a maximum capacity of 40.
3.4.2. Editing a venue : edit_venue
Edits an existing venue in the booking system.
Format: edit_venue vo/VENUE_NAME [v/VENUE_NAME] [max/MAXIMUM_OCCUPANCY] [d/DESCRIPTION] [t/TAG]
- Edits the venue with the specified
VENUE_NAME
indicated invo/VENUE_NAME
(case-insensitive). - At least one of the optional fields must be provided. The field(s) provided will replace the data in the existing field(s) of the specified venue.
- It is allowed that the provided field(s) match the data in the corresponding existing field(s) of the specified venue.
- The provision of an empty
DESCRIPTION
field is accepted.
Examples:
-
edit_venue vo/Lab max/30
edits the venue that currently has the venue nameLab
. The venue’s maximum capacity is edited to30
. -
edit_venue vo/Victoria Hall d/
edits the venue that currently has the venue nameVictoria Hall
. The venue’s description, if any, is made empty.
3.4.3. Deleting a venue : delete_venue
Deletes the specified venue from the booking system.
Format: delete_venue v/VENUE_NAME
- Deletes the venue with the specified
VENUE_NAME
(case-insensitive).
Example:
-
delete_venue v/Volleyball Court
deletes the venue with the venue nameVolleyball Court
from the system.
3.4.4. Listing all venues : list_venue
Shows a list of all venues and their corresponding fields in the booking app.
Format: list_venue
You should see something like this:
3.4.5. Finding a venue : find_venue
Shows a list of venues that match the specified field(s).
Format: find_venue [v/VENUE_NAME] [max/CAPACITY] [d/DESCRIPTION] [t/TAG]
- The fields that can be specified include the venue’s
VENUE_NAME
,CAPACITY
,DESCRIPTION
, andTAG
. At least one field must be provided. - Matching is case-insensitive, and partial matching on a keyword is not accepted to reduce the number of unrelated search results for greater convenience in searching.
- Only for the
VENUE_NAME
,DESCRIPTION
andTAG
fields, multiple keywords can be provided. The keywords must be separated by whitespace for theVENUE_NAME
andDESCRIPTION
fields, and a comma for theTAG
field. Matching is successful as long as the venue’s name/description/tag(s) contains words that fully matches any of the specified keywords. - The provision of an empty
DESCRIPTION
field is accepted.
Examples:
-
find_venue v/Victoria Hall max/50
shows a list of venues whose names contain words that fully matches any of the two specified venue name keywordsVictoria
andHall
. The venue must also have a maximum capacity of at least50
. -
find_venue d/
shows a list of venues that do not have descriptions.
Here, we have tried filtering our venues and looking for venues with the tag “outdoors”! There is only one venue:
3.5. Booking
About bookings:
- BookCoin stores information about bookings for scheduling/ contacting purposes.
- Bookings are identified by their indexes, hence all indexes between bookings must be unique.
3.5.1. Adding a booking : add_booking
(Multi step command)
Adds a new booking into the booking app. add_booking
is a multi-step command that will prompt you for additional input. Inputting
add_booking
will start the command, and the app will guide you through the command through prompts for each field. As with other multi step commands, you can exit the command by entering exit_prompt
at any point. Optional fields can be skipped by pressing the Enter key when you are prompted to input an optional field.
The system will ask for and store the email of the booker, the venue booked, the start and end time of your booking (in the format YYYY-MM-DD HH:MM). You may also choose to add an optional description or tags for your booking.
Format: add_booking
A valid and existing email address must be provided, or BookCoin will throw an error as follows (the same applies for venue input):
3.5.2. Editing a booking : edit_booking
Edits an existing booking in the booking system.
Format: edit_booking INDEX [e/BOOKER_EMAIL] [v/VENUE_NAME] [d/DESCRIPTION] [bs/DATETIME] [be/DATETIME] [t/TAG]
- Edits the booking at the specified
INDEX
. The index refers to the index number shown in the displayed boking list. The index must be a positive integer 1, 2, 3, … - At least one of the optional fields must be provided. The field(s) provided will replace the data in the existing field(s) of the specified booking.
- It is allowed that the provided field(s) match the data in the corresponding existing field(s) of the specified booking.
- The provision of an empty
DESCRIPTION
field is accepted.
Examples:
-
edit_booking 1 e/janetan@gmail.com
edits the booking that currently has an index of1
. The email of the booker belonging to this booking is edited tojanetan@gmail.com
.
3.5.3. Deleting a booking : delete_booking
Deletes the specified booking from the booking system.
Format: delete_booking INDEX
- Deletes the booking at the specified
INDEX
. The index refers to the index number shown in the displayed booking list. The index must be a positive integer 1, 2, 3, …
Example:
-
delete_booking 1
deletes the booking at index1
.
3.5.4. Listing all bookings : list_booking
Shows a list of all bookings and their corresponding fields and index in the booking app.
Format: list_booking
3.5.5. Finding a booking : find_booking
Shows a list of bookings that match the specified field(s).
Format: find_booking [e/BOOKER_EMAIL] [date/DATE] [v/VENUE_NAME] [d/DESCRIPTION] [t/TAG]
- The fields that can be specified include the booking’s
BOOKER_EMAIL
,DATE
,VENUE_NAME
,DESCRIPTION
, andTAG
. At least one field must be provided. - Matching is case-insensitive, and partial matching on a keyword is not accepted to reduce the number of unrelated search results for greater convenience in searching.
- Only for the
VENUE_NAME
,DESCRIPTION
andTAG
fields, multiple keywords can be provided. The keywords must be separated by whitespace for theVENUE_NAME
andDESCRIPTION
fields, and a comma for theTAG
field. Matching is successful as long as a booking’s venue name/description/tag(s) contains words that fully matches any of the specified keywords. - The provision of an empty
DESCRIPTION
field is accepted.
Examples:
-
find_booking e/johnd@gmail.com date/2020-02-12
shows a list of bookings booked by a person with the emailjohnd@gmail.com
. The booking date must also contain the specified date2020-02-12
. -
find_booking d/
shows a list of bookings that do not have descriptions.
3.6. Upcoming
3.6.1. Undo command for all actions [coming in v2.0]
Undos the effect of a previous command if the command changes the data stored in the system (i.e. adds/ updates/ deletes any data)
Format: undo
3.6.2. Generate file of booking schedule [coming in v2.0]
Generates an .ics file containing a timetable of the bookings for the particular venue given in a command.
Format generate v/Victoria Hall
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 BookCoin home folder.
Command summary
Action | Format, Example |
---|---|
add person |
add_person n/NAME (Note: add_person is a multi-step command) |
delete person |
delete_person e/EMAIL e.g. delete_person e/jane@gmail.com
|
edit person |
edit_person eo/EMAIL [n/NAME] [p/PHONE] [e/EMAIL] [t/TAG] e.g., edit_person eo/jane@example.com p/94857267
|
find person |
find_person [n/NAME] [p/PHONE] [e/EMAIL] [t/TAG] e.g., find_person e/jane@example.com
|
list person | list_person |
add venue |
add_venue v/VENUE_NAME (Note: add_venue is a multi-step command) |
delete venue |
delete_venue v/VENUE_NAME e.g. delete_venue v/Field
|
edit venue |
edit_venue vo/VENUE_NAME [v/VENUE_NAME] [max/CAPACITY] [d/DESCRIPTION] [t/TAG] e.g., edit_venue vo/Field v/Sports Field
|
find venue |
find_venue [v/VENUE_NAME] [max/CAPACITY] [d/DESCRIPTION] [t/TAG] e.g., find_venue v/Field
|
list venue | list_venue |
add booking |
add_booking (Note: add_booking is a multi-step command) |
delete booking |
delete_booking INDEX e.g. delete_booking 1
|
edit booking |
edit_booking INDEX [e/BOOKER_EMAIL] [v/VENUE_NAME] [d/DESCRIPTION] [bs/DATETIME] [be/DATETIME] [t/TAG] e.g., edit_booking 1 e/doe@gmail.com
|
find booking |
find_booking [e/BOOKER_EMAIL] [v/VENUE_NAME] [d/DESCRIPTION] [bs/DATETIME] [be/DATETIME] [t/TAG] e.g., find_booking e/jane@example.com
|
list booking | list_booking |
help | help |
clear | clear |
exit | exit |