By: AY1920S2-CS2103T-W13-2 Since: Jan 2020 Licence: MIT

1. Introduction (Hui Ming)

Hello there!

Morpheus is for hotel receptionists like you who prefer to use a desktop app for hotel room management.

Tired of searching through rows and columns in books or excel spreadsheets? Morpheus has got you covered with our intuitive user interface!

Frustrated with slow and tedious bookkeeping? Morpheus can settle it within a few seconds!

More importantly, Morpheus 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, Morpheus can get your hotel room management tasks done faster than traditional GUI apps. Interested? Jump to the Section 3, “Quick Start” to get started. Enjoy!

2. About this document (Hui Ming)

This user guide gives you an overview of the features of Morpheus. With the help of given examples, you will be able to learn how to use the application to help manage the rooms and services in the hotel.

2.1. How to navigate this document (Sanchari)

  • This section shows you how to read and understand this document.

    • Any text in markup suggests that you may enter it as a command in the app.

    • A link like this will take you to the link destination when clicked.

    • Keyboard shows that this is a key that can be pressed on the keyboard.

This is a useful tip to help optimize your experience using Morpheus.
This is important information you need to take note of!

3. Quick Start

  • This section will show you how to get started with using Morpheus!

    1. Ensure you have Java 11 or above installed in your Computer.

    2. Download the latest main.jar here.

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

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

      Ui
      Figure 1. Image of the GUI of the app.
    5. 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.

    6. Some example commands you can try:

      • addguest n/Harry i/H123456 p/91919191 e/harry@email.com t/VIP : Adds a guest, Harry to the hotel database.

      • reserve i/H123456 rn/001 fd/2020-12-12 td/2020-12-13 : Reserves the room 001 for Harry from 2020-12-12 to 2020-12-13

      • checkin i/H123456 rn/001 td/2020-12-13 : Checks in Harry into the hotel.

      • checkout rn/001 : Checks Harry out of the hotel.

      • switch guest : lists all guests

      • exit : exits the app

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

4. Features

  • This section highlights the features of Morpheus.

Overview Of Features

Features can be divided into 5 groups of commands

  • Initialization commands

    • addguest command adds a guest.

    • addroom command adds a room into hotel.

    • addservice command adds an available service to the hotel.

    • setrcost command sets the cost of a room.

  • Service commands

    • reserve command makes a reservation.

    • checkin and checkout command receives and returns customers.

    • chargeservice command charges customers for getting services.

    • deletecservice command removes a charged service from the bill of customers.

    • fetchbill command fetches the bill of a guest.

  • Deletion commands

    • delete command deletes a guest from the hotel database.

    • deleteroom command deletes a room from the hotel database.

    • deleteservice and deletebooking commands removes available services and bookings from the hotel database.

  • Find commands

    • findroom command finds room with specific person, or room ids.

    • findguest command finds a guest in the hotel.

    • findemptyroom command finds list of empty rooms in the hotel.

    • findbooking command finds booking ids from names and room ids.

  • General purpose commands

    • help command shows instructions.

    • exit command quits the app.

    • clear command clears all entries.

    • switch command navigate between tabs.

Command Format:

  • Words in UPPER_CASE are the parameters to be supplied by the user e.g. in checkin i/ID rn/ROOM_NUMBER td/TO_DATE, ID is a parameter which can be used as checkin i/G1231231X.

  • Items in square brackets are optional e.g n/NAME [t/TIER] can be used as n/Smith t/Member or as n/Smith.

  • Parameters can be in any order e.g. if the command specifies n/NAME rn/ROOM_NUMBER, rn/ROOM_NUMBER n/NAME is also acceptable.

Some Common Parameters
(Sanchari)

Guest:

  • i/ : Guest ID

  • n/ : Guest name

  • p/ : Guest phone

  • e/ : Guest email

  • t/ : Guest tag

Rooms and Bookings and Services

  • rn/ : Room number

  • ti/ : Room tier

  • bi/ : Booking ID

  • fd/ : Date from

  • td/ : Date to

  • c/ : Cost

  • si/ : Service ID

  • d/ : Description of the service

4.1. Getting help: help

If you need to view help, use the command help .

Format:: help

4.2. Switching between tabs : switch(Johnny)

If you want to switch to a new tab and view all the data on the specified tab, use the command switch .

Format:: switch TAB_NAME

TAB_NAME must be one of welcome, guest, room, booking, service, bill

Examples:

  • switch guest

Result: Switches to and shows all entries on guest tab.

4.3. Adding a guest : addguest

If you want to add a guest to the hotel database, use the command addguest

Format: addguest n/NAME i/ID p/PHONE_NUMBER e/EMAIL [t/TAG]…​

- You may use t/TAG to specify the status of the guest in the hotel! E.g. t/VIP
- The only valid values for TAG are VIP and Member.
- Any other values will result in an empty tag for the person displayed in the list.

Examples:

  • addguest n/Sallly Smith i/G1231232X p/512685123 e/sallysmith@gmail.com t/VIP

Result: Adds Sally Smith with her information into the hotel database.

4.4. Adding a room : addroom

If you want to add a room to the hotel database, use the command addroom

Format: addroom rn/ROOM_NUMBER ti/TIER c/COST

Examples:

  • addroom rn/101 ti/GOLD c/150.00

Result: Add room 101 into the database.

4.5. Adding an available service: addservice

If you want to add an available service to the database, use the command addservice

Format: addservice si/SERVICE_ID d/DESCRIPTION c/COST

Examples:

  • addservice si/WC d/Wash clothes c/100.00

Result: Adds a service with id WC, description Wash clothes and cost 100.00.

4.6. Setting the cost for a room : setrcost (Hui Ming)

If you want to set the cost for a room (per night), use the command setrcost

Format: setrcost rn/ROOM_NUMBER c/COST

Examples:

  • setrcost rn/101 c/50.00

Result: Sets the cost for 101 as 50.00 per night.

4.7. Making a reservation : reserve

If you want to make a reservation for a guest in the hotel, use the command reserve

Format: reserve i/ID rn/ROOM_NUMBER fd/FROM_DATE td/TO_DATE

Examples:

  • reserve i/G1231231X rn/102 fd/ 2020-12-12 td/ 2020-12-30

Result: Reserves room 102 for guest with the ID G1231231X from 2020-12-12 to 2020-12-30. New reservation will be reflected in the bookings tab.

4.8. Checking in a guest: checkin (Daniel)

If you want to check in a guest to the hotel from the current date until the end-date, use the command checkin

Format: checkin i/ID rn/ROOM_NUMBER td/TO_DATE
or checkin bi/BOOKING_ID

BOOKING_ID could be shorten by taking only its first 8 characters.

Examples:

  • checkin i/G1231231X rn/101 td/2020-12-14

  • checkin bi/a1b2c3d4

Result: Checks in guest with ID A000000 to room 001 until 2020-05-05. Room 001 will be marked as occupied.

4.9. Checking out a guest: checkout (Daniel)

If you want to check out a guest from the hotel, use the command checkout

Format: checkout rn/ROOM_NUMBER

Examples:

  • checkout rn/003

Result: Checks out the guest from room 003. Room 003 will be marked as free.

4.10. Extend a stay for a guest: extend (Daniel)

If you want to extend your stay, use the command extend

Format: extend rn/ROOM_NUMBER td/TO_DATE

Example:

  • extend rn/101 td/2020-04-20

Result: Extend the stay of room 101 until 20th April 2020. Room 101 's stay will reflect the updated date.

- Room must be checked in before it can be extended.
- The extend period must not clash with other future reservation.

4.11. Charging a service : chargeservice (Hui Ming)

If you want to charges a service to the guest’s tab, use the command chargeservice

Format: chargeservice i/PERSON_ID rn/ROOM_NUMBER si/SERVICE_ID

Examples:

  • chargeservice i/G1231231X rn/100 si/WC

Result: Charges service with the ID WC for room 100 to the guest with ID G1231231X 's bill.

4.12. Deleting a service from a bill : deletecservice (Hui Ming)

If you want to remove a charged service from the guest’s bill.

Format: deletecservice i/PERSON_ID rn/ROOM_NUMBER si/SERVICE_ID

Examples:

  • deletecservice i/G1231231X rn/100 si/WC

Result: Removes service with ID WC from guest with ID G1231231X 's bill for room 100.

4.13. Fetching bill of a guest : fetchbill (Hui Ming)

If you want to retrieve the bill of a guest, use the command fetchbill

Format: fetchbill i/ID [rn/ROOM_NUMBER]

Examples:

  • fetchbill i/G1231231X

Result: Shows the entire bill, consisting of all costs incurred, for guest with ID G1231231X 's stay up till present moment.

4.14. Finding guests: findguest (Johnny)

If you want to find guests using their names or id, use the commmand findguest.

Format: findguest [n/NAME] …​ [n/NAME] [i/ID] …​ [i/ID]

- Name must be an exact match.
- The order of the keywords does not matter. e.g. n/Alice i/A10 is same as i/A10 n/Alice.
- Persons matching at least one keyword will be returned.

Examples:

  • findguest i/A0000000 n/Alice

Result: Shows persons with name: Alice or ID: A1000000

4.15. Finding bookings: findbooking

If you want to find bookings made by a guest using the guest’s name, guest’s ID or by room number, use the command findbooking.

Format: findbooking [n/NAME] …​ [n/NAME] [i/ID] …​ [i/ID] [rn/ROOM_NUMBER] …​ [rn/ROOM_NUMBER]

- The order of the keywords does not matter. e.g. n/Alice i/A10 is same as i/A10 n/Alice
- Booking matching at least one keyword will be returned

Examples:

  • findbooking n/Alice rn/001

Result: Shows booking of Alice or of room 001.

4.16. Locating a guest’s room : findroom

If you want to retrieve the room related to a guest’s reservation, use the command findroom.

Format: findroom [rn/ROOM_NUMBER] …​ [rn/ROOM_NUMBER] [n/NAME] …​ [n/NAME] [i/ID] …​ [i/ID]

Examples:

  • findroom i/A000000 rn/001 n/Tuan Le

Result: Shows the room booked by the guest with ID A000000

4.17. Finding empty room: findemptyroom

If you want to find empty rooms, use the command findemptyroom

Format: findemptyroom

Examples:

  • findemptyroom

Result: Shows the empty rooms.

4.18. Deleting a guest : delete

If you want to delete a guest’s details from the hotel database, use the command delete.

Format: delete INDEX

Examples:

  • delete 1

Result: Deletes the first guest on the list.

4.19. Deleting a room by room number : deleteroom

If you want to delete a room from the hotel, use the command deleteroom.

Format: deleteroom rn/ROOM_NUMBER

Examples:

  • deleteroom rn/101

Result: Deletes room 101 into the database.

4.20. Deleting a room by the position it appears in current room tab: deleteroom

If you want to delete a room from the hotel by the index it appears in current room tab.

Format: deleteroom INDEX

Examples:

  • deleteroom 1

Result: Deletes the first room in the list.

4.21. Deleting an available service: deleteservice

If you want to delete an available service from the hotel database using the service’s ID, use the command deleteservice

Format: deleteservice si/SERVICE_ID

Examples:

  • deleteservice si/WC

Result: Deletes a service with service ID WC.

4.22. Deletting an available service by the position it appears in current service tab: deleteservice

Format: deleteservice INDEX

Examples:

  • deleteservice 1

Result: Deletes the first room the the list.

4.23. Clearing all entries : clear

If you want to clear all data from Morpheus, use the command clear

Format: clear

4.24. Exiting the program : exit

Result: If you want to exit the program, use the command exit

Format: exit

4.25. Saving the data

The data of Morpheus is saved in the hard disk automatically after any command that changes the data.
There is no need to save manually.

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

6. Glossary (Sanchari)

  • GUI - Graphical User Interface: System that conveys information through visual components.

  • CLI - Command Line Interface: System that accepts text information from the user to execute actions.

  • Hard Disk - Memory on your computer.

7. Command Summary

  • Help : help

  • Switch tab: switch TAB_NAME

  • Add Guest : addguest n/NAME i/ID p/PHONE_NUMBER e/EMAIL
    e.g. addguest n/John Doe i/G1231231X p/1928310 e/johndoe@gmail.com

  • Add Room : addroom rn/ROOM_NUMBER ti/TIER c/cost
    e.g. addroom rn/101 ti/GOLD c/140.00

  • Add Service : addservice si/SERVICE_ID d/DESCRIPTION c/COST
    e.g. addservice si/WC d/Wash clothes c/100.00

  • Check in : checkin i/ID rn/ROOM_NUMBER td/TO_DATE or
    checkin bi/BOOKING_ID
    e.g. checkin i/G1231231X rn/101 td/2020-03-14
    or checkin bi/a1b2c3d4

  • Check out : checkout rn/ROOM_NUMBER
    e.g. checkout rn/101

  • Extend : extend rn/ROOM_NUMBER td/TO_DATE
    e.g. extend rn/313 td/2020-05-20

  • Find Guest : findguest n/NAME …​ n/NAME i/ID …​ i/ID
    e.g. findguest i/A0000000 i/B0000000 n/Alice

  • Fetch Bill : fetchbill i/ID [rn/ROOM_NUMBER]
    e.g. fetchbill i/G1231231X

  • Charge Service : chargeservice i/PERSON_ID rn/ROOM_NUMBER si/SERVICE_ID
    e.g. chargeservice i/G1231231X rn/100 si/WC

  • Delete Charged Service : deletecservice i/PERSON_ID rn/ROOM_NUMBER si/SERVICE_ID
    e.g. deletecservice i/G1231231X rn/100 si/WC

  • Make Reservation : reserve i/ID rn/ROOM_NUMBER df/FROM_DATE dt/TO_DATE
    e.g. reserve i/G1231231X rn/102 df/ 2020-12-12 dt/ 2020-12-30

  • Locate Room : rn/ROOM_NUMBER] …​ [rn/ROOM_NUMBER] [n/NAME] …​ [n/NAME] [i/ID] …​ [i/ID]
    e.g. findroom i/A000000 rn/001 n/Tuan Le

  • Set Room Cost : setrcost rn/ROOM_NUMBER c/COST
    e.g. setrcost rn/101 c/50

  • Clear : clear