From cd3f93596254f1fdddcff24384ca6af8f40bb3f1 Mon Sep 17 00:00:00 2001 From: Wern Date: Tue, 3 Oct 2023 18:01:57 +0800 Subject: [PATCH 01/10] Update DG requirements --- docs/DeveloperGuide.md | 38 ++++++++++++++++++++------------------ 1 file changed, 20 insertions(+), 18 deletions(-) diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index 8a861859bfd..c69f1a06a5f 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -257,13 +257,16 @@ _{Explain here how the data archiving feature will be implemented}_ **Target user profile**: -* has a need to manage a significant number of contacts +* students looking to apply for jobs +* have a need to manage a significant number of organization and recruiter contacts and application statuses * prefer desktop apps over other types * can type fast * prefers typing to mouse interactions -* is reasonably comfortable using CLI apps +* is reasonably comfortable and familiar with using CLI apps -**Value proposition**: manage contacts faster than a typical mouse/GUI driven app +**Value proposition**: + +Allows for comprehensive tracking of job applications and the information of companies and recruiters the user may be interested in, and manage them faster than a typical mouse/GUI driven app ### User stories @@ -272,27 +275,25 @@ Priorities: High (must have) - `* * *`, Medium (nice to have) - `* *`, Low (unli | Priority | As a …​ | I want to …​ | So that I can…​ | | -------- | ------------------------------------------ | ------------------------------ | ---------------------------------------------------------------------- | -| `* * *` | new user | see usage instructions | refer to instructions when I forget how to use the App | -| `* * *` | user | add a new person | | -| `* * *` | user | delete a person | remove entries that I no longer need | -| `* * *` | user | find a person by name | locate details of persons without having to go through the entire list | -| `* *` | user | hide private contact details | minimize chance of someone else seeing them by accident | -| `*` | user with many persons in the address book | sort persons by name | locate a person easily | +| `* * *` | new user | see usage instructions | refer to instructions when I forget how to use the app | +| `* * *` | user | add a new contact | keep track of organizations and recruiters I'm interested in | +| `* * *` | user | delete contacts | remove organizations and recruiters that I no longer need | +| `* * *` | user | find a contact by name | locate details of persons without having to go through the entire list | *{More to be added}* ### Use cases -(For all use cases below, the **System** is the `AddressBook` and the **Actor** is the `user`, unless specified otherwise) +(For all use cases below, the **System** is `SJ++` and the **Actor** is the `user`, unless specified otherwise) -**Use case: Delete a person** +**Use case: Delete a contact** **MSS** -1. User requests to list persons -2. AddressBook shows a list of persons -3. User requests to delete a specific person in the list -4. AddressBook deletes the person +1. User requests to list organizations +2. SJ++ shows a list of organizations +3. User requests to delete a specific organization in the list +4. SJ++ deletes the organization Use case ends. @@ -304,7 +305,7 @@ Priorities: High (must have) - `* * *`, Medium (nice to have) - `* *`, Low (unli * 3a. The given index is invalid. - * 3a1. AddressBook shows an error message. + * 3a1. SJ++ shows an error message. Use case resumes at step 2. @@ -315,13 +316,14 @@ Priorities: High (must have) - `* * *`, Medium (nice to have) - `* *`, Low (unli 1. Should work on any _mainstream OS_ as long as it has Java `11` or above installed. 2. Should be able to hold up to 1000 persons without a noticeable sluggishness in performance for typical usage. 3. A user with above average typing speed for regular English text (i.e. not code, not system admin commands) should be able to accomplish most of the tasks faster using commands than using the mouse. +4. A user with familiarity with common Unix/Linux shell command syntax should find the syntax of SJ++ to match their habits and easy to pick up. +5. The command syntax should not conflict with something that a user could plausibly use as legitimate data input. *{More to be added}* ### Glossary -* **Mainstream OS**: Windows, Linux, Unix, OS-X -* **Private contact detail**: A contact detail that is not meant to be shared with others +* **Mainstream OS**: Windows, macOS, Linux, Unix -------------------------------------------------------------------------------------------------------------------- From f44bd5a4ccbeea5c2664e327c8ba39ba97b00940 Mon Sep 17 00:00:00 2001 From: Wern Date: Tue, 3 Oct 2023 21:04:39 +0800 Subject: [PATCH 02/10] Add all user stories planned so far to DG --- docs/DeveloperGuide.md | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index c69f1a06a5f..878869ffdec 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -273,14 +273,17 @@ Allows for comprehensive tracking of job applications and the information of com Priorities: High (must have) - `* * *`, Medium (nice to have) - `* *`, Low (unlikely to have) - `*` -| Priority | As a …​ | I want to …​ | So that I can…​ | -| -------- | ------------------------------------------ | ------------------------------ | ---------------------------------------------------------------------- | -| `* * *` | new user | see usage instructions | refer to instructions when I forget how to use the app | -| `* * *` | user | add a new contact | keep track of organizations and recruiters I'm interested in | -| `* * *` | user | delete contacts | remove organizations and recruiters that I no longer need | -| `* * *` | user | find a contact by name | locate details of persons without having to go through the entire list | - -*{More to be added}* +| Priority | As a(n) ... | I want to ... | So that I can ... | +| -------- | ------------------------ | ------------------------------------------------------------ | -------------------------------------------------------------------------- | +| `* * *` | new user | see usage instructions | refer to instructions when I forget how to use the app | +| `* * *` | user | add a new contact | keep track of organizations and recruiters I'm interested in | +| `* * *` | user | delete contacts | remove organizations and recruiters that I no longer need | +| `* *` | user | edit my contacts | be up to date with changes in organization and recruiter details | +| `* *` | user | find contacts by saved details | locate a contact without going through the entire list | +| `* *` | user | filter organizations by job application status | get a summary of the statuses of what I've applied to | +| `* *` | user | tag contacts | organize my contact list for more efficient access of different categories | +| `* *` | efficient user | type shorter arguments and known values with auto-completion | type my command even more quickly | +| `*` | user | import and export contacts | share my list of contacts with my peers | ### Use cases From 86c018c987e8d6ed3a634fa3acca270a4297e214 Mon Sep 17 00:00:00 2001 From: tanshiyu Date: Wed, 4 Oct 2023 09:04:05 +0800 Subject: [PATCH 03/10] Change photo name --- docs/images/{shiyu.png => tanshiyu1999.png} | Bin 1 file changed, 0 insertions(+), 0 deletions(-) rename docs/images/{shiyu.png => tanshiyu1999.png} (100%) diff --git a/docs/images/shiyu.png b/docs/images/tanshiyu1999.png similarity index 100% rename from docs/images/shiyu.png rename to docs/images/tanshiyu1999.png From bf88fa223095499e111edfd7b187b681ac6cf50a Mon Sep 17 00:00:00 2001 From: tanshiyu Date: Wed, 4 Oct 2023 09:09:04 +0800 Subject: [PATCH 04/10] Change AboutUs --- docs/AboutUs.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/AboutUs.md b/docs/AboutUs.md index f6dd0ade1c9..c6d5b3b4e20 100644 --- a/docs/AboutUs.md +++ b/docs/AboutUs.md @@ -38,7 +38,7 @@ We are a team based in the [School of Computing, National University of Singapor ### Shi Yu - + [[github](https://github.com/tanshiyu1999)] [[portfolio](team/tanshiyu1999.md)] From 2399b4c54f0b30af1afbcc87251af9d259dc1aa2 Mon Sep 17 00:00:00 2001 From: CJ-Lee01 Date: Wed, 4 Oct 2023 12:31:56 +0800 Subject: [PATCH 05/10] Add command line syntax requirements --- docs/DeveloperGuide.md | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index 878869ffdec..1f171459337 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -316,12 +316,30 @@ Priorities: High (must have) - `* * *`, Medium (nice to have) - `* *`, Low (unli ### Non-Functional Requirements +**Generic user requirements** 1. Should work on any _mainstream OS_ as long as it has Java `11` or above installed. 2. Should be able to hold up to 1000 persons without a noticeable sluggishness in performance for typical usage. 3. A user with above average typing speed for regular English text (i.e. not code, not system admin commands) should be able to accomplish most of the tasks faster using commands than using the mouse. 4. A user with familiarity with common Unix/Linux shell command syntax should find the syntax of SJ++ to match their habits and easy to pick up. 5. The command syntax should not conflict with something that a user could plausibly use as legitimate data input. +**Command syntax requirements** +1. Names of commands are to be short and simple. +2. Names of commands are to be lowercase. +3. Names of commands are singular. +4. Names of commands should only contain alphabets. +5. Names of commands should only be 1 word long. (i.e. no commands like `add_note`) +6. Names of commands should not be confused with other commands. (e.g. `empty` and `clear`) + +**Argument syntax requirements** +1. Names of arguments are to be short and simple. +2. Names of arguments are to be lowercase. +3. Arguments in the command line are to be preceded by a double dash `--`. (e.g. to use the argument `email`, users must type `--email` as part of the arguments) +4. Names of arguments can be multiple words long if necessary, and the words are separated by underscores. (e.g. `start_time`) +5. Ordering of arguments do not matter in the command line. +6. The argument should carry the same meaning across different commands. + + *{More to be added}* ### Glossary From 2ab124ae72075d70ae23217434c3aeb385b7afca Mon Sep 17 00:00:00 2001 From: CJ-Lee01 Date: Wed, 4 Oct 2023 12:37:49 +0800 Subject: [PATCH 06/10] Add single character argument syntax requirements --- docs/DeveloperGuide.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index 1f171459337..557e9249094 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -336,6 +336,7 @@ Priorities: High (must have) - `* * *`, Medium (nice to have) - `* *`, Low (unli 2. Names of arguments are to be lowercase. 3. Arguments in the command line are to be preceded by a double dash `--`. (e.g. to use the argument `email`, users must type `--email` as part of the arguments) 4. Names of arguments can be multiple words long if necessary, and the words are separated by underscores. (e.g. `start_time`) +5. Names of arguments can be shortened to a single character if used frequently, but still must support the full argument name. (e.g. `--name` can be shortened to `--n` if used frequently, but `--name` must still be supported) 5. Ordering of arguments do not matter in the command line. 6. The argument should carry the same meaning across different commands. From 30eb332aa54d82f1c64fe198f19377df8ad1dbfc Mon Sep 17 00:00:00 2001 From: CJ-Lee01 Date: Wed, 4 Oct 2023 12:42:13 +0800 Subject: [PATCH 07/10] Fix ordering of argument requirement list --- docs/DeveloperGuide.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index 557e9249094..e301aba9165 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -337,10 +337,10 @@ Priorities: High (must have) - `* * *`, Medium (nice to have) - `* *`, Low (unli 3. Arguments in the command line are to be preceded by a double dash `--`. (e.g. to use the argument `email`, users must type `--email` as part of the arguments) 4. Names of arguments can be multiple words long if necessary, and the words are separated by underscores. (e.g. `start_time`) 5. Names of arguments can be shortened to a single character if used frequently, but still must support the full argument name. (e.g. `--name` can be shortened to `--n` if used frequently, but `--name` must still be supported) -5. Ordering of arguments do not matter in the command line. -6. The argument should carry the same meaning across different commands. - +6. Ordering of arguments do not matter in the command line. +7. The argument should carry the same meaning across different commands. +Add single character argument syntax requirements *{More to be added}* ### Glossary From bf292d56a6aef9b1fb0159ef0d851280a328a2d6 Mon Sep 17 00:00:00 2001 From: CJ-Lee01 Date: Wed, 4 Oct 2023 12:43:12 +0800 Subject: [PATCH 08/10] Remove redundant line --- docs/DeveloperGuide.md | 1 - 1 file changed, 1 deletion(-) diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index e301aba9165..2d2ea5824f3 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -340,7 +340,6 @@ Priorities: High (must have) - `* * *`, Medium (nice to have) - `* *`, Low (unli 6. Ordering of arguments do not matter in the command line. 7. The argument should carry the same meaning across different commands. -Add single character argument syntax requirements *{More to be added}* ### Glossary From 1f22d8b7b5465007a11bcd358bade06cf093508d Mon Sep 17 00:00:00 2001 From: CJ-Lee01 Date: Wed, 4 Oct 2023 12:55:46 +0800 Subject: [PATCH 09/10] Add command and argument definition into glossary --- docs/DeveloperGuide.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index 2d2ea5824f3..df8eb2e2e9b 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -345,6 +345,8 @@ Priorities: High (must have) - `* * *`, Medium (nice to have) - `* *`, Low (unli ### Glossary * **Mainstream OS**: Windows, macOS, Linux, Unix +* **Commands**: A set of keywords that defines the operations the user wishes to execute. +* **Arguments**: A set of keywords that defines the type of data the user wishes to pass into the command line. -------------------------------------------------------------------------------------------------------------------- From a87d364bd3c23ca5ccc97c28d3accafdae960c9d Mon Sep 17 00:00:00 2001 From: CJ-Lee01 Date: Wed, 4 Oct 2023 17:28:58 +0800 Subject: [PATCH 10/10] Remove syntax NFR --- docs/DeveloperGuide.md | 17 ----------------- 1 file changed, 17 deletions(-) diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index df8eb2e2e9b..a55a7e8c817 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -316,29 +316,12 @@ Priorities: High (must have) - `* * *`, Medium (nice to have) - `* *`, Low (unli ### Non-Functional Requirements -**Generic user requirements** 1. Should work on any _mainstream OS_ as long as it has Java `11` or above installed. 2. Should be able to hold up to 1000 persons without a noticeable sluggishness in performance for typical usage. 3. A user with above average typing speed for regular English text (i.e. not code, not system admin commands) should be able to accomplish most of the tasks faster using commands than using the mouse. 4. A user with familiarity with common Unix/Linux shell command syntax should find the syntax of SJ++ to match their habits and easy to pick up. 5. The command syntax should not conflict with something that a user could plausibly use as legitimate data input. -**Command syntax requirements** -1. Names of commands are to be short and simple. -2. Names of commands are to be lowercase. -3. Names of commands are singular. -4. Names of commands should only contain alphabets. -5. Names of commands should only be 1 word long. (i.e. no commands like `add_note`) -6. Names of commands should not be confused with other commands. (e.g. `empty` and `clear`) - -**Argument syntax requirements** -1. Names of arguments are to be short and simple. -2. Names of arguments are to be lowercase. -3. Arguments in the command line are to be preceded by a double dash `--`. (e.g. to use the argument `email`, users must type `--email` as part of the arguments) -4. Names of arguments can be multiple words long if necessary, and the words are separated by underscores. (e.g. `start_time`) -5. Names of arguments can be shortened to a single character if used frequently, but still must support the full argument name. (e.g. `--name` can be shortened to `--n` if used frequently, but `--name` must still be supported) -6. Ordering of arguments do not matter in the command line. -7. The argument should carry the same meaning across different commands. *{More to be added}*