You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
@@ -71,6 +73,8 @@ Optimized for a Command Line Interface (CLI), CareContacts is ideal for fast typ
71
73
* If you are using a PDF version of this document, be careful when copying and pasting commands that span multiple lines as space characters surrounding line-breaks may be omitted when copied over to the application.
72
74
</box>
73
75
76
+
<divstyle="page-break-after: always;"></div>
77
+
74
78
### Viewing help : `help`
75
79
76
80
Shows a help window with a small set of essential commands to help new users get started quickly.
@@ -81,12 +85,11 @@ This help window is not a complete reference of all available commands.
81
85
Some commands (e.g., edit, import, etc.) are not included.
82
86
For the full list of features and commands, refer to the User Guide.
*`add n/Mary Chew a/7 ad/Blk 123 Bukit Merah Lane, #12-23 pn/Augusta Chew pc/12345678 pe/augusta@email.com t/allergies t/basketball`
105
108
106
-
### Duplicate name detection
109
+
<divmarkdown="block"class="alert alert-info">
110
+
111
+
### Duplicate Name Detection
107
112
108
-
If a student whose name matches an existing name after normalization is added, the system will display a warning and show a list of similar names. However, the student will still be added.
113
+
When adding a student, the system checks for possible duplicates based on the student's **name and age**.
109
114
110
-
A name is considered a match after normalization if the name is the same after:
115
+
#### Exact Duplicates (Blocked)
116
+
A student will **not be added** if both of the following match exactly:
117
+
- Name (after ignoring leading and trailing spaces)
118
+
- Age
111
119
112
-
* Differences in capitalization are ignored
113
-
* Extra spaces are removed
120
+
#### Potential Duplicates (Warning Only)
121
+
The system will display a message **warning** the user of a potential duplicate and show a list of possible duplicates if the student names are the same **after normalization**.
114
122
115
-
For example, `John Doe` and `john doe ` are treated as the same name.
123
+
#### Name Normalization Rules
124
+
Names are considered the same after normalization if:
125
+
- Differences in capitalization are ignored
126
+
- Reducing multiple spaces between words to a single space
116
127
117
-
Limitations:
128
+
Example:
129
+
-`John Doe` and `john doe ` are treated as the same name
118
130
119
-
This check is limited and may miss some similar names
120
-
For example:
121
-
*`Justine Ong` vs `Justin Ong` will not trigger a warning
122
-
*`Annabelle` vs `Anna Belle` will not trigger a warning
131
+
#### ⚠️ Limitations
132
+
This duplicate detection is limited and may miss some similar names.
* Alphabetical sort is applied to `n/`, `pn/` and `pe/`.
134
152
* Numeric sort in ascending order is applied to `a/` and `pc/`.
135
153
154
+
<divstyle="page-break-after: always;"></div>
155
+
136
156
### Editing a person : `edit`
137
157
138
158
Edits an existing person in the address book.
@@ -150,6 +170,8 @@ Examples:
150
170
*`edit 2 n/Betsy Crower t/` Edits the name of the 2nd person to be `Betsy Crower` and clears all existing tags.
151
171
*`edit 3 pc/91234567 pe/johndoe@example.com` Edits the phone number and email address of the 3rd person's parent to be `91234567` and `johndoe@example.com` respectively.
152
172
173
+
<divstyle="page-break-after: always;"></div>
174
+
153
175
### Locating persons by name: `find`
154
176
155
177
Filter students based on matching keywords to specified fields.
@@ -180,6 +202,8 @@ Examples:
180
202

181
203
*`find n/Alice pn/Tan a/12` returns all students named `Alice`, and students whose parent's name contains `Tan`, and students who are exactly 12 years old.
182
204
205
+
<divstyle="page-break-after: always;"></div>
206
+
183
207
### Deleting a student : `delete`
184
208
185
209
Deletes the specified student from the address book.
@@ -198,6 +222,8 @@ Examples:
198
222
*`list` followed by `delete 2` deletes the 2nd person in the address book.
199
223
*`find Betsy` followed by `delete 1` deletes the 1st person in the results of the `find` command.
200
224
225
+
<divstyle="page-break-after: always;"></div>
226
+
201
227
### Adding or removing a remark from a student : `remark`
202
228
203
229
Adds a remark to the specified student from CareContacts.
@@ -216,6 +242,7 @@ Examples:
216
242
*`remark 1 r/enjoys sports d/allergic to shellfish c/1C b/very energetic`
217
243
adds the following remarks to the student at index 1
218
244
245
+
<divstyle="page-break-after: always;"></div>
219
246
<aid="importing-students"></a>
220
247
221
248
### Importing students : `import`
@@ -247,22 +274,30 @@ Examples:
247
274
*`import data/contacts.csv`
248
275
*`import "data/term 2/students.csv"`
249
276
277
+
<divstyle="page-break-after: always;"></div>
278
+
250
279
### Clearing all entries : `clear`
251
280
252
281
Clears all entries from the address book.
253
282
254
283
Format: `clear`
255
284
285
+
<divstyle="page-break-after: always;"></div>
286
+
256
287
### Exiting the program : `exit`
257
288
258
289
Exits the program.
259
290
260
291
Format: `exit`
261
292
293
+
<divstyle="page-break-after: always;"></div>
294
+
262
295
### Saving the data
263
296
264
297
CareContacts data are saved in the hard disk automatically after any command that changes the data. There is no need to save manually.
265
298
299
+
<divstyle="page-break-after: always;"></div>
300
+
266
301
### Importing the data
267
302
268
303
Use the `import` command to load students from a CSV file:
@@ -271,21 +306,21 @@ Use the `import` command to load students from a CSV file:
271
306
272
307
Refer to [Importing students : `import`](#importing-students) for the required CSV format.
273
308
309
+
<divstyle="page-break-after: always;"></div>
310
+
274
311
### Editing the data file
275
312
276
313
CareContacts data are saved automatically as a JSON file `[JAR file location]/data/addressbook.json`. Advanced users are welcome to update data directly by editing that data file.
277
314
315
+
<divstyle="page-break-after: always;"></div>
316
+
278
317
<boxtype="warning"seamless>
279
318
280
319
**Caution:**
281
320
If your changes to the data file makes its format invalid, CareContacts will discard all data and start with an empty data file at the next run. Hence, it is recommended to take a backup of the file before editing it.<br>
282
321
Furthermore, certain edits can cause the CareContacts to behave in unexpected ways (e.g., if a value entered is outside the acceptable range). Therefore, edit the data file only if you are confident that you can update it correctly.
0 commit comments