From 0ca18a4c7884573b6ebd3ad9b6855fbb4df1a320 Mon Sep 17 00:00:00 2001 From: Titus Chew <39845485+tituschewxj@users.noreply.github.com> Date: Mon, 15 Apr 2024 19:02:27 +0800 Subject: [PATCH] Update DG and DG Let's - Improve pages - Fix setcrs note --- docs/DeveloperGuide.md | 55 ++++++++++++++++++++++++----------------- docs/UserGuide.md | 56 ++++++++++++++++++++++++++++++++++-------- 2 files changed, 78 insertions(+), 33 deletions(-) diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index 4329dcb400f..8e37eafef0c 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -186,6 +186,13 @@ While a command is named as `XYZPersonCommandParser` internally (where `XYZ` is * stores a `CourseName` object that represent a Course code. This is exposed to the outside as a `ReadOnlyCourseName` object. * does not depend on any of the other three components (as the `Model` represents data entities of the domain, they should make sense on their own without depending on other components) + + +While `Person` objects are used internally, it represents a student externally in TAPro. + + +{{ newPageBetween }} + **An alternative model:** @@ -196,10 +203,7 @@ An alternative (arguably, a more OOP) model is given below. It has a `Tag` list - - -While `Person` objects are used internally, it represents a student externally in TAPro. - +{{ newPageBetween }} ### Storage component @@ -379,6 +383,8 @@ By having caching of intermediate results, it reduces the need to recompute cert Lazy evaluation is carried out in `AttributeTrie`, where the new `Trie` was lazily evaluated. It means that the `Trie` was only generated when the autocompletion of a parameter value doesn't have an `AttributeTrie` already present. +
+ #### Future improvements to the autocomplete feature **Improve detection on whether attributes are actually modified before updating their `AttributeTrie`s:** @@ -439,6 +445,8 @@ be saved in the `addressBookStateList`, and the `currentStatePointer` is shifted

+{{ newPageBetween }} + **Step 3.** The user executes `addstu n/David …​` to add a new person. The `addstu` command also calls `Model#commitAddressBook()`, causing another modified contact book state to be saved into the `addressBookStateList`. @@ -447,12 +455,14 @@ be saved in the `addressBookStateList`, and the `currentStatePointer` is shifted **Note:** If a command fails its execution, it will not call `Model#commitAddressBook()`, so the contact book state will not be saved into the `addressBookStateList`. -

+
**Step 4.** The user now decides that adding the person was a mistake, and decides to undo that action by executing the `undo` command. The `undo` command will call `Model#undoAddressBook()`, which will shift the `currentStatePointer` once to the left, pointing it to the previous contact book state, and restores the contact book to that state.

+{{ newPageBetween }} + **Step 5.** The user wants to set the course name. He enters the command `setcrs CS2103T`, causing the course name to appear on the main window's title. @@ -485,6 +495,8 @@ The `redo` command does the opposite — it calls `Model#redoAddressBook()`,
+{{ newPageBetween }} + **Step 6.** The user then decides to execute the command `list`. Commands that do not modify the contact book, such as `list`, will usually not call `Model#commitAddressBook()`, `Model#undoAddressBook()` or `Model#redoAddressBook()`. Thus, the `addressBookStateList` remains unchanged.

@@ -507,6 +519,8 @@ The following activity diagram summarizes what happens when a user executes a ne * Pros: Easy to implement. * Cons: May have performance issues in terms of memory usage. +
+ * **Alternative 2:** Individual command knows how to undo/redo by itself. * Pros: Will use less memory (e.g. for `delstu`, just save the person being deleted). @@ -903,17 +917,17 @@ For all use cases below, the **System** is TAPro and the **Actor** is the user, ### Glossary -{{ macros.definitionBox('TAPro', 'The name of our product') }} -{{ macros.definitionBox('Mainstream OS', 'Windows, Linux, Unix, MacOS') }} +{{ macros.definitionBox('ASCIIbetical Order', 'An ordering where numbers and most punctuations are before letters, and uppercase letters before lowercase letters.') }} +{{ macros.definitionBox('API', 'Application Programming Interface') }} +{{ macros.definitionBox('CLI', 'Command Line Interface') }} {{ macros.definitionBox('CS', 'Computer Science') }} +{{ macros.definitionBox('GUI', 'Graphical User Interface') }} +{{ macros.definitionBox('Mainstream OS', 'Windows, Linux, Unix, MacOS') }} {{ macros.definitionBox('NUS', 'National University of Singapore') }} -{{ macros.definitionBox('TA', 'Teaching Assistant') }} {{ macros.definitionBox('NUSNet ID', 'A unique identifier for each student in NUS') }} -{{ macros.definitionBox('API', 'Application Programming Interface') }} -{{ macros.definitionBox('CLI', 'Command Line Interface') }} +{{ macros.definitionBox('TA', 'Teaching Assistant') }} +{{ macros.definitionBox('TAPro', 'The name of our product') }} {{ macros.definitionBox('UI', 'User Interface') }} -{{ macros.definitionBox('GUI', 'Graphical User Interface') }} -{{ macros.definitionBox('ASCIIbetical Order', 'An ordering where numbers and most punctuations are before letters, and uppercase letters before lowercase letters.') }} {{ newPage }} @@ -973,7 +987,6 @@ testers are expected to do more *exploratory* testing. Expected: The most recent window size and location is retained. -
{{ newPageBetween }} ### Adding a student @@ -1016,7 +1029,7 @@ addstu n/Mary Jane p/91234911 e/janemary@example.com nn/E0123457 m/Biology t/fri shown in the result message panel. -
+{{ newPageBetween }} ### Editing a student @@ -1047,7 +1060,6 @@ 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. -
{{ newPageBetween }} ### Deleting a student @@ -1089,7 +1101,7 @@ delstu E0123456 ``` -
+{{ newPageBetween }} ### Finding a student @@ -1120,7 +1132,6 @@ find ``` -
{{ newPageBetween }} ### Marking a student's attendance @@ -1167,7 +1178,6 @@ mark E0123456 1 ``` -
{{ newPageBetween }} ### Unmarking a student's attendance @@ -1215,7 +1225,7 @@ unmark E0123456 1 ``` -
+{{ newPageBetween }} ### Setting the course name @@ -1243,7 +1253,6 @@ in upper or lower case, `YYYY` can be any 4-digit number and `Z` is optional. Expected: TAPro's main window's title contains the course code `CS2103` provided. -
{{ newPageBetween }} ### Autocompleting fields @@ -1291,7 +1300,7 @@ edit 1 m/Computer Science ``` -
+{{ newPageBetween }} ### Retrieving previous successful commands @@ -1324,7 +1333,6 @@ mark nn/E0123456 wk/6 -
{{ newPageBetween }} ### Accessing help @@ -1345,7 +1353,8 @@ help Expected: The help window automatically pops up, giving further information about TAPro's commands. -
+ +{{ newPageBetween }} ### Clearing all data diff --git a/docs/UserGuide.md b/docs/UserGuide.md index 9bda4f53da2..bf2e94c754f 100644 --- a/docs/UserGuide.md +++ b/docs/UserGuide.md @@ -27,6 +27,7 @@ If you can type fast, TAPro can get your contact management and attendance takin
+ {{ newPage }} ## Navigating this User Guide @@ -173,6 +174,7 @@ Welcome to the TAPro GUI! 🎉 Here's a quick tour to help you get comfortable w TODO: Add a screenshot of the GUI with annotations +{{ newPage }} ## Quick start @@ -204,7 +206,8 @@ A GUI similar to the below image should appear in a few seconds. Note how the ap Main Window UI on first launch -
+ +{{ newPageBetween }} 5. Type a command in the command input box and press {{ macros.keyFormat('Enter') }} to execute it. @@ -333,6 +336,8 @@ The quick reference is meant for {{ macros.semiBold('fast and reliable') }} look The help window is resizable, so you can {{ macros.semiBold('easily reposition and resize') }} it to fit anywhere on your screen, exactly where you want it to be. +{{ newPageBetween }} + @@ -359,15 +364,15 @@ The help window is resizable, so you can {{ macros.semiBold('easily reposition a 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. - **Format: `setcrs COURSE_CODE`** +* 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. + Course codes are case-insensitive. @@ -376,7 +381,7 @@ Course codes are case-insensitive. -Course codes must start with a prefix of 2 letters. +Course code is meant for CS coded courses, hence only a prefix of two letters is allowed. @@ -386,10 +391,12 @@ Course codes must start with a prefix of 2 letters. * `setcrs cs2103t` -* `setcrs ST2334` +* `setcrs CS2030` +{{ newPageBetween }} + **Screenshots of using the `setcrs` command:** @@ -397,6 +404,7 @@ Course codes must start with a prefix of 2 letters. #g#Before running `setcrs` command:## before running set course command +

#g#After running `setcrs` command:## @@ -461,15 +469,18 @@ A student can have any number of tags, including 0. `bestFriend4Ever`, `colleague`, `Club` are valid tags, but `best friend`, `best-friend` are not valid tags.
+ **Adding multiple majors:** If a student is undertaking a double degree programme, you can use a comma to separate the disciplines in the `MAJOR` field. - #g#Example:## We can use `m/Computer Science, Mathematics` to indicate that a student has these two majors, Computer Science and Mathematics. + + +{{ newPageBetween }} @@ -490,6 +501,7 @@ If a student is undertaking a double degree programme, you can use a comma to se #g#Before running `addstu` command:## before running add student command +

#g#After running `addstu` command:## @@ -508,7 +520,7 @@ Shows a list of all persons in the contact book. **Format: `list`**
-Additional arguments after `list` will be simply ignored. +* Additional arguments after `list` will be simply ignored. @@ -517,6 +529,7 @@ Additional arguments after `list` will be simply ignored. #g#Before running `list` command:## before running list student command +

#g#After running `list` command:## @@ -571,6 +584,8 @@ Otherwise, TAPro will parse the input as adding multiple tags, which may lead to * `edit 2 n/Betsy Crower t/` Edits the name of the second student to be `Betsy Crower` and clears all existing tags.
+{{ newPageBetween }} + **Screenshots of using the `edit` command:** @@ -578,6 +593,7 @@ Otherwise, TAPro will parse the input as adding multiple tags, which may lead to #g#Before running `edit` command:## before running edit student command +

#g#After running `edit` command:## @@ -674,6 +690,8 @@ Both `KEYWORD` and `[MORE_KEYWORDS]…​` accept alphanumeric and special symbo
+{{ newPageBetween }} + **Screenshots of using the `find` command:** @@ -681,6 +699,7 @@ Both `KEYWORD` and `[MORE_KEYWORDS]…​` accept alphanumeric and special symbo #g#Before running `find` command:## before running find student command +

#g#After running `find` command:## @@ -713,6 +732,7 @@ Marks a student's attendance for a particular week. #g#Before running `mark` command:## before running mark student attendance command +

#g#After running `mark` command:## @@ -744,6 +764,7 @@ Unmarks a student's attendance for a particular week. #g#Before running `unmark` command:## before running unmark student attendance command +

#g#After running `unmark` command:## @@ -776,6 +797,8 @@ Deletes the specified student from the contact book. If you cannot remember your student's NUSNet ID, you could use `find Betsy` or `list` followed by `delstu nn/` to find and delete the student.
+{{ newPageBetween }} + **Screenshots of using the `delstu` command:** @@ -783,6 +806,7 @@ If you cannot remember your student's NUSNet ID, you could use `find Betsy` or ` #g#Before running `delstu` command:## before running delete student command +

#g#After running `delstu` command:## @@ -808,6 +832,7 @@ Clears all entries from the contact book. #g#Before running `clear` command:## before running clear TAPro command +

#g#After running `clear` command:## @@ -844,7 +869,7 @@ The autocomplete feature autocompletes a parameter or command, based on the curr {{ macros.definitionBox('Autocompletion', 'The autocomplete feature\'s suggested result(s).') }} -We can autocomplete both command names and parameters after their prefixes by pressing {{ macros.keyFormat('Tab') }}, when an autocompletion is available. +* We can autocomplete both command names and parameters after their prefixes by pressing {{ macros.keyFormat('Tab') }}, when an autocompletion is available. @@ -1077,6 +1102,8 @@ If you [edit the data file](#editing-the-data-file) into an invalid format, upon ## FAQ +
+ ### Transfering Data to Another Computer @@ -1086,6 +1113,8 @@ If you [edit the data file](#editing-the-data-file) into an invalid format, upon your current computer! Click `Yes` if are prompted to replace the existing `data` folder in your target computer. +{{ newPageBetween }} + ### Loading Data from Another Computer @@ -1096,6 +1125,8 @@ with the `data` folder from your otehr computer. Paste it in the same directory target computer. +{{ newPageBetween }} + ### Launching TAPro @@ -1139,6 +1170,8 @@ target computer. 4. Double-click on the script to launch TAPro. +{{ newPageBetween }} + ### Checking Java Version @@ -1147,6 +1180,8 @@ target computer. **A**: Open a command line and type `java -version`. If the command is not recognized, it means you do not have Java installed. You can install Java 11 using the Oracle guide [here](https://www.oracle.com/java/technologies/downloads/#java11). Alternatively, you can install the OpenJDK version. For macOS users, you may wish to follow the instructions [here](https://nus-cs2103-ay2324s1.github.io/website/admin/programmingLanguages.html). +{{ newPageBetween }} + ### Using TAPro @@ -1220,6 +1255,7 @@ Adding new tag(s) will replace the existing tag(s).
+{{ newPageBetween }} ### Saving More Time