diff --git a/docs/UserGuide.md b/docs/UserGuide.md index ea4604b207e..1f57bfa4fe2 100644 --- a/docs/UserGuide.md +++ b/docs/UserGuide.md @@ -35,7 +35,6 @@ This guide will walk you through HallPointer’s main features and show you step - [Exiting the program : `exit`](#exiting-the-program--exit) - [Saving the data](#saving-the-data) - [Editing the data file](#editing-the-data-file) - - [Archiving data files `[coming in v2.0]`](#archiving-data-files-coming-in-v20) - [FAQ](#faq) - [Known issues](#known-issues) @@ -78,19 +77,19 @@ Refer to the [Command Summary](#command-summary) section below for a quick overv ## Command Summary -| Action | Format / Examples | -| ------------------ |-------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| Action | Format / Examples | +| ------------------ |----------------------------------------------------------------------------------------------------------------------------------------------| | **Add member** | `add_member n/NAME r/ROOM_NUMBER t/TELEGRAM [tag/TAG]…​​`
e.g., `add_member n/James Ho r/4-3-301 t/jamesho123 tag/friend tag/colleague` | | **Update member** | `update_member INDEX [n/NAME] [r/ROOM_NUMBER] [t/TELEGRAM] [tag/TAG]…​`
e.g.,`update_member 2 n/James Lee r/5-2-203 t/jameslee99` | -| **Delete member** | `delete_member INDEX`
e.g., `delete_member 3` | -| **Add session** | `add_session s/NAME d/DATE p/POINTS m/INDEX…​`
e.g., `add_session s/Rehearsal d/24 Oct 2024 p/2 m/1 m/3` | -| **Delete session** | `delete_session s/NAME m/INDEX…`
e.g., `delete_session s/Rehearsal m/1 m/3` | -| **Find members** | `find_members KEYWORD [MORE_KEYWORDS]…`
e.g., `find_members James Jake` | -| **Find sessions** | `find_sessions KEYWORD [MORE_KEYWORDS]…`
e.g., `find_sessions Team meeting` | -| **List** | `list` | -| **Clear** | `clear` | -| **Help** | `help` | -| **Exit** | `exit` | +| **Delete member** | `delete_member INDEX`
e.g., `delete_member 3` | +| **Add session** | `add_session s/NAME d/DATE p/POINTS m/INDEX [m/INDEX]…​`
e.g., `add_session s/Rehearsal d/24 Oct 2024 p/2 m/1 m/3` | +| **Delete session** | `delete_session s/NAME m/INDEX [m/INDEX]…`
e.g., `delete_session s/Rehearsal m/1 m/3` | +| **Find members** | `find_members KEYWORD [MORE_KEYWORDS]…`
e.g., `find_members James Jake` | +| **Find sessions** | `find_sessions KEYWORD [MORE_KEYWORDS]…`
e.g., `find_sessions Team meeting` | +| **List** | `list` | +| **Clear** | `clear` | +| **Help** | `help` | +| **Exit** | `exit` | --- @@ -132,22 +131,23 @@ Displays an alphabetical list of all available commands for quick and easy refe Adds a member to Hall Pointer. A member must have a name, room assignment, and Telegram username. You can also add tags to help categorize members. -**Format:** `add_member n/NAME r/ROOM_NUMBER t/TELEGRAM [tag/TAG]…​​` - - - -**Tip:** A member can have any number of tags (including 0). - - +**Format:** `add_member n/NAME r/ROOM_NUMBER t/TELEGRAM_HANDLE [tag/TAG]…​​` **Constraints:**
-- **Unique Name**: Each member must have a unique name. This is necessary to prevent confusion between members and to ensure accurate tracking. -- **Unique Telegram Username**: Each member must have a unique Telegram username, as this is a personal identifier for each user. +- **Unique Name**: Each member must have a unique name. This is necessary to prevent confusion between members and to ensure accurate tracking. +- **Unique Telegram Username**: Each member must have a unique Telegram username, as telegram account is personal and each username can only be used by one person at a time. - **Shared Rooms Allowed**: Multiple members can be assigned to the same room to accommodate shared living arrangements. +
+ + +**Tips** +- A member can have any number of tags (including 0). +- If you have multiple members with the same name, consider adding a distinguishing initial or number (e.g. "Daniel L", "Daniel O", "Daniel 2"). + **Examples:** @@ -174,7 +174,7 @@ Shows a list of all members registered in Hall Pointer. Updates an existing member in Hall Pointer. -**Format:** `update_member INDEX [n/NAME] [r/ROOM_NUMBER] [t/TELEGRAM] [tag/TAG]…​​` +**Format:** `update_member INDEX [n/NAME] [r/ROOM_NUMBER] [t/TELEGRAM_HANDLE] [tag/TAG]…​​` **Constraints:** @@ -183,29 +183,32 @@ Updates an existing member in Hall Pointer. -**Tip:** At least one of the optional fields must be provided. Existing values will be updated to the input values. - - - +**Tips:** +- At least one of the optional fields must be provided. Existing values will be updated to the input values. - Updates the member at the specified `INDEX`. The index refers to the index number shown in the displayed member list. The index **must be a positive integer** 1, 2, 3, …​. - When updating tags, the existing tags of the member will be removed; i.e., adding of tags is not cumulative. - You can remove all the member’s tags by typing `tag/` without specifying any tags after it. + + **Examples:** - `update_member 1 t/johndoe123_updated n/Johnson Doe` updates the Telegram username and name of the 1st member to be `johndoe123_updated` and `Johnson Doe`, respectively. - `update_member 2 n/Betsy Crower tag/` updates the name of the 2nd member to be `Betsy Crower` and clears all existing tags. +- `update_member 2 tag/Friend tag/Leader` updates the tags of the 2nd member to `Friend` and `Leader`. - ![result for 'update_member 1 t/johndoe123_updated n/Johnson Doe'](images/updateCommandResult.png) + +![result for 'update_member 1 t/johndoe123_updated n/Johnson Doe'](images/updateCommandResult.png) --- ### Locating members by name: `find_members` Finds members whose names contain any of the given keywords. -**Format:** `find_members KEYWORD [MORE_KEYWORDS]` +**Format:** `find_members KEYWORD [MORE_KEYWORDS]…` +**Constraints** - **Case-Insensitive Search**: The search is case-insensitive, so `hans` will match `Hans`. - **Order of Keywords**: The order of the keywords does not matter, so `Hans Bo` will match both `Bo Hans` and `Hans Bo`. - **Full Word Matching**: Only full words will be matched, so `Han` will not match `Hans`. @@ -249,21 +252,26 @@ Deletes the specified member from Hall Pointer. ### Adding a Session: `add_session` -Adds a session to Hall Pointer and associates it with specified members. A session contains a name, date, and points awarded. You can associate multiple members with a session. +Adds a session to Hall Pointer and associates it with specified members. A session contains a name, date, and points awarded to each member attending the session. You can add multiple members to a session. + +**Format:** `add_session s/NAME d/DATE p/POINTS m/INDEX [m/INDEX]…` -**Format:** `add_session s/NAME d/DATE p/POINTS m/INDEX...` +**Constraints:** +- **Points** should be an integer between 0 and 100 inclusive. A maximum of 100 points can be awarded to any session. +- **Duplicate Session** You cannot add a session to a member if the member already attended a session with the same name +- **Unique Session Name**: Each session name must be unique within a member. This ensures that each session is distinct and prevents duplicate records. -**Tip:** **Points** should be an integer between 0 and 100. A maximum of 100 points can be awarded to any session. +**Tips:** +- **Multiple members** If you have multiple members attending the session, you can add them sequentially by specifying their indexes. +- **Duplicate Session** If you wish to add multiple sessions with the same name to a member, consider adding a unique identifier to the session name (e.g., "Rehearsal 1", "Rehearsal 2"). -**Constraints:**
-- **Unique Session Name**: Each session name must be unique within a member. This ensures that each session is distinct and prevents duplicate records. If you have multiple similar sessions, consider naming them sequentially (e.g., "Rehearsal 1", "Rehearsal 2").
@@ -278,9 +286,9 @@ Adds a session to Hall Pointer and associates it with specified members. A sessi This command finds members who have attended sessions with names that contain any of the specified keywords. -**Format:** `find_sessions KEYWORD [MORE_KEYWORDS]` +**Format:** `find_sessions KEYWORD [MORE_KEYWORDS]…` -**Tips:** +**Constraints:** - **Case-Insensitive Search:** The search is case-insensitive. For example, `meeting` will match `Meeting`. - **Order of Keywords:** The order of keywords does not affect the search results. For example, `AGM meeting` will match sessions with names containing either `AGM` or `meeting`. - **Full Word Matching:** Only full words are matched; e.g., `team` will not match `tea`. @@ -292,6 +300,7 @@ This command finds members who have attended sessions with names that contain an - `find_sessions Team` – Returns any member associated with sessions named "Team meeting," "Team bonding," etc. - `find_sessions AGM meeting` – Returns members associated with sessions such as "AGM meeting" or "team meeting." +![result for 'find_session'](images/findSessionResult.png) --- @@ -300,7 +309,10 @@ This command finds members who have attended sessions with names that contain an Deletes a session associated with one or more members in Hall Pointer. -**Format:** `delete_session s/NAME m/INDEX...` +**Format:** `delete_session s/NAME m/INDEX [m/INDEX]…` + +**Constraints:** +- **Case-Insensitive Search:** The search is case-insensitive. For example, `meeting` will match `Meeting`. **Examples:** diff --git a/docs/images/findSessionResult.png b/docs/images/findSessionResult.png new file mode 100644 index 00000000000..5cf10142919 Binary files /dev/null and b/docs/images/findSessionResult.png differ