diff --git a/docs/UserGuide.md b/docs/UserGuide.md
index 25cb0be2538..983f84f2ff6 100644
--- a/docs/UserGuide.md
+++ b/docs/UserGuide.md
@@ -42,8 +42,8 @@ Here are some descriptions of the words we use throughout the User Guide:
### Add lead
- What it does: Add potential leads and their basic information, e.g. name, age, year of study, major, etc.
-- Command format: `addlead n/NAME p/PHONE e/EMAIL a/ADDRESS m/MEETING_TIME [t/TAG]...`.
-- Example usage: `Example: addlead n/John Doe p/98765432 e/johnd@example.com a/311, Clementi Ave 2, #02-25 t/classmate`.
+- Command format: `addlead n/NAME p/PHONE e/EMAIL a/ADDRESS k/KEY_MILESTONE [m/MEETING_TIME] [t/TAG]...`.
+- Example usage: `Example: addlead n/John Doe p/98765432 e/johnd@example.com a/311, Clementi Ave 2, #02-25 k/01/12/2023 m/10/10/2023 14:30 t/classmate`.
- Acceptable values for each compulsory parameter:
- `NAME`: can contain any string of alphanumeric characters.
- The name can contain spaces but cannot be blank (only contain spaces).
@@ -55,6 +55,9 @@ Here are some descriptions of the words we use throughout the User Guide:
- The domain name must end with a domain label at least 2 characters long
- Each domain label must start and end with alphanumeric characters and only separated by hyphens, if any.
- `ADDRESS`: can contain any alphanumeric character, must not be blank.
+ - `KEY_MILESTONE`: only contains date in the format of `dd/MM/yyyy`
+ - ``KEY_MILESTONE`` is the date of a lead's life-changing event.
+ - The date must be a valid date, these are invalid: `31/02/2020`, `25/13/2021`
- Acceptable values for each optional parameter:
- `MEETING_TIME`: only contains date in the format of `dd/MM/yyyy HH:mm`
- The date must be a valid date, these are invalid: `31/02/2020`, `25/13/2021`
@@ -63,30 +66,18 @@ Here are some descriptions of the words we use throughout the User Guide:
- Precise expected outputs when the command succeeds:
-
+
After using addlead command
- Precise expected outputs when the command fails:
```
-Invalid command format!
-addlead: Adds a lead to the address book. Parameters: n/NAME p/PHONE e/EMAIL a/ADDRESS [t/TAG]...
-Example: addlead n/John Doe p/98765432 e/johnd@example.com a/311, Clementi Ave 2, #02-25 t/classmate
+Invalid command format!
+addlead: Adds a lead to the address book. Parameters: n/NAME p/PHONE e/EMAIL a/ADDRESS k/KEY_MILESTONE m/MEETING_TIME [t/TAG]...
+Example: addlead n/John Doe p/98765432 e/johnd@example.com a/311, Clementi Ave 2, #02-25 k/01/12/2023 m/10/10/2023 14:30 t/classmate
```
-### Add Lead with Key Milestone Information [Coming soon]
-- What it does: Add potential leads and their basic information, e.g. name, age, year of study, major, etc.
-- Command format: `addlead n/NAME p/PHONE e/EMAIL a/ADDRESS k/DATE [t/TAG]...`.
-- Example usage: `Example: addlead n/John Doe p/98765432 e/johnd@example.com a/311, Clementi Ave 2, #02-25 k/2022-12-01 t/classmate`.
-- Acceptable values for each parameter:
- - `NAME`: can contain any character.
- - `PHONE`: any valid 8-digit integer.
- - `EMAIL`: a string of the format `local-part@domain`
- - `ADDRESS`: can contain any character.
- - `DATE`: only contains date in the format of ``YYYY-MM-DD``
- - `TAG`: can contain any character.
-
### Add Client
- What it does: Add potential clients and their basic information, e.g. name, age, year of study, major, etc.
- Command format: `addclient n/NAME p/PHONE e/EMAIL a/ADDRESS [m/MEETING_TIME] [t/TAG]...`.
@@ -291,8 +282,8 @@ Example: deletemeeting 1
### Edit
- What it does: Edit the details of a lead or client.
-- Command format: `edit INDEX [n/NAME] [p/PHONE] [e/EMAIL] [a/ADDRESS] [t/TAG]...`
-- Example usage: `edit 1 n/John Doe p/98765432
+- Command format: `edit INDEX [n/NAME] [p/PHONE] [e/EMAIL] [a/ADDRESS] [k/KEY_MILESTONE] [t/TAG]...`
+- Example usage: `edit 1 n/John Doe p/98765432`
@@ -317,6 +308,9 @@ Example: deletemeeting 1
- The domain name must end with a domain label at least 2 characters long
- Each domain label must start and end with alphanumeric characters and only separated by hyphens, if any.
- `ADDRESS`: can contain any alphanumeric character, must not be blank.
+ - `KEY_MILESTONE`: only contains date in the format of `dd/MM/yyyy`
+ - The date must be a valid date, these are invalid: `31/02/2020`, `25/13/2021`
+ - If the edited person is a client, no ``KEY_MILESTONE`` of the person will be edited as client does not have ``KEY_MILESTONE``
- `MEETING_TIME`: only contains date in the format of `dd/MM/yyyy HH:mm`
- The date must be a valid date, these are invalid: `31/02/2020`, `25/13/2021`
- The time must be a valid time in the 24-hour format, these are invalid: `25:00`, `12:60`
@@ -331,7 +325,7 @@ Edited Person:
```
Invalid command format!
edit: Edits the details of the person identified by the index number used in the displayed person list. Existing values will be overwritten by the input values.
-Parameters: INDEX (must be a positive integer) [n/NAME] [p/PHONE] [e/EMAIL] [a/ADDRESS] [m/MEETING_TIME] [t/TAG]...
+Parameters: INDEX (must be a positive integer) [n/NAME] [p/PHONE] [e/EMAIL] [a/ADDRESS] [k/KEY_MILESTONE] [m/MEETING_TIME] [t/TAG]...
Example: edit 1 p/91234567 e/johndoe@example.com
```
@@ -373,12 +367,12 @@ only entries with a meeting time.
### Convert client to lead
-- What it does: Converts a client into lead, the key milestone is 1 year
-from current date to ensure a followup by the user
+- What it does: Converts a client into lead, the ``KEY_MILESTONE`` is 1 year
+from current date to ensure a follow-up by the user.
- Command format: `convertolead INDEX`
- Example usage: `converttolead 1`
- Acceptable values for each parameter:
- - `INDEX`: Any integer from `1` to the last index of the leads list
+ - `INDEX`: Any integer from `1` to the last index of the leads list.
- Precise expected outputs when the command succeeds:
`Converted client to lead`
diff --git a/docs/images/afterusingaddlead.png b/docs/images/afterusingaddlead.png
new file mode 100644
index 00000000000..39308fc9b81
Binary files /dev/null and b/docs/images/afterusingaddlead.png differ
diff --git a/src/main/java/seedu/address/logic/commands/EditCommand.java b/src/main/java/seedu/address/logic/commands/EditCommand.java
index cd7eadde35c..751782f4265 100644
--- a/src/main/java/seedu/address/logic/commands/EditCommand.java
+++ b/src/main/java/seedu/address/logic/commands/EditCommand.java
@@ -3,6 +3,7 @@
import static java.util.Objects.requireNonNull;
import static seedu.address.logic.parser.CliSyntax.PREFIX_ADDRESS;
import static seedu.address.logic.parser.CliSyntax.PREFIX_EMAIL;
+import static seedu.address.logic.parser.CliSyntax.PREFIX_KEY_MILESTONE;
import static seedu.address.logic.parser.CliSyntax.PREFIX_MEETING_TIME;
import static seedu.address.logic.parser.CliSyntax.PREFIX_NAME;
import static seedu.address.logic.parser.CliSyntax.PREFIX_PHONE;
@@ -49,6 +50,7 @@ public class EditCommand extends Command {
+ "[" + PREFIX_PHONE + "PHONE] "
+ "[" + PREFIX_EMAIL + "EMAIL] "
+ "[" + PREFIX_ADDRESS + "ADDRESS] "
+ + "[" + PREFIX_KEY_MILESTONE + "KEY_MILESTONE] "
+ "[" + PREFIX_MEETING_TIME + "MEETING_TIME] "
+ "[" + PREFIX_TAG + "TAG]...\n"
+ "Example: " + COMMAND_WORD + " 1 "