By: Team CS2103T-AY1819S1-W17-3 Since: Aug 2018 Licence: MIT

1. Introduction

MeetingBook is for those who prefer to use a desktop app to manage their meetings for university. MeetingBook is designed for those who prefer to work with a Command Line Interface (CLI) while still having the benefits of a Graphical User Interface (GUI). Users who can type fast can navigate and use the meeting planner faster than traditional GUI apps. Makes your hand itchy and want to try out? Go to Section 2, “Quick Start” to get started!

2. Quick Start

  1. Ensure you have Java version 9 or later installed in your computer.

  2. Download the latest meetingbook.jar here.

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

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

    Ui
  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:

    • list : Display all existing members on the display.

    • addMembern/<name> p/<phone> e/<email> a/<address> : adds a member with the parameters specified to the MeetingBook.

    • delete3 : deletes the 3rd person shown in the current person list.

    • exit : exits the app.

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

3. User Interface

This section will explain the user interface of the application.

UiExplanation
  1. Menu bar

  2. Group list: displays a list of groups

  3. Meeting list: displays a list of meetings

  4. Person list: displays a list of person

  5. Command box: receives command from user and execute

  6. Result display: displays the result of command executed

  7. Update status: displays the update status of current session

  8. Save path: displays current data save path

4. Features

Command Format

  • Words in UPPER_CASE are the parameters to be supplied by the user e.g. in edit 1 e/EMAIL p/PHONE, EMAIL and PHONE are parameters which can be used as edit 1 e/email@email.com p/12345678.

  • Words in square brackets are optional. e.g. n/NAME [t/TAG] can be used as n/Derek t/Groupmate or n/Derek.

  • Words in arrow brackets separated by | are the parameter options that require user to supply exactly one e.g. list <person|group|meeting>, person, group and meeting are parameter options that can be used as list group, list person or list meeting, and each of them execute different operations.

  • Items with …​ after them can be used multiple times including zero times e.g. [t/TAG]…​ can be used as ` ` (i.e. 0 times), t/classmate, t/classmate t/project etc.

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

4.2. Adding a new member: addMember

Add a new person named NAME with parameters described in [Person Parameters] to the MeetingBook.
Format: addMember n/NAME p/PHONE e/EMAIL a/ADDRESS [t/TAG]…​

Examples:

  • addMember n/Zheng Wei p/87654321 e/cs2103t@comp.nus.edu.sg a/NUS School of Computing

  • addMember n/Ben p/12345678 e/hello@nus.edu.sg a/NUS School of Computing t/project

  • addMember n/Pakorn p/24681357 e/cs2101@celc.nus.edu.sg a/NUS School of Computing t/TA t/project

4.3. Editing a person : edit

Replace the person’s parameters with those described in this command (undescribed parameters will not be changed).

Format: edit INDEX [n/NAME] [p/PHONE] [e/EMAIL] [a/ADDRESS] [t/TAG]…​

Examples:

  • edit 2 n/Benjamin
    Edits the name of the second person in the person list to Benjamin.

  • edit 1 p/12345678
    Edits the phone number of the first person in the person list to 12345678.

4.4. Deleting a person: delete/del

Remove the selected person.
Format: delete INDEX, or the shorthand del INDEX

Examples:

  • delete 2
    Deletes the second person in the person list.

  • del 4
    Deletes the fourth person in the person list.

4.5. Adding a new group: addGroup

Add a new group with user input title into MeetingBook.

Format: addGroup n/NAME

Examples:

  • addGroup n/CS2103T
    Adds a new group with title 'CS2103T' into the MeetingBook.

  • addGroup n/Discussion Group 1
    Adds a new group with title 'Discussion Group 1' into the MeetingBook.

4.6. Deleting a group: deleteGroup

Remove the group that matches use input title.

Format: deleteGroup n/NAME

Examples:

  • deleteGroup n/CS2103T
    Removes the group with title 'CS2103T', which is added previously, from MeetingBook.

  • deleteGroup n/Discussion Group 1
    Removes the group with title 'Discussion Group 1', which is added previously, from MeetingBook.

4.7. Sorting the list of displayed persons: sort

The sort command sorts the list in the display of persons. The user can specify whether to sort by name, phone number, email address, or home address, in lexicographical order or numerical order.

Format:
sort <name|phone|email|address>

  • <name|phone|email|address>: this parameter specifies whether to sort by name, phone, email address, or home address in lexicographical order or numerical order.

Examples:

  • sort name: Sorts the list of persons by name in lexicographical order.

  • sort phone: Sorts the list of persons by phone number in numerical order.

  • sort email: Sorts the list of persons by email address in lexicographical order.

  • sort address: Sorts the list of persons by home address in lexicographical order.

4.8. Finding a group / person / meeting: find

The find command searches the MeetingBook for specified person, group, or meeting, and displays the results on the panel.

Format:
Longhand: find <person|group|meeting> [a/KEYWORDS] [s/KEYWORDS] [n/KEYWORDS]
Shorthand: find <p|g|m> [KEYWORDS]

  • <person|group|meeting>, <p|g|m>: this parameter specifies whether to search for persons, groups, or meetings. This parameter is required to execute this command.

    • person, p: specifies to search for persons.

    • group, g: specifies to search for groups.

    • meeting, m: specifies to search for meetings.

  • KEYWORDS: this tag contains any number of keywords separated by a space.

  • [all], [a]: this parameter specifies that the results must contain every keyword specified in <keywords>. This parameter may be omitted.

  • [some], [s]: this parameter specifies that the results must contain at least one keyword specified in <keywords>. This parameter may be omitted.

  • [none], [n]: this parameter specifies that the results must not contain any keyword specified in <keywords>. This parameter may be omitted.

  • When the shorthand format is used, the keywords will be placed in the a/ parameter.

Examples:

findCommandAllExample
  • find p Alex: finds all persons whose name contains Alex. (Refer to diagram above)

findCommandSomeExample
  • find p s/yu li: finds all persons whose name contains one of yu or li. (Refer to diagram above)

findCommandNoneExample
  • find p n/Alex Bernice: finds all persons whose name does not contain Alex or Bernice (Refer to diagram above)

  • find p Betty Charles: finds all persons whose name contains Betty and Charles.

  • find p s/David Eric n/James: finds all persons whose name contains one of David or Eric, and whose name does not contain James.

  • find group project: finds all groups whose title contains project.

  • find g a/team n/school: finds all groups whose title contains team and whose title does not contain school.

  • find meeting s/official important: finds all meetings whose title contains one of official or important.

  • find m a/urgent n/basketball: finds all meetings whose titles contains urgent and whose title does not contain basketball.

4.9. Selecting a group / person / meeting: select

Format: select <p|g|m>/INDEX

  • If select g is entered, the person list will be filtered to show only person who belong to the group, and the meeting list will be filtered to show only meeting scheduled for the group.

  • If select p is entered, only the person that is in the filtered person list will be selected.

  • If select m is entered, only the meeting that is in the filtered meeting list will be selected.

Examples:

  • select g/1: selects the first group in the filtered group list. Meetings and persons not related to the group selected will be hidden.

  • select m/3: selects the third meeting in the filtered meeting list.

  • select p/2: selects the second person in the filtered person list.

4.10. Schedule meetings: meet

To schedule a meeting, use the meet command.

Format: meet GROUP_NAME n/MEETING_NAME t/MEETING_TIME l/MEETING_LOCATION d/MEETING_DESCRIPTION

  • Schedules a meeting with the group GROUP_NAME

  • Either all or none of the fields must be provided.

  • In case that none of the fields is provided, the command will cancel the meeting associated with the group.

  • Scheduling a new meeting to the same group overwrites the old meeting.

MEETING_TIME is specified in the format dd-mm-yyyy@hh:mm

Examples:

  • Example 1:

    1. meet Presentation2101 n/Demo Rehearsal t/26-10-2018@12:30 l/COM1-0218 d/Meeting for Project Demo
      (This schedules the meeting)

      meetCommandUserGuideStep1
      Figure 1. Result of the command, note the meeting 'Demo Rehearsal'.
  • Example 2:

    1. meet Presentation2101 n/Demo Rehearsal t/26-10-2018@12:30 l/COM1-0218 d/Meeting for Project Demo
      (This schedules the meeting)

      meetCommandUserGuideStep1
      Figure 2. Result of the command, note the meeting 'Demo Rehearsal'.
    2. meet Presentation2101 n/Emergency Meeting t/26-10-2018@12:30 l/COM1-0218 d/Some slides are wrong
      (This overwrites Demo Rehearsal with Emergency Meeting)

      meetCommandUserGuideStep2
      Figure 3. Result of the command, note the 'Emergency Meeting' now replaces 'Demo Rehearsal'.
  • Example 3:

    1. meet OtherGroup n/Emergency Meeting t/26-10-2018@12:30 l/COM1-0218 d/Some slides are wrong
      (This fails because OtherGroup is not in the MeetingBook)

      meetCommandUserGuideError
      Figure 4. Result of the command, note the error message'.
It is assumed that the group Presentation2101 is present and is the only group in the MeetingBook and has no meeting as of the moment before each example starts.

4.11. Cancel meetings: cancel

To cancel a meeting, use the cancel command.

Format: cancel GROUP_NAME

Example:

  • cancel Project2103 (This cancels the meeting with Project2103)

  • cancel Project2103
    cancel Project2103 (This fails because the meeting is already cancelled)

It is assumed that the group Project2103 is present in the MeetingBook and has a meeting.
calling meet GROUP_NAME without argument is equivalent to calling cancel GROUP_NAME.

4.12. Joining a person to group: join

Add a person, specified by name, into a group, specified by the group title.

Format: join n/NAME g/GROUP

Example:

  • join n/Derek g/CS2103T
    Makes the person 'Derek' to be a member of group 'CS2103T'.

Both the person and group should exist in the MeetingBook.

4.13. Removing a person from group: leave

Remove a person, specified by name, from a group, specified by the group title.

Format: leave n/NAME g/GROUP

Example:

  • leave n/Derek g/CS2101
    Removes the person 'Derek' from the group 'CS2101'.

Both the person and group should exist in the MeetingBook. The person should also be an existing member of the group.

4.14. Listing all groups / meetings / persons : list

Display all existing groups on the group list / meetings on the meeting list / persons on the person list display.

Format: list <group|meeting|person|all>
Shorthand: list <g|m|p|a>

If the list is unfiltered, the list will remain the same. If list command does not have parameters entered, it will execute list all by default.

Examples:

  • list group: list all groups.

  • list m: list all meetings.

  • list person: list all persons.

  • list a: list all groups, meetings and persons.

4.15. Importing data : import

Import other MeetingBook data and integrate into the current MeetingBook.

Default behaviour is to ignore any conflicting Person/Group entries unless --force option is supplied.

Format: import [--force] f/FILEPATH

Example:

  • import f/backup.xml : Import backup.xml into MeetingBook

  • import --force f/backup.xml : Import backup.xml into MeetingBook, overwriting all conflicting entries.

The image below shows the result after successfully executing the command.

importSuccessfulOutput

4.16. Exporting data : export

Export MeetingBook data to store as backup elsewhere or send the data to other users of MeetingBook.
A XML file containing MeetingBook data will be created at the filepath indicated by the user.

Format: export f/FILEPATH

Example:

  • export f/backup.xml : Export MeetingBook as backup.xml.

The image below shows the result after successfully executing the command.

exportSuccessfulOutput

4.17. Changing Storage Location: filepath

Change the storage location of MeetingBook.

Format: filepath f/FILEPATH

Example:

  • filepath f/new_path.xml : Storage location of MeetingBook is now stored at new_path.xml.

User can also check the current path where MeetingBook store its data using filepath --show command.

The image below shows the result after successfully executing the command.

filepath  showOutput

4.18. Saving the data

MeetingBook data are saved in the hard disk automatically after any command that changes the data.

4.19. Autocomplete [coming in v2.0]

To assist user to speed up typing of command, user can <TAB> to autocomplete the command.

4.20. Encrypting data files [coming in v2.0]

{explain how the user can enable/disable data encryption}

5. FAQ

Q: How do I transfer my data to another computer?
A: Install the app in the other computer and transfer the data file into the same folder.

Q: Is the app only for NUS student?
A: While this app is tailored to NUS students, it can be used for general day-to-day activities.

Q: Are there any plans to include other institutions?
A: We plan to include other institutions after implementing all core functionalities of the app.

Q: Are there any plans to build for mobile as well?
A: We might look into it if we receive enough requests from users.

6. Command Summary

  • Adding a new person: addMember n/NAME p/PHONE e/EMAIL a/ADDRESS [t/TAG]…​
    e.g. addMember Derek p/87654321 e/cs2103t@comp.nus.edu.sg a/NUS School of Computing

  • Editing a person : edit INDEX [n/NAME] [p/PHONE] [e/EMAIL] [a/ADDRESS] [t/TAG]…​
    e.g. edit 2 n/Jeffrey

  • Schedule a meeting : meet GROUP_NAME n/MEETING_NAME t/MEETING_TIME l/MEETING_LOCATION d/MEETING_DESCRIPTION

  • Cancel a meeting : cancel GROUP_NAME

  • Deleting a person : delete INDEX

  • Adding a new group : addGroup n/NAME
    e.g. addGroup n/CS2103T

  • Deleting a new group : deleteGroup n/NAME
    e.g. deleteGroup n/CS2101

  • Joining a person to group : join n/NAME g/GROUP
    e.g. join n/Derek g/CS2103T

  • Removing a person from group : leave n/NAME g/GROUP
    e.g. leave n/Derek g/CS2101

  • Find a person / group / meeting : find <person|group|meeting> [all/KEYWORDS] [some/KEYWORDS] [none/KEYWORDS]

  • Selecting a group / meeting / person : select <g|m|p>/INDEX
    e.g. select g/1

  • List all groups / meetings / person : list <group|meeting|person|all>
    e.g. list meeting

  • Import data : import [--force] f/FILEPATH

  • Export data : export f/FILEPATH

  • Change storage location : filepath f/FILEPATH