forked from nus-cs2103-AY2324S2/tp
-
Notifications
You must be signed in to change notification settings - Fork 5
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #169 from ZHANGTIANYAO1/update-ug-constraints
Update Constrains
- Loading branch information
Showing
4 changed files
with
130 additions
and
39 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -3,9 +3,9 @@ layout: page | |
title: User Guide | ||
--- | ||
|
||
Career Connect Bot (CCBot) is a **desktop app for managing job interview contacts, optimized for use via a Command Line | ||
Interface** | ||
(CLI) while still having the benefits of a Graphical User Interface (GUI). If you can type fast, CCBot can get your | ||
Career Connect Bot (CCBot) is a **desktop app for managing job interview contacts, optimized for use via a Command Line | ||
Interface** | ||
(CLI) while still having the benefits of a Graphical User Interface (GUI). If you can type fast, CCBot can get your | ||
contact management tasks done faster than traditional GUI apps. | ||
|
||
* Table of Contents | ||
|
@@ -31,9 +31,9 @@ contact management tasks done faster than traditional GUI apps. | |
* `list` : Lists all contacts. | ||
|
||
* `add cn/Google n/John Doe p/98765432 e/[email protected] a/311, Clementi Ave 2, #02-25 tt/121220221400 | ||
i/remote work s/5000 pl/Java t/friends t/referral pri/2` : | ||
i/remote work s/5000 pl/Java t/friends t/referral pri/2` : | ||
Adds a contact named `John Doe` to the Address Book. | ||
|
||
* `delete 3` : Deletes the 3rd contact shown in the current list. | ||
|
||
* `clear` : Deletes all contacts. | ||
|
@@ -48,7 +48,7 @@ contact management tasks done faster than traditional GUI apps. | |
<span style="display: inline-block; width: 20px; height: 20px; background-color: #ff0000;"></span> | ||
|
||
**<span style="color:#E11F1F;">0 - High Priority</span>** - This is the highest priority. | ||
**<span style="color:#E11F1F;">0 - High Priority</span>** - This is the highest priority. | ||
|
||
<span style="display: inline-block; width: 20px; height: 20px; background-color: #E18D1F;"></span> | ||
|
||
|
@@ -105,7 +105,7 @@ Format: `help` | |
|
||
Adds a person to the address book. | ||
|
||
Format: `add cn/COMPANY_NAME n/NAME p/PHONE_NUMBER e/EMAIL a/ADDRESS [tt/INTERVIEW-TIME] [i/INFO] | ||
Format: `add cn/COMPANY_NAME n/NAME p/PHONE_NUMBER e/EMAIL a/ADDRESS [tt/INTERVIEW-TIME] [i/INFO] | ||
[s/SALARY] [pl/PROGRAMMING-LANGUAGE] [t/TAG] [pri/PRIORITY(0-4)] …` | ||
|
||
|
||
|
@@ -119,6 +119,19 @@ i/Birthday: 12 May 2001 s/5000 pl/Java t/friends t/owesMoney pri/2` | |
* `add cn/ Amazon n/Betsy Crowe p/81234567 e/[email protected] a/Newgate Prison tt/121220241200 | ||
i/Remote work s/4000 pl/Python t/criminal pri/4` | ||
|
||
#### Constraint | ||
* The `COMPANY_NAME` should be less than 100 chracters, and it should not be blank. | ||
* The `NAME` should only contain alphanumeric characters and spaces, and it should not be blank. | ||
* The `PHONE_NUMBER` should only contain numbers, and it should be at least 3 digits long. | ||
* The `EMAIL` should be a valid email address. | ||
* The `ADDRESS` can take any values, and it should not be blank. | ||
* The `SALARY` should only contain numbers, with range [0, 2147483647] or two pure digital numbers with '-' in between. Both digital numbers should be within the range [0, 2147483647]. | ||
* The `PROGRAMMING_LANGUAGE` should be alphanumeric and may contain some special characters (+ and #), and must be less than 50 characters. | ||
* The `TAG` should be alphanumeric. | ||
* The `PRIORITY` should be a number between 0 and 4. | ||
* The `INTERVIEW_TIME` should be in the format `ddMMyyyyHHmm`. | ||
* The `INFO` can take any values, and it should not be blank. | ||
|
||
### Adding a resume: `resume` | ||
|
||
Adds a resume to the addressbook. | ||
|
@@ -129,6 +142,15 @@ Examples: | |
* `resume cn/Google n/John Doe p/98765432 e/[email protected] s/3000 edu/NUS a/311, Clementi Ave 2, #02-25 pl/Java pl/C++` | ||
* `resume cn/Apple n/Amy Birch p/87654321 e/[email protected] s/3000 edu/NUS a/311, Clementi Ave 2, #02-25` | ||
|
||
#### Constraint | ||
* The `COMPANY_NAME` should be less than 100 chracters, and it should not be blank. | ||
* The `NAME` should only contain alphanumeric characters and spaces, and it should not be blank. | ||
* The `PHONE_NUMBER` should only contain numbers, and it should be at least 3 digits long. | ||
* The `EMAIL` should be a valid email address. | ||
* The `ADDRESS` can take any values, and it should not be blank. | ||
* The `SALARY` should only contain numbers, with range [0, 2147483647] or two pure digital numbers with '-' in between. Both digital numbers should be within the range [0, 2147483647]. | ||
* The `EDUCATION` should only contain alphanumeric characters and spaces, and it should not be blank. | ||
|
||
### Listing all persons : `list` | ||
|
||
Shows a list of all persons in the address book. | ||
|
@@ -145,14 +167,27 @@ Format: `edit INDEX [cn/COMPANY_NAME] [n/NAME] [p/PHONE_NUMBER] [e/EMAIL a/ADDRE | |
* Edits the person at the specified `INDEX`. The index refers to the index number shown in the displayed person list. The index **must be a positive integer** 1, 2, 3, … | ||
* At least one of the optional fields must be provided. | ||
* Existing values will be updated to the input values. | ||
* When editing tags and info, the existing tags and info of the person will be removed i.e adding of tags and info are | ||
* When editing tags and info, the existing tags and info of the person will be removed i.e adding of tags and info are | ||
not cumulative. | ||
* You can remove all the person’s tags by typing `t/` without specifying any tags after it. | ||
* You can remove all the person’s info by typing `i/` without specifying any info after it. | ||
Examples: | ||
* `edit 1 p/91234567 e/[email protected]` Edits the phone number and email address of the 1st person to be `91234567` and `[email protected]` respectively. | ||
* `edit 2 n/Betsy Crower t/` Edits the name of the 2nd person to be `Betsy Crower` and clears all existing tags. | ||
|
||
#### Constraint | ||
* The `COMPANY_NAME` should be less than 100 chracters, and it should not be blank. | ||
* The `NAME` should only contain alphanumeric characters and spaces, and it should not be blank. | ||
* The `PHONE_NUMBER` should only contain numbers, and it should be at least 3 digits long. | ||
* The `EMAIL` should be a valid email address. | ||
* The `ADDRESS` can take any values, and it should not be blank. | ||
* The `SALARY` should only contain numbers, with range [0, 2147483647] or two pure digital numbers with '-' in between. Both digital numbers should be within the range [0, 2147483647]. | ||
* The `PROGRAMMING_LANGUAGE` should be alphanumeric and may contain some special characters (+ and #), and must be less than 50 characters. | ||
* The `TAG` should be alphanumeric. | ||
* The `PRIORITY` should be a number between 0 and 4. | ||
* The `INTERVIEW_TIME` should be in the format `ddMMyyyyHHmm`. | ||
* The `INFO` can take any values, and it should not be blank. | ||
|
||
### Locating persons by name / company name: `find` | ||
|
||
Finds persons whose names / company names contain any of the given keywords. | ||
|
@@ -201,8 +236,8 @@ Format: `filter tt/INTERVIEW_TIME_RANGE [MORE_INTERVIEW_TIME_RANGE]...` | |
* `from/INTERVIEWTIME-INTERVIEWTIME` | ||
|
||
Examples: | ||
* `filter tt/before/010120200000 from/010120220000-010120230000` returns persons with interview times before 1 Jan | ||
2020, 1200am `(010120200000)` or persons with interview times within 1 Jan 2022, 1200am `(010120220000)` and 1 Jan | ||
* `filter tt/before/010120200000 from/010120220000-010120230000` returns persons with interview times before 1 Jan | ||
2020, 1200am `(010120200000)` or persons with interview times within 1 Jan 2022, 1200am `(010120220000)` and 1 Jan | ||
2023, 1200am `(010120230000)`. | ||
* `filter tt/after/010120220000` returns persons with interview times after 1 Jan 2022, 1200am `(010120220000)`. | ||
|
||
|
@@ -213,15 +248,15 @@ Format: `filter s/SALARY_RANGE [MORE_SALARY_RANGE]...` | |
* Only the salaries of each of the contacts are searched. | ||
* Persons with salaries within the range provided will be returned. | ||
* Valid `SALARY_RANGE` includes: | ||
* Valid `SALARY` | ||
* Valid `SALARY` | ||
* `>=INTEGER` | ||
* `<=INTEGER` | ||
|
||
where `INTEGER` is a number between 0 and 2147483647. | ||
|
||
Examples: | ||
* `filter s/5000` returns persons with salaries of $5000. | ||
* `filter s/2000-5000 >=7000` returns persons with salaries that contain any number from $2000 to $5000 or with | ||
* `filter s/2000-5000 >=7000` returns persons with salaries that contain any number from $2000 to $5000 or with | ||
salaries more than or equals to $7000. (e.g. persons with salaries `3000-6000`, `4000`, `8000-20900` are returned). | ||
|
||
#### Filter by programming language: `filter pl/` | ||
|
@@ -337,31 +372,47 @@ This value cannot be modified or added by the `edit` or `add` commands. | |
|
||
## Command summary | ||
|
||
Action | Format, Examples | ||
--------|------------------ | ||
**Add** | `add cn/COMPANY_NAME n/NAME p/PHONE_NUMBER e/EMAIL a/ADDRESS [tt/INTERVIEW-TIME] [i/INFO] [s/SALARY] [pl/PROGRAMMING-LANGUAGE] [t/TAG] [pri/PRIORITY(0-4)]...` <br> e.g., `add n/James Ho p/22224444 e/[email protected] a/123, Clementi Rd, 1234665 t/friend t/colleague` | ||
**Clear** | `clear` | ||
**Delete** | `delete INDEX`<br> e.g., `delete 3` | ||
**Edit** | `edit INDEX [cn/COMPANY_NAME] [n/NAME] [p/PHONE_NUMBER] [e/EMAIL a/ADDRESS] [tt/INTERVIEW-TIME] [i/INFO] [s/SALARY] [pl/PROGRAMMING-LANGUAGE] [t/TAG] [pri/PRIORITY(0-4)]…`<br> e.g.,`edit 2 n/James Lee e/[email protected]` | ||
**Find** | `find KEYWORD [MORE_KEYWORDS]`<br> e.g., `find James Jake` | ||
**Filter**| `filter t/TAG [MORE TAGS]...`<br> e.g., `filter t/manager HR`<br> `filter tt/INTERVIEW_TIME_RANGE [MORE INTERVIEW_TIME_RANGE]...`<br> e.g., `filter tt/before/010120200000 from/010120220000-010120230000 after/010120220000`<br> `filter s/SALARY_RANGE [MORE SALARY_RANGE]...`<br> e.g., `filter s/2000-5000 >=7000` <br> `filter pl/PROGRAMMING_LANGUAGE [MORE PROGRAMMING_LANGUAGE]...`<br> e.g., `filter pl/python C` | ||
**List** | `list` | ||
**Help** | `help` | ||
**Sort** | `sort` or `sort rev/ [pri/PRIORITY] [n/NAME] [cn/COMPANY_NAME] [s/SALARY] [tt/INTERVIEW_TIME] [jd/JOB_DIFFICULTY]` <br> e.g., `sort pri/`<br> e.g., `sort rev/ tt/` | ||
**Resume**|`resume cn/COMPANY_NAME n/NAME p/PHONE e/EMAIL edu/EDUCATION s/SALARY [pl/SKILLS]` <br> e.g., `resume cn/Google n/John Doe p/98765432 e/[email protected] s/3000 edu/NUS a/311, Clementi Ave 2, #02-25 pl/Java pl/C++ ` | ||
| Action | Format, Examples | | ||
|------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | ||
| **Add** | `add cn/COMPANY_NAME n/NAME p/PHONE_NUMBER e/EMAIL a/ADDRESS [tt/INTERVIEW-TIME] [i/INFO] [s/SALARY] [pl/PROGRAMMING-LANGUAGE] [t/TAG] [pri/PRIORITY(0-4)]...` <br> e.g., `add n/James Ho p/22224444 e/[email protected] a/123, Clementi Rd, 1234665 t/friend t/colleague` | | ||
| **Clear** | `clear` | | ||
| **Delete** | `delete INDEX`<br> e.g., `delete 3` | | ||
| **Edit** | `edit INDEX [cn/COMPANY_NAME] [n/NAME] [p/PHONE_NUMBER] [e/EMAIL a/ADDRESS] [tt/INTERVIEW-TIME] [i/INFO] [s/SALARY] [pl/PROGRAMMING-LANGUAGE] [t/TAG] [pri/PRIORITY(0-4)]…`<br> e.g.,`edit 2 n/James Lee e/[email protected]` | | ||
| **Find** | `find KEYWORD [MORE_KEYWORDS]`<br> e.g., `find James Jake` | | ||
| **Filter** | `filter t/TAG [MORE TAGS]...`<br> e.g., `filter t/manager HR`<br> `filter tt/INTERVIEW_TIME_RANGE [MORE INTERVIEW_TIME_RANGE]...`<br> e.g., `filter tt/before/010120200000 from/010120220000-010120230000 after/010120220000`<br> `filter s/SALARY_RANGE [MORE SALARY_RANGE]...`<br> e.g., `filter s/2000-5000 >=7000` <br> `filter pl/PROGRAMMING_LANGUAGE [MORE PROGRAMMING_LANGUAGE]...`<br> e.g., `filter pl/python C` | | ||
| **List** | `list` | | ||
| **Help** | `help` | | ||
| **Sort** | `sort` or `sort rev/ [pri/PRIORITY] [n/NAME] [cn/COMPANY_NAME] [s/SALARY] [tt/INTERVIEW_TIME] [jd/JOB_DIFFICULTY]` <br> e.g., `sort pri/`<br> e.g., `sort rev/ tt/` | | ||
| **Resume** | `resume cn/COMPANY_NAME n/NAME p/PHONE e/EMAIL edu/EDUCATION s/SALARY [pl/SKILLS]` <br> e.g., `resume cn/Google n/John Doe p/98765432 e/[email protected] s/3000 edu/NUS a/311, Clementi Ave 2, #02-25 pl/Java pl/C++ ` | | ||
|
||
## CLI Syntax Summary | ||
|
||
Character | Explaination, Examples | ||
----------|------------------ | ||
**n/**|Name of the contact | ||
**cn/**|The company name | ||
**tt/**|The time of the interview | ||
**s/**|The salary | ||
**a/**|The place of residence | ||
**e/**|The email address | ||
**i/**|Any additional info | ||
**pri/**|Priority of the job | ||
**edu/**|Education level | ||
**pl/**|Programming languages | ||
**jd/**|The job difficulty (only for `sort` command) | ||
| Character | Explaination, Examples | | ||
|-----------|----------------------------------------------| | ||
| **n/** | Name of the contact | | ||
| **cn/** | The company name | | ||
| **tt/** | The time of the interview | | ||
| **s/** | The salary | | ||
| **a/** | The place of residence | | ||
| **e/** | The email address | | ||
| **i/** | Any additional info | | ||
| **pri/** | Priority of the job | | ||
| **edu/** | Education level | | ||
| **pl/** | Programming languages | | ||
| **jd/** | The job difficulty (only for `sort` command) | | ||
|
||
## Constraints Summary | ||
| Field | Constraint | | ||
|----------------------|----------------------------------------------------------------------------------------------------------| | ||
| `COMPANY_NAME` | Should be less than 100 characters, and it should not be blank. | | ||
| `NAME` | Should only contain alphanumeric characters and spaces, and it should not be blank. | | ||
| `PHONE_NUMBER` | Should only contain numbers, and it should be at least 3 digits long. | | ||
| `EMAIL` | Should be a valid email address. | | ||
| `ADDRESS` | Can take any values, and it should not be blank. | | ||
| `SALARY` | Should only contain numbers, with range [0, 2147483647] or two pure digital numbers with '-' in between. Both digital numbers should be within the range [0, 2147483647]. | | ||
| `PROGRAMMING_LANGUAGE` | Should be alphanumeric and may contain some special characters (+ and #), and must be less than 50 characters. | | ||
| `TAG` | Should be alphanumeric. | | ||
| `PRIORITY` | Should be a number between 0 and 4. | | ||
| `INTERVIEW_TIME` | Should be in the format `ddMMyyyyHHmm`. | | ||
| `INFO` | Can take any values, and it should not be blank. | | ||
| `EDUCATION` | Should only contain alphanumeric characters and spaces, and it should not be blank. | |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.