User Guide
Introduction
GuestBook is a hotel management application that aims to revolutionise the small hotel and backpacker’s inn industry. As a hotel manager, capitalise on GuestBook’s efficient management tools to save you time. You can use GuestBook to manage your guests and their details with just your keyboard, literally all in the palm of your hands! By using our features, your essential hotel management needs are taken care of. With GuestBook, managing guests have never been easier.
This user guide will ease you in using GuestBook and guide you along to incorporate GuestBook into your management workflow. It provides an in-depth description of GuestBook’s core features and how to best use them to suit your needs. With our intuitive design, you will become a master at using GuestBook in no time!
Table of Contents
- Introduction
- Table of Contents
- How to use the User Guide
- Components of the User Interface
- Quick start
- Glossary
- Features
- FAQ
- Field summary
- Command summary
- Contact Us
How to use the User Guide
- For a quick and easy way to get started with GuestBook, you can visit the Quick Start section.
- To understand the terms we use in GuestBook, you can visit the Glossary section.
- To see the amazing features that GuestBook provides and how to use them, you can visit the Features section.
- Having issues? Check out the FAQ section and see if you can find your solutions there!
- Have a question for us or require our assistance? Feel free to contact us, and we will do our best to assist you!
Tip:
- As there is a lot of content covered in this guide, it would be good to browse through the contents once first. This will give you a clearer idea of how GuestBook functions. After which, go in-depth into the sections you are interested to learn more about.
- Some information (e.g., constraints of fields) are placed in separate sections to prevent information overload. By following this incremental approach, we hope to make the content more digestible for you.
Style Guide
These styles below are consistently used throughout this user guide. This section hopes to provide you with a better understanding on how to interpret these formats.
- Phrases in blue mean that they are hyperlinked to a section of this user guide or to an external website.
-
Coded phrases
surrounded by a block indicate that they are technical terms such as GuestBook commands. - Bolded phrases are key terms that you should pay attention to.
- Italicised phrases are used to highlight phrases that are part of an example.
Components of the User Interface
Locations of the components
Tip:
- By using your mouse to hover over the icons in the application itself, the names of the components will be visible.
Use of the components
Component | Use |
---|---|
Command Box | This is where you enter commands. |
Result Display | This is where the detailed results of your commands will be shown. |
Guest Card | This is where all the guest information of a guest will be shown. |
Status Bar | This shows the location of your save file. |
This is the phone number of the guest. | |
This is the email address of the guest. | |
This is the room the guest is staying in. | |
These are the dates of stay of the guest. | |
This is the total number of guests in the guest’s room. | |
This shows whether the guest’s room has been cleaned. Green means that the room has been cleaned while red means that the room has yet to be cleaned. | |
This is the current bill of the guest. | |
This shows any requests made by the guest. |
Quick start
- Ensure you have
Java 11
or above installed in your Computer.- If you are using Mac, open the
Terminal
and enterjava --version
.- To open the
Terminal
, presscommand
andspace bar
together to launch Spotlight. - Following, enter
terminal
in the search bar.
- To open the
- If you are using Windows, open the
Command Prompt
and enterjava -version
.- To open the
Command Prompt
, pressWindows
andR
together to launch the “Run” box. - Following, enter
cmd
and clickOK
.
- To open the
- If
Java 11
is installed, you would get a similar output as shown below. You can continue to step 2. (Do not worry about what the message says, it is not necessary to understand it when learning how to use GuestBook.)openjdk 11.0.16.1 2022-07-19 LTS OpenJDK Runtime Environment Zulu11.58+23-CA (build 11.0.16.1+1-LTS) OpenJDK 64-Bit Server VM Zulu11.58+23-CA (build 11.0.16.1+1-LTS, mixed mode)
- Else, if
Java 11
is not installed, an error message will appear as shown below.'java' is not recognized as an internal or external command, operable program or batch file.
- Follow these instructions to
download
Java 11
and return to step 1 once you have completed them to confirm ifJava 11
has been installed.
- If you are using Mac, open the
- Download the latest
guestbook.jar
from here.
-
Copy the file to the folder you want to use as the home folder for your GuestBook.
- Double-click on
guestbook.jar
to start the app.- Alternatively, if you wish to use the
Terminal
orCommand Prompt
, navigate to the home folder and enterjava -jar guestbook.jar
to start the app.
The GUI, similar to the image below, should pop up in a few seconds. Note that the GuestBook comes prepackaged with sample data.
- Alternatively, if you wish to use the
-
Type your commands in the command box and press Enter to execute it. E.g., typing
help
and pressing Enter will open the help window. - To kickstart your journey, you can add a guest, John Doe, to GuestBook by using the
add
command.-
add n/John Doe p/98765432 e/johnd@example.com rm/05-73 dr/13/09/22 - 15/09/22 ng/3 rq/Extra towels
: Adds a guest named John Doe to GuestBook along with the necessary information, such as his particulars.
-
- To find John Doe, you can use the
find
command, and search through any of John Doe’s fields, such as hisname
orroom
. The command helps you find guests that match any of the keywords you entered. For example,-
find John Doe
: Finds all the guests who have at least one field containing John or Doe (case-insensitive).
-
- To make changes to John Doe, you can use the
edit
command. This changes the guest’s fields based on the new values you provide. The other values will remain unchanged.
For example, assume John Doe is the second guest in the list. If you want to change his room number to 05-55, you can execute the following command.-
edit 2 rm/05-55
: Changes theRoom
of John Doe to 05-55 in GuestBook.
-
- After executing a
find
command, you might realise that some of your guests are no longer visible, as they are not in the current list.
To see a list of all your guests, you can use thelist
command.-
list
: List all the guests in GuestBook.
-
- You might want to charge a guest in some scenarios, such as when a guest orders room service. You can add charges to the guest’s bill using the
bill
command.
For example, you can charge the third guest 30.35 by running the command below.-
bill 3 b/+30.35
: Adds 30.35 to thebill
of the third guest shown in the current list.
-
- When a guest checks out of your hotel, you can remove the guest using the
delete
command. For example, you can check out the third guest by executing the command below.-
delete 3
: Deletes the third guest shown in the current list.
-
- Should you wish to clear your GuestBook of all entries, you can use the
clear
command.
-
clear
: Deletes all guests.
Warning:
- Do note that this command is irreversible. Once cleared, all the guest data cannot be retrieved. Please use this command with utmost caution.
-
- Finally, to quit GuestBook, you can run the
exit
command.-
exit
: Exits the app.
-
- We have come to the end of our Quick Start. For more details, you can refer to the Features below for the exact specifications of each command. Thank you!
Return to Table of Contents
Glossary
From this glossary section onwards, we will go into a deep dive of the commands of GuestBook. As there are some technical terms present in the descriptions below, we have provided their definitions (contextualised to GuestBook) for you to get acquainted with.
Term | Definition |
---|---|
Alphanumeric | Refers to characters that are numbers 0-9 and alphabets A-Z, both uppercase and lowercase. |
dd/MM/yy | Refers to the date format, where dd stands for 2 digit days, 2 digit months and the last 2 digits for the year. They must be separated by a forward slash, “/”. |
Guest | A guest staying at the hotel. |
GUI | Stands for Graphical User Interface, it refers to an interface that allows users to interact with the system through friendly visuals. |
Hard disk | A data storage device used to store and retrieve data. |
Index | The number that corresponds to the position of the Guest in the list. The index must be a positive integer, such as 1, 2 or 3. |
Java | A programming language used to run GuestBook. |
JSON file | Stands for JavaScript Object Notation. It refers to a file format to store data. |
Features
Commands
Notes about the command format:
There are some conventions the commands follow. We have laid them out here in hopes that it will aid you in understanding their significance.
-
Words in
UPPER_CASE
are the fields to be supplied by you, the user.
E.g., Inadd n/NAME
,NAME
is a field which can be used asadd n/John Doe
. -
Items in square brackets are optional.
E.g.,n/NAME [rq/REQUEST]
can be used asn/John Doe rq/Extra towels
or asn/John Doe
. -
Fields can be supplied in any order.
E.g., If the command specifiesn/NAME p/PHONE
,p/PHONE n/NAME
is also acceptable. -
If a field is expected only once but is specified multiple times in the command, only the last occurrence of the field will be considered.
E.g., If you specifyp/12341234 p/56785678
, onlyp/56785678
will be taken. -
Extraneous fields for commands that do not take in fields (such as
help
,list
,exit
andclear
) will be ignored.
E.g., If the command specifieshelp 123
, it will be interpreted ashelp
.
Adding a guest: add
This command adds a guest to GuestBook.
This command is typically used to check a guest in to your hotel with their personal and room details.
Format: add n/NAME p/PHONE e/EMAIL rm/ROOM dr/DATE_RANGE ng/NUMBER_OF_GUESTS [rq/REQUEST]
Additional information:
- Refer to the Field summary for more information about the limitations of each field.
Examples:
-
add n/John Doe p/98765432 e/johnd@example.com rm/05-73 dr/19/05/22 - 24/05/22 ng/3
Adds the guest John Doe, with his details, to GuestBook. -
add n/Betsy Crowe p/82297553 e/betsycrowe@example.com rm/Aloha5 dr/10/01/12 - 11/01/12 ng/1 rq/Extra towels
Adds the guest Betsy Crowe to GuestBook, with therequest
to have extra towels in her room.
Editing a guest: edit
This command edits an existing guest in GuestBook.
This command is typically used to amend a mistake when keying in the details of the guest. Another common use of this command is to change the room clean status of a guest’s room’s after it has been cleaned.
The guest specified at the INDEX
is the guest you wish to edit in the current list. The existing values will be updated to the new values
you provide. The values that you did not specify to edit will remain unchanged.
Format: edit INDEX [n/NAME] [p/PHONE] [e/EMAIL] [rm/ROOM] [dr/DATE_RANGE] [ng/NUMBER_OF_GUESTS] [rc/IS_ROOM_CLEAN] [rq/REQUEST]
Additional information:
- Refer to the Field summary for more information about the limitations of each field.
Examples:
-
edit 1 p/91234567 e/johndoe@example.com
Edits thephone number
andemail address
of the first guest to 91234567 and johndoe@example.com respectively. -
edit 2 n/Betsy Crower
Edits thename
of the second guest to Betsy Crower.
Tip:
- You can efficiently locate the guests you want to edit by first searching for them using the find command, and then editing them accordingly!
Billing a guest: bill
This command updates the bill of a guest in GuestBook. This command is typically used to charge a guest for services, such as room service.
This command updates the bill of the guest at the specified INDEX
of the current list.
Depending on the sign (+
or -
) of your input, the existing bill value will be increased
or decreased respectively by the value you provide.
Format: bill INDEX b/BILL
Additional information:
- Note that the bill here refers to the total additional charges incurred by the guest during their stay at your hotel and should not include the cost of the room booking.
- Refer to the Field summary for more information about the limitations of each field.
Examples:
-
bill 1 b/+99.99
orbill 1 b/99.99
Adds 99.99 to thebill
of the first guest. -
bill 2 b/-10
Subtracts 10 from thebill
of the second guest.
Common mistakes:
- Missing out the
b/
prefix in the bill command. - Editing the bill using the
edit
command instead of thebill
command.
Locating guests: find
This command locates guests whose details contain any of the given keywords. This allows you to search through all guests’ fields.
This command is typically used when searching for guest(s) of specific characteristic(s).
For example, the command find no
will display the guests that have room clean statuses set to no
. Likewise, the command find yes
will display the guests that already have their rooms cleaned.
Format: find KEYWORD [MORE_KEYWORDS]
Notes about using find
:
- The search is case-insensitive. E.g., hans will match Hans.
- The order of the keywords does not matter. E.g., Hans Bo will match Bo Hans.
- Only full words will be matched E.g., Han will not match Hans.
- Guests matching at least one keyword will be returned (i.e.,
OR
search). E.g., Hans Bo will return Hans Gruber and Bo Yang
Examples:
-
find John
returns john and John Doe -
find 01/01/23 - 07/01/23
returns Alex Yeoh and Bernice Yu (Alex Yeoh was returned as the find command searches every individual keyword. As such, ”-“ is also a keyword and hence guests with no requests will be returned as well). -
find alex 99272758 03-68
returns Alex Yeoh, Bernice Yu, Charlotte Oliveiro (refer to the image below for the details of the guests)
Common mistake:
- Searching for guests using incomplete keywords e.g.
170
will not match170.00
.
Tip:
- To find guests based on their dates of stay, you should simply use the start or end dates, without the hyphen (“-“).
Listing all guests: list
This command displays a list of all guests in GuestBook, which is akin to going back to the homepage of GuestBook.
Tip:
- This command is especially useful if you would like to view the original guest list after
using the
find
command as a filter.
Format: list
Deleting a guest: delete
This command deletes an existing guest in GuestBook from the current list.
The guest specified at the INDEX
is the guest you wish to delete.
This command is typically used to check a guest out of the hotel.
Warning:
- Do note that the
delete
command is irreversible. Once deleted, the specific guest’s data cannot be retrieved. Please use this command with caution.
Format: delete INDEX
Examples:
-
list
followed bydelete 2
deletes the second guest in GuestBook. -
find Betsy
followed bydelete 1
deletes the first guest based on the results of thefind
command.
Marking all rooms as unclean: markroomsunclean
This command functions to mark the room clean statuses of all guests as no
.
This command is typically used at the end or the start of the day when the hotel manager wishes to
update all the room clean statuses to no
efficiently. This clean slate would allow the hotel
managers to keep track of the rooms that are cleaned or uncleaned for the day.
Format: markroomsunclean
Common mistakes:
- Missing out the
s
:markroomunclean
. - Capitalising the
R
orU
:markRoomsUnclean
.
Clearing all entries: clear
This command clears all entries from GuestBook.
This command is typically used as a hard reset of all guest data in GuestBook. You should not be using this command unless you want to start the GuestBook on a clean slate.
Warning:
- Do note that this command is irreversible. Once cleared, all the guest data cannot be retrieved. Please use this command with utmost caution.
Format: clear
Viewing help: help
This command shows a message explaining how to access the help page, which is this user guide you are reading.
While using GuestBook, there may be instances where you would like to refer to this user guide. As such, to help
save time, we have provided quick access to this user guide by entering the help
command.
Format: help
Exiting the program: exit
This command exits the program.
This command is used once you have finished with the administrative tasks on GuestBook. Do not worry, all the data have already been saved by GuestBook and there is no further action needed.
Format: exit
Saving the data
GuestBook data is saved in the hard disk automatically after any command that changes the data. There is no need to save manually.
Editing the data file
GuestBook data is saved as a JSON file [JAR file location]/data/guestbook.json
.
Advanced users may change data directly by editing this data file.
Caution:
- If your changes to the data file makes its format invalid, GuestBook will discard all data and start with an empty data file at the next run.
FAQ
Listed here are some frequently asked questions that we hope will be helpful for you should you encounter any problems. Should you require any other assistance, feel free to contact us.
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 GuestBook home folder.
Q: Will my data be automatically saved?
A: Yes, GuestBook automatically saves your data after every command entered.
Q: Where is my data saved?
A: Go to where you have downloaded your guestbook.jar
file, there a /data
folder will be created and the data will be saved under guestbook.json
.
Q: Can I rename my saved data file?
A: No, GuestBook currently only supports the use of guestbook.json
as the name of the saved data file.
Q: Why are there no guests in my GuestBook?
A: If you didn’t enter the clear
command, it is likely that your guestbook.json
file has been corrupted, causing GuestBook to reset it to prevent any malicious files from being used.
Q: Why am I getting error messages for fields that are correct, or that I’m not editing?
A: If you are using the add
or edit
commands and inputting the name
or request
fields, ensure that they do not contain any field prefixes after whitespace in their content (e.g., rq/Extra bed & p/c
), as GuestBook may mistake part of your input as another field. Consider using capital letters as this check is case-sensitive (e.g., rq/Extra bed & P/C
will be handled correctly as part of a request
). You may refer to Field summary for more information about field constraints.
Q: I cannot find a guest staying on a particular date even though it should be within the dates of stay. Why is that so?
A: You may have entered a date between the start and end dates of the guest’s stay (e.g, searching for 13/01/22 - 15/01/22
by entering 14/01/22
). Currently, this feature is not supported by GuestBook, and we are looking into implementing it in future iterations of GuestBook!
Q: Why am I not able to add guests to the same room even though they have different dates of stay?
A: For this iteration of GuestBook, guests are added when they check in at the hotel and deleted when they check out. As such, there would not be different guests with the same room at any time. This feature is a safety check provided by GuestBook to ensure different guests are not allocated the same room during their stay. To ensure GuestBook remains simple and easy for you to use, each guest must have a unique room in GuestBook.
Field summary
The format and constraints of fields in GuestBook are listed in the table below.
In the case where GuestBook rejects your field inputs, you can refer to this section to use the right format.
Caution:
- If you are specifying the
name
orrequest
fields, ensure that they do not contain any field prefixes after whitespace in their content (e.g.,rq/Extra bed & p/c
), as GuestBook may mistake part of your input as another field. Consider using capital letters as this check is case-sensitive (rq/Extra bed & P/C
will be handled correctly as part of arequest
).
Field | Corresponding prefix | Format/Constraints |
---|---|---|
NAME |
n/ |
Should contain only alphabets, spaces, and special characters (' , - , . , , , / ).Caution: Names are case-sensitive and multiple consecutive spaces in-between them are allowed. GuestBook will not detect these names as the same. E.g. John Doe, John Doe and john doe will all be detected as different guests. |
PHONE |
p/ |
Should contain only numbers, and it should be at least 3 digits and at most 15 digits long. |
EMAIL |
e/ |
Should contain only alphanumeric characters, 1 @ character, and the following special characters (+ , _ , . , - ).The local segment (before @ ) should be at most 64 characters long, and the domain segment (after @ ) should be at most 255 characters long.Segments cannot start or end with special characters, and special characters cannot be used adjacent to each other. |
ROOM |
rm/ |
Should contain only alphanumeric characters and hyphens (- ).A hyphen can only be added if it is in between 2 alphanumeric characters (This also means that it should not start or end with a hyphen). |
DATE_RANGE |
dr/ |
Should follow the format dd/MM/yy - dd/MM/yy with 2 valid dates and the second date should be later than the first date. There should only be one spacing before and after the hyphen(- ). |
NUMBER_OF_GUESTS |
ng/ |
Should contain only whole numbers, and only contain values 1, 2, 3, or 4. |
REQUEST |
rq/ |
Is an optional field, and should be at most 500 characters long. |
IS_ROOM_CLEAN |
rc/ |
Should be only yes , no , y or n (case-insensitive). |
BILL |
b/ |
Should contain only numbers, optionally one decimal point (. ), and optionally one leading sign (+ /- ).Can have up to 12 leading digits and 2 decimal places. Is assumed to be positive if no leading sign is used. |
Command summary
The format of commands in GuestBook are listed in the table below.
In the case where GuestBook rejects your command (Invalid command format!
), you can refer to this section to find out the right command format.
Action | Format, Examples |
---|---|
Add |
add n/NAME p/PHONE e/EMAIL rm/ROOM dr/DATE_RANGE ng/NUMBER_OF_GUESTS [rq/REQUEST] e.g., add n/John Doe p/98765432 e/johnd@example.com rm/05-73 dr/19/05/20 - 24/05/22 ng/3
|
Bill |
bill INDEX b/BILL e.g., bill 2 b/99.99
|
Clear | clear |
Delete |
delete INDEX e.g., delete 3
|
Edit |
edit INDEX [n/NAME] [p/PHONE] [e/EMAIL] [rm/ROOM] [dr/DATE_RANGE] [ng/NUMBER_OF_GUESTS] [rc/IS_ROOM_CLEAN] [rq/REQUEST] e.g., edit 2 e/jameslee@example.com dr/13/09/22 - 15/09/22 ng/4
|
Exit | exit |
Find |
find KEYWORD [MORE_KEYWORDS] e.g., find James Jake
|
Help | help |
List | list |
Mark Rooms Unclean | markroomsunclean |
Contact Us
For enquiries or feedback, feel free to reach us at guestbook.enquiries@gmail.com, and we will get back to you as soon as possible!