Skip to content

Commit

Permalink
Merge branch 'master' into updated-lesson-class
Browse files Browse the repository at this point in the history
  • Loading branch information
justinlengch committed Apr 3, 2024
2 parents 81c4fec + c579d87 commit 985b026
Show file tree
Hide file tree
Showing 10 changed files with 76 additions and 29 deletions.
84 changes: 58 additions & 26 deletions docs/UserGuide.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,24 +4,51 @@
pageNav: 3
---

# AB-3 User Guide
# TutorTrack User Guide

AddressBook Level 3 (AB3) is a **desktop app for managing contacts, optimized for use via a Line Interface** (CLI) while still having the benefits of a Graphical User Interface (GUI). If you can type fast, AB3 can get your contact management tasks done faster than traditional GUI apps.
TutorTrack is a **desktop app for tutors to manage their students and scheduled classes, optimized for use via a Line Interface** (CLI) while still having the benefits of a Graphical User Interface (GUI). If you can type fast, TutorTrack can get your contact management tasks done faster than traditional GUI apps.

<!-- * Table of Contents -->
### What is in this user guide
- Quick start
- Features
- Help : Viewing help
- Add : Adding a student
- List : Listing all students
- Edit : Editing a student
- Find : Finding a student
- Delete : Deleting a student
- Clear : Clearing all entries
- Exit : Exiting the program
- Saving data
- Editing the data file
- Archiving data files
- FAQs
- Known issues
- Command summary

<page-nav-print />

### How to use this guide
**Navigation** : Use the table of contents to find the section you are looking for. </br>

**Features** : Each feature and what they do are listed with their commands for you to understand what our app can do. </br>

**Examples** : Under each feature, examples of commands and ui are given for you to better understand how the app should work.</br>

**Getting started** : For first time users, refer to the "Quick start" segment to start up the app for the first time

--------------------------------------------------------------------------------------------------------------------

## Quick start

1. Ensure you have Java `11` or above installed in your Computer.

1. Download the latest `addressbook.jar` from [here](https://github.com/se-edu/addressbook-level3/releases).
1. Download the latest `TutorTrack.jar` from [here](https://github.com/se-edu/addressbook-level3/releases).

1. Copy the file to the folder you want to use as the _home folder_ for your AddressBook.

1. Open a command terminal, `cd` into the folder you put the jar file in, and use the `java -jar addressbook.jar` command to run the application.<br>
1. Open a command terminal, `cd` into the folder you put the jar file in, and use the `java -jar TutorTrack.jar` command to run the application.<br>
A GUI similar to the below should appear in a few seconds. Note how the app contains some sample data.<br>
![Ui](images/Ui.png)

Expand Down Expand Up @@ -52,10 +79,10 @@ AddressBook Level 3 (AB3) is a **desktop app for managing contacts, optimized fo
e.g. in `add n/NAME`, `NAME` is a parameter which can be used as `add n/John Doe`.

* Items in square brackets are optional.<br>
e.g `n/NAME [t/TAG]` can be used as `n/John Doe t/friend` or as `n/John Doe`.
e.g `n/NAME [l/LESSON]` can be used as `n/John Doe l/Physics|2024-05-01|09:00` or as `n/John Doe`.

* Items with ``​ after them can be used multiple times including zero times.<br>
e.g. `[t/TAG]…​` can be used as ` ` (i.e. 0 times), `t/friend`, `t/friend t/family` etc.
e.g. `[l/LESSON]…​` can be used as ` ` (i.e. 0 times), `l/Physics|2024-05-01|09:00`, `l/Maths|2024-05-03|10:30 l/Biology|2024-05-05|11:00` etc.

* Parameters can be in any order.<br>
e.g. if the command specifies `n/NAME p/PHONE_NUMBER`, `p/PHONE_NUMBER n/NAME` is also acceptable.
Expand All @@ -79,39 +106,42 @@ Format: `help`

Adds a person to the address book.

Format: `add n/NAME p/PHONE_NUMBER e/EMAIL a/ADDRESS [t/TAG]…​`
Format: `add n/NAME p/PHONE_NUMBER e/EMAIL a/ADDRESS s/SUBJECT [l/LESSON]…​`

<box type="tip" seamless>

**Tip:** A person can have any number of tags (including 0)
**Tip:** A person can have any number of lessons (including 0)
</box>

Examples:
* `add n/John Doe p/98765432 e/johnd@example.com a/John street, block 123, #01-01`
* `add n/Betsy Crowe t/friend e/[email protected] a/Newgate Prison p/1234567 t/criminal`
* `add n/John Doe p/84920491 e/rena@gmail.com a/RVRC s/Physics`
![img.png](img.png)

### Listing all persons : `list`

Shows a list of all persons in the address book.

Format: `list`

What you should see:
![img_1.png](img_1.png)

### Editing a person : `edit`

Edits an existing person in the address book.

Format: `edit INDEX [n/NAME] [p/PHONE] [e/EMAIL] [a/ADDRESS] [t/TAG]…​`
Format: `edit INDEX [n/NAME] [p/PHONE] [e/EMAIL] [a/ADDRESS] [l/LESSON]…​`

* 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, the existing tags of the person will be removed i.e adding of tags is not cumulative.
* You can remove all the person’s tags by typing `t/` without
specifying any tags after it.
* When editing lessons, the existing lessons of the person will be removed i.e adding of lessons is not cumulative.
* You can remove all the person’s lessons by typing `t/` without
specifying any lessons 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.
* `edit 1 a/Yale-nus` Edits the address of the first person to be `Cinnamon College` and clears all existing lessons.
![img_2.png](img_2.png)

### Locating persons by name: `find`

Expand All @@ -127,9 +157,9 @@ Format: `find KEYWORD [MORE_KEYWORDS]`
e.g. `Hans Bo` will return `Hans Gruber`, `Bo Yang`

Examples:
* `find John` returns `john` and `John Doe`
* `find alex david` returns `Alex Yeoh`, `David Li`<br>
![result for 'find alex david'](images/findAlexDavidResult.png)
* `find Sherlock Jessica` returns `Sherlock` `Jessica` <br>
![img_3.png](img_3.png)


### Deleting a person : `delete`

Expand All @@ -142,12 +172,14 @@ Format: `delete INDEX`
* The index **must be a positive integer** 1, 2, 3, …​

Examples:
* `list` followed by `delete 2` deletes the 2nd person in the address book.
* `find Betsy` followed by `delete 1` deletes the 1st person in the results of the `find` command.
* `list` followed by `delete 2` deletes the 2nd student in TutorTrack.
![img_4.png](img_4.png)
* `find Jessica Jane` followed by `delete 1` deletes the 1st person in the results of the `find` command.
* ![img_5.png](img_5.png)

### Clearing all entries : `clear`

Clears all entries from the address book.
Clears all entries from TutorTrack.

Format: `clear`

Expand All @@ -159,11 +191,11 @@ Format: `exit`

### Saving the data

AddressBook data are saved in the hard disk automatically after any command that changes the data. There is no need to save manually.
TutorTrack data are saved in the hard disk automatically after any command that changes the data. There is no need to save manually.

### Editing the data file

AddressBook 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.
TutorTrack 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.

<box type="warning" seamless>

Expand Down Expand Up @@ -195,10 +227,10 @@ _Details coming soon ..._

Action | Format, Examples
-----------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------
**Add** | `add n/NAME p/PHONE_NUMBER e/EMAIL a/ADDRESS [t/TAG]…​` <br> e.g., `add n/James Ho p/22224444 e/[email protected] a/123, Clementi Rd, 1234665 t/friend t/colleague`
**Add** | `add n/NAME p/PHONE_NUMBER e/EMAIL a/ADDRESS s/SUBJECT [l/LESSON]…​` <br> e.g., `add n/James Ho p/22224444 e/[email protected] a/123, Clementi Rd, 1234665 s/Maths l/Maths|2024-05-03|10:30`
**Clear** | `clear`
**Delete** | `delete INDEX`<br> e.g., `delete 3`
**Edit** | `edit INDEX [n/NAME] [p/PHONE_NUMBER] [e/EMAIL] [a/ADDRESS] [t/TAG]…​`<br> e.g.,`edit 2 n/James Lee e/[email protected]`
**Edit** | `edit INDEX [n/NAME] [p/PHONE_NUMBER] [e/EMAIL] [a/ADDRESS] [l/LESSONS]…​`<br> e.g.,`edit 2 n/James Lee e/[email protected]`
**Find** | `find KEYWORD [MORE_KEYWORDS]`<br> e.g., `find James Jake`
**List** | `list`
**Help** | `help`
Binary file added docs/img.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/img_1.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/img_2.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/img_3.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/img_4.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/img_5.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
2 changes: 1 addition & 1 deletion src/main/java/seedu/address/model/student/Lesson.java
Original file line number Diff line number Diff line change
Expand Up @@ -163,6 +163,6 @@ public int hashCode() {
* Format state as text for viewing.
*/
public String toString() {
return '[' + value + ']';
return this.subject + " " + this.date.toString() + " " + this.time;
}
}
4 changes: 2 additions & 2 deletions src/main/java/seedu/address/ui/StudentCard.java
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@ public StudentCard(Student student, int displayedIndex) {
subject.setText(student.getSubject().value);
remark.setText(student.getRemark().value);
student.getLessons().stream()
.sorted(Comparator.comparing(Lesson::getLessonValue))
.forEach(lesson -> lessons.getChildren().add(new Label(lesson.getLessonValue())));
.sorted(Comparator.comparing(Lesson::getLessonValue)).filter(lesson -> lesson.getLessonStatus() == 0)
.forEach(lesson -> lessons.getChildren().add(new Label(lesson.toString())));
}
}
15 changes: 15 additions & 0 deletions src/test/java/seedu/address/model/student/LessonTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -65,4 +65,19 @@ public void equals() {
String differentLesson = "Science";
assertFalse(lesson.equals(new Lesson(differentLesson, validDate, validTime)));
}

@Test
public void getLessonStatusIsValid() {
Lesson lesson1 = new Lesson("Math|01-01-2023|09:00|0");
assertEquals(lesson1.getLessonStatus(), 0);

Lesson lesson2 = new Lesson("Math|01-01-2023|09:00|1");
assertEquals(lesson2.getLessonStatus(), 1);
}

@Test
public void toStringTest() {
Lesson lesson = new Lesson("Math|01-01-2023|09:00|0");
assertEquals(lesson.toString(), "Math 2023-01-01 09:00");
}
}

0 comments on commit 985b026

Please sign in to comment.