Skip to content

Commit

Permalink
Merge branch 'master' into ug-misc-fix
Browse files Browse the repository at this point in the history
  • Loading branch information
wxiaoyun authored Apr 15, 2024
2 parents d6fe9dd + 58cc043 commit 80128e9
Show file tree
Hide file tree
Showing 3 changed files with 54 additions and 18 deletions.
53 changes: 40 additions & 13 deletions docs/DeveloperGuide.md
Original file line number Diff line number Diff line change
Expand Up @@ -567,8 +567,8 @@ The following activity diagram summarizes what happens when a user executes a ne
| {{ threeStars }} | attendance tracking TA | unmark attendance for a student in my class for a particular week | keep track of who is absent |
| {{ twoStars }} | TA over multiple semesters | delete all students from a previous semester from the contact book | clear my contacts quickly at the start of a semester |
| {{ twoStars }} | new user | know all the commands of TAPro via the help window | use it effectively |
| {{ twoStars }} | CLI user | retrieve command history | avoid retyping a command |
| {{ twoStars }} | CLI user | autocomplete my input | save time |
| {{ twoStars }} | TA comfortable with CLI | retrieve command history | avoid retyping a command |
| {{ twoStars }} | TA comfortable with CLI | autocomplete my input | save time |
| {{ twoStars }} | fast typist | use keyboard inputs to interact with TAPro | save time |
| {{ twoStars }} | user | exit the program smoothly | save time |
| {{ oneStar }} | user | easily read the result message of a command | save time |
Expand Down Expand Up @@ -841,7 +841,7 @@ For all use cases below, the **System** is TAPro and the **Actor** is the user,

<box no-icon type="success" light>

**Use case: Retrieve a previous successful command input**
**Use case: Retrieve a Previous Successful Command Input**

<span class="semi-bold">MSS</span>

Expand All @@ -864,7 +864,7 @@ For all use cases below, the **System** is TAPro and the **Actor** is the user,

<box no-icon type="success" light>

**Use case: Retrieve a more recent successful command input**
**Use case: Retrieve a More Recent Successful Command Input**

<span class="semi-bold">MSS</span>

Expand Down Expand Up @@ -988,7 +988,7 @@ students.

<span class="semi-bold">2. Test case:</span>
```
addstu n/John Doe p/98765432 e/johndoe@example.com nn/E0123456 m/Computer Science, #02-25 t/friends t/owesMoney
addstu n/John Doe p/98765432 e/johndoe@example.com nn/E0123456 m/Computer Science t/friends t/owesMoney
```

<span class="semi-bold">Expected:</span> Student with NUSNet ID `E0123456` is added into TAPro. Details of the added student is
Expand Down Expand Up @@ -1044,7 +1044,7 @@ shown in the status message.
This command differs from most other commands that use the `NUSNET` to identify a student. This command uses the index number shown in the displayed person list to identify the student to be edited.
</box>

<br><br>
<br>
{{ newPageBetween }}

### Deleting a student
Expand Down Expand Up @@ -1527,20 +1527,32 @@ Below are some non-exhaustive instances of our challenges, achievements and effo
1. **Add duplicate prefix checks in the `mark` command.**

1. Currently, there are no duplicate prefix checks in the `mark` command.
2. For example, currently a user is able to run `mark nn/E1234567 wk/1 wk/3`, which would only mark the attendance for a student with NUSNet ID E1234567 in week 3. By adding duplicate prefix checks, it would give the correct error message: `Multiple values specified for the following single-valued field(s): wk/`.
2. For example, currently a user is able to run `mark nn/E1234567 wk/1 wk/3`, which would only mark the attendance for a student with NUSNet ID E1234567 in week 3. By adding duplicate prefix checks, it would give the correct error message:
<br><br>
```
Multiple values specified for the following single-valued field(s): wk/
```
<br>

2. **Add duplicate prefix checks for in the `unmark` command.**

1. Currently, there are no duplicate prefix checks in the `unmark` command.
2. For example, currently a user is able to run `unmark nn/E1234567 wk/1 wk/3`, which would only unmark the attendance for a student with NUSNet ID E1234567 in week 3. By adding duplicate prefix checks, it would give the correct error message: `Multiple values specified for the following single-valued field(s): wk/`.
2. For example, currently a user is able to run `unmark nn/E1234567 wk/1 wk/3`, which would only unmark the attendance for a student with NUSNet ID E1234567 in week 3. By adding duplicate prefix checks, it would give the correct error message:
<br><br>
```
Multiple values specified for the following single-valued field(s): wk/
```
<br>
3. **Add duplicate prefix checks in the `delstu` command.**
1. Currently, there are no duplicate prefix checks in the `delstu` command.
2. For example, currently a user is able to run `delstu nn/E1234567 nn/E2345678`, which would only delete a student with NUSNet ID E2345678. By adding duplicate prefix checks, it would give the correct error message: `Multiple values specified for the following single-valued field(s): nn/`.
2. For example, currently a user is able to run `delstu nn/E1234567 nn/E2345678`, which would only delete a student with NUSNet ID E2345678. By adding duplicate prefix checks, it would give the correct error message:
<br><br>
```
Multiple values specified for the following single-valued field(s): nn/
```
<br>
4. **Improve name format validation.**
Expand All @@ -1558,15 +1570,25 @@ Below are some non-exhaustive instances of our challenges, achievements and effo
7. We can achieve this change by updating the regular expression used for name validation, to meet these criteria.
<br><br>
{{ newPageBetween }}
5. **Improve email format validation.**
1. Currently, the email format validation checks are be too strict, which doesn't allow some [valid emails addresses](https://en.wikipedia.org/wiki/Email_address#Valid_email_addresses) like: `name/surname@example.com`, `" "@example.org`, `"john..doe"@example.org`, `mailhost!username@example.org`, `"very.(),:;<>[]\".VERY.\"very@\\ \"very\".unusual"@strange.example.com`, `user%example.com@example.org`, `user-@example.org`, `postmaster@[123.123.123.123]`, `postmaster@[IPv6:2001:0db8:85a3:0000:0000:8a2e:0370:7334]`, `_test@[IPv6:2001:0db8:85a3:0000:0000:8a2e:0370:7334]`.
1. Currently, the email format validation checks are be too strict, which doesn't allow some [valid emails addresses](https://en.wikipedia.org/wiki/Email_address#Valid_email_addresses) like:
* `name/surname@example.com`
* `" "@example.org`
* `"john..doe"@example.org`
* `mailhost!username@example.org`
* `"very.(),:;<>[]\".VERY.\"very@\\ \"very\".unusual"@strange.example.com`
* `user%example.com@example.org`
* `user-@example.org`
* `postmaster@[123.123.123.123]`
* `postmaster@[IPv6:2001:0db8:85a3:0000:0000:8a2e:0370:7334]`
* `_test@[IPv6:2001:0db8:85a3:0000:0000:8a2e:0370:7334]`
2. This is because whether an email format is valid, depends on the email service provider, which can vary. An email valid on one email service provider, may not be valid on another email service provider. Even if we store all the valid formats, new email service providers can be created, resulting in an incomplete validation for that email service provider.
3. Hence, we plan to make the validation should be less strict and follow the validation format given [RFC 5321 Simple Mail Transfer Protocol](https://datatracker.ietf.org/doc/html/rfc5321) and [RFC 5322 Internet Message Format](https://datatracker.ietf.org/doc/html/rfc5322), which contains the Internet standards for email addresses.
4. This can be done by updating the regular expression used for validating email addresses.

{{ newPageBetween}}
<br><br>
6. **Improve handling of duplicate email addresses.**
Expand Down Expand Up @@ -1595,9 +1617,14 @@ Below are some non-exhaustive instances of our challenges, achievements and effo
5. We also specify a constraint that at least one parameter must be present for `find` to execute successfully, to preserve the current behaviour that one keyword must be present.
6. A user can now search students attendance by week number through the above changes. For example, entering `find wk/1` will find all students whose attendance is marked in week 1.
7. Another example with multiple parameters is that `find wk/1 wk/2` will find all students whose attendance is marked in either week 1 or week 2, following the current behaviour of the `find` command with `KEYWORDS` and `MORE_KEYWORDS`.<br><br>
{{ newPageBetween }}
10. **Alert the user when more than one instance of TAPro is open.**
1. Currently, a user is able to open more than one instance of TAPro, which can happen accidentally due to user error. This can potentially cause TAPro to de-synchronize, which may result in the loss of data for that session.
2. Hence, we plan to warn the user through a warning message on the result message panel of all the open instances of TAPro. The warning message would be `Multiple instances of TAPro open! TAPro may de-synchronize resulting in the loss of data in this session!`.
2. Hence, we plan to warn the user through a warning message on the result message panel of all the open instances of TAPro. The warning message would be:
<br><br>
```
Multiple instances of TAPro open! TAPro may de-synchronize resulting in the loss of data in this session!
```
3. Through this warning message, the user would be aware that multiple instances are open, and will be aware of the risks involved, which minimizes the danger.
19 changes: 14 additions & 5 deletions docs/UserGuide.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ pageNav: 3



TAPro is your go-to **Contact Management application**, created with love for **Computer Science Teaching Assistants (TAs)** like you. _We get it_ — juggling your students and keeping track of attendance can be a handful. That’s why TAPro is
TAPro is your go-to **Contact Book**, created with love for **Computer Science Teaching Assistants (TAs)** like you. _We get it_ — juggling your students and keeping track of attendance can be a handful. That’s why TAPro is
here to make your life easier. With features designed precisely for you, it's all about simplifying those
time-consuming tasks, letting you focus on what you do best: teaching and inspiring your students. Welcome to a
smoother, more personalized way of managing your TA duties!
Expand All @@ -35,8 +35,9 @@ you're practically a wizard with student info, we've put together this guide to


**New around here?** No worries, we've got you. Start with these sections to become a TAPro buddy in no time:
- [Navigating the GUI](#navigating-the-gui): Familiarize yourself with the command box and those handy contact cards.
- [Features](#features): Dive into the exciting world of features we've brewed up just for you.
- **[Useful Notations and Glossary](#useful-notations-and-glossary)**: Familiarize yourself with the terms and symbols used throughout this guide.
- **[Navigating the GUI](#navigating-the-gui)**: Visually learn to navigate around the command box and those handy contact cards.
- **[Features](#features)**: Dive into the exciting world of features we've brewed up just for you.


**Ready to Roll?** Skip over to **[Quick Start](#quick-start)** for the no-fuss, easy-peasy steps to download TAPro and get ready for
Expand All @@ -54,7 +55,7 @@ action.
- **[Delete Student](#deleting-a-student-delstu)**: Time to say goodbye? Remove a student from your list with `delstu`.
- **[Clear](#clearing-all-entries-clear)**: Need to wipe the slate clean? `clear` does just that.

**Need a quick TAPro refresher?** Our [Command Summary](#command-summary) is like the TAPro bible—short, sweet, and to the point.
**Need a quick TAPro refresher?** Our **[Command Summary](#command-summary)** is like the TAPro bible—short, sweet, and to the point.

Stumbled upon a hurdle or just curious? Swing by our **[FAQ](#faq)** where we tackle all your burning questions and offer
nuggets of wisdom for a smooth TAPro journey.
Expand Down Expand Up @@ -359,6 +360,8 @@ Sets the course code in question.

The course code is shown at the top of TAPro's main window.

Course code must be in the format "XX1234Y", where Y is optional.

<box type="definition" icon=":fa-solid-spell-check:" light>

**Format: `setcrs COURSE_CODE`**
Expand All @@ -370,6 +373,12 @@ Course codes are case-insensitive.

</box>

<box type="info" light>

Course codes must start with a prefix of 2 letters.

</box>

<box type="success" light>

**#g#Examples:##**
Expand All @@ -382,7 +391,7 @@ Course codes are case-insensitive.

<box type="success" light>

**Screenshots of using the `help` command:**
**Screenshots of using the `setcrs` command:**

<span class="semi-bold">#g#Before running `setcrs` command:##</span>

Expand Down
Binary file modified docs/images/ug-screenshots/help.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.

0 comments on commit 80128e9

Please sign in to comment.