Skip to content

Commit

Permalink
Merge branch 'master' into branch-UG-update3
Browse files Browse the repository at this point in the history
  • Loading branch information
raydenlim authored Nov 10, 2023
2 parents b43ee91 + de23508 commit a29edea
Show file tree
Hide file tree
Showing 24 changed files with 204 additions and 142 deletions.
1 change: 1 addition & 0 deletions docs/AboutUs.md
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,7 @@ You can reach us at the email `seer[at]comp.nus.edu.sg`

<img src="images/wesho1107.png" width="200px">

[[homepage](http://linkedin.com/in/wesleyhojiacheng/)]
[[github](http://github.com/wesho1107)]
[[portfolio](team/wesho1107.md)]

Expand Down
50 changes: 13 additions & 37 deletions docs/DeveloperGuide.md
Original file line number Diff line number Diff line change
Expand Up @@ -206,53 +206,29 @@ Below is a class diagram describing the implementation of `Task` and its respect
**Alternative 2:** `isDone` Boolean for Task Completion.
- Cons: Only allows for a binary state, i.e., either the task is done or not.

### Grades
The Grade component consists of the following set of features: Edit Grade, Delete Grade and View Grade.
### Assignments
The Assignment component consists of the following set of features: View Assignments, Edit Grade, Delete Grade, Edit Comment and Delete Comment.

#### The Grade class
The Grade Class is made up of an `actualGrade`, `maxGrade`, `isGraded`, and a set of getter methods that corresponds to most of these fields.
#### The Assignment class
The Assignment Class is made up of an `assignmentName`, `grade`, `comment`, and a set of getter methods that corresponds to most of these fields.

Below is a class diagram describing the implementation of `Grade` and its respective fields.
Below is a class diagram describing the implementation of `Assignment` and its respective fields.

![Grade Class UML](images/GradeClass.png)
![Assignment Class UML](images/AssignmentClass.png)

#### Design Considerations:
**Aspect: How the assignment a grade is being given to is determined:**
**Aspect: How an assignment in being assigned to a person:**

**Alternative 1 (current choice):** `Grade` is a field in the `Assignment` it is being graded to.
- Pros: This choice makes it easier to ensure that each assignment only has one grade, and also makes it easier to manage multiple features related to an assignment.
- Cons: It requires additional time to add a grade to an assignment since the assignment needs to be obtained first.
**Alternative 1 (current choice):** `AssignmentMap` is a field in `Person` that contains `Assignment` instances which are assigned to that person.
- Pros: This choice makes it easier to ensure that each assignment is only being assigned to one person, and also makes it easier to manage multiple features related to an assignment.
- Cons: It requires additional time to access an assignment since the assignment needs to be obtained from the correct person first.

**Alternative 2:** `Assignment` is a field in the `Grade` being given to it.
- Cons: It requires more checks to be done to ensure that each assignment only has one Grade.
**Alternative 2:** Create a `PersonList` field in every `Assignment`, which contains `Person` instances.
- Cons: Every person related command will have to update `PersonList` in every `Assignment` instance.

**Alternative 3:** `Assignment` is a field in the `Grade` being given to it and vice versa.
**Alternative 3:** Create a `PersonList` field in every `Assignment`, and an `AssignmentMap` field in every `Person`.
- Cons: It increases coupling which increases the dependency of the classes.

### Comments
The Comment component consists of the following set of features: Edit Comment, Delete Comment and View Comment.

#### The Comment class
The Comment Class is made up of a `commentBody`, `isCommented`, and a set of getter methods that corresponds to most of these fields.

Below is a class diagram describing the implementation of `Comment` and its respective fields.

![Grade Class UML](images/CommentClass.png)

#### Design Considerations:
**Aspect: How the comment a grade is being given to is determined:**

**Alternative 1 (current choice):** `Comment` is a field in the `Assignment` it is being graded to.
- Pros: This choice makes it easier to ensure that each assignment only has one comment, and also makes it easier to manage multiple features related to an assignment.
- Cons: It requires additional time to add a comment to an assignment since the assignment needs to be obtained first.

**Alternative 2:** `Assignment` is a field in the `Comment` being given to it.
- Cons: It requires more checks to be done to ensure that each assignment only has one Comment.

**Alternative 3:** `Assignment` is a field in the `Comment` being given to it and vice versa.
- Cons: It increases coupling which increases the dependency of the classes.


### GradedTest
The GradedTest component is responsible for tracking and managing graded test scores of individuals. It includes features such as creating and updating graded test scores.

Expand Down
72 changes: 38 additions & 34 deletions docs/UserGuide.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,9 +17,9 @@ _Say goodbye to chaos and hello to an organized and efficient classroom experien

F.A.K.E.J.A.R.V.I.S. is your **friendly companion for efficient task and administrative management**, allowing you to excel as a CS1101S Avenger. With this tool, you can effortlessly track assignment gradings, monitor student participation, and seamlessly plan tutorials, consultations, and mastery checks.

As Avengers ourselves, we understand the importance of managing both our time and our students effectively. F.A.K.E.J.A.R.V.I.S. is the one-stop solution to streamlining your workload, making your life easier. It is designed to empower you with the benefits of a Command-Line Interface(CLI), all while preserving the advantages of having a Graphical User Interface(GUI).
As Avengers ourselves, we understand the importance of managing both our time and our students effectively. F.A.K.E.J.A.R.V.I.S. is the one-stop solution to streamlining your workload, making your life easier. It is designed to empower you with the benefits of a Command-Line Interface (CLI), all while preserving the advantages of having a Graphical User Interface (GUI).

If you are new to CLI, or unfamiliar with the commands F.A.K.E.J.A.R.V.I.S. offers and need assistance, don't worry! This UserGuide is your trusted assistant, and will guide you through every step and ensure that you can unlock the full potential of F.A.K.E.J.A.R.V.I.S. Let's get started!
If you are new to CLI, or unfamiliar with the commands F.A.K.E.J.A.R.V.I.S. offers and need assistance, don't worry! This User Guide is your trusted assistant, and will guide you through every step and ensure that you can unlock the full potential of F.A.K.E.J.A.R.V.I.S. Let's get started!

<br>
<br>
Expand All @@ -35,9 +35,11 @@ If you are new to CLI, or unfamiliar with the commands F.A.K.E.J.A.R.V.I.S. offe
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1.2 [How to use the User Guide](#how-to-use-the-user-guide)

&nbsp;2 [Graphical User Interface](#graphical-user-interface)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2.1 [Task Card](#task-card)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2.2 [Consultation Card](#consultation-card)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2.3 [Session Card](#session-card)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2.1 [Student Card](#student-card)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2.2 [Task Card](#task-card)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2.3 [Assignment Cards](#assignment-cards)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2.4 [Session Card](#session-card)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2.5 [Consultation Card](#consultation-card)

&nbsp;3 [Quick Start](#quick-start)

Expand Down Expand Up @@ -157,23 +159,24 @@ The F.A.K.E.J.A.R.V.I.S. User Guide employs a variety of visual cues to enhance

## Graphical User Interface

![UI with Annotations](images/newUiWithAnnotations.png)
![UI with Annotations](images/UiWithAnnotations.png)

F.A.K.E.J.A.R.V.I.S.'s graphical user interface (GUI) consists of 4 main components:
F.A.K.E.J.A.R.V.I.S.'s graphical user interface (GUI) consists of 6 main components:
* Menu Bar
* Tabs
* Command Box
* Command Result Display
* Graphical Result Display
* Current Panel
* Tabs

You may enter your commands in the **Command Box** and then press Enter to execute them. The resulting message will be shown in the **Command Result Display** box.

The following describes what each panel contains:
* **Student List Panel:** Displays your students' details
* **Task List Panel:** Displays your tasks' details
* **Assignment List Panel:** Displays your students' assignment details
* **Sessions Panel:** Displays your sessions' details
* **Consultations Panel:** Displays your consultations' details
You may enter your commands in the **Command Box** and then press Enter to execute them. The resulting message will be shown in the **Command Result Display** box, and in **Graphical Result Display** if needed.

The following describes what each tab displays on the **Current Panel**:
* **Student Tab:** Displays your students list and students' details.
* **Tasks Tab:** Displays your tasks list and tasks' details.
* **Assignments Tab:** Displays your assignments list.
* **Sessions Tab:** Displays your sessions list and sessions' details.
* **Consultations Tab:** Displays your consultations list and consultations' details.

<br>
<br>
Expand All @@ -190,8 +193,8 @@ The following describes what each panel contains:
<br>
<br>

### Assignment Card
![Assignment Card with Annotations](images/AssignmentCardAnnotated.png)
### Assignment Cards
![Assignment Card with Annotations](images/AssignmentsAnnotated.png)

<br>
<br>
Expand Down Expand Up @@ -261,19 +264,19 @@ The following describes what each panel contains:

**The commands in the user guide adopt the following conventions:**<br>

* Words in `UPPER_CASE` are the parameters to be supplied by the user.<br>
* Words in `UPPER_CASE` are the **parameters** to be supplied by the user.<br>
e.g. in `addtask tn/TASK_NAME`, `TASK_NAME` is a parameter which can be specified, such as `addtask tn/Do User Guide`.


* Items in square brackets are optional.<br>
* Items in square brackets are **optional**.<br>
e.g `tn/TASK_NAME [td/do before feedback]` can be used as `tn/Do User Guide td/do before feedback` or as `tn/Do user Guide`.


* Items with ``​ after them can be used multiple times including zero times.<br>
* Items with ``​ after them can be used **multiple times** including zero times.<br>
e.g. `[n/NAME]…​` can be used as ` ` (i.e. 0 times), `n/John Doe`, `n/John Doe n/ Foo Bar` etc.


* Parameters can be in any order.<br>
* Parameters can be **in any order**.<br>
e.g. if the command specifies `tn/TASK_NAME td/TASK_DESCRIPTION`, `td/TASK_DESCRIPTION tn/TASK_NAME` is also acceptable.


Expand Down Expand Up @@ -340,7 +343,7 @@ This section describes commands that fit in no special category.

#### 🔀Switching between different tabs: `tab`

You can navigate between different tabs in F.A.K.E.J.A.R.V.I.S.
You can navigate between different tabs in F.A.K.E.J.A.R.V.I.S. to view different lists on the current panel.

Format: `tab TAB_INDEX`

Expand Down Expand Up @@ -495,7 +498,8 @@ Format: `add n/NAME p/PHONE_NUMBER e/EMAIL th/TELEGRAM_HANDLE [t/TAG]…​ [gt/

#### 👀Listing All Students : `list`

You can list out all students in F.A.K.E.J.A.R.V.I.S. if you need to view the complete student roster.
You can list out all students in F.A.K.E.J.A.R.V.I.S. if you need to view the complete student list.

Format: `list`

<br>
Expand Down Expand Up @@ -1027,7 +1031,7 @@ This section describes commands that help you manage your students' assignments.

#### 👀Viewing a List of Assignments: `viewassignments`

You can view a list of assignment grades and comments if you want to assess and review the feedback provided for each assignment.
You can view the list of assignment grades and comments of a student if you want to assess and review the feedback provided for each assignment.

Format: `viewassignments STUDENT_INDEX`

Expand Down Expand Up @@ -1506,7 +1510,7 @@ This section describes commands that help you manage your consultations with stu
<br>

#### 📝Creating a Consultation: `createconsult`
You can create a consultation for any upcoming consultations if you need to schedule or document consultations in the system.
You can create a consultation with your students if you need to schedule or document consultations in the system.

Format: `createconsult d/DATE tt/TIME n/STUDENT_NAME…`

Expand Down Expand Up @@ -1536,7 +1540,7 @@ Format: `createconsult d/DATE tt/TIME n/STUDENT_NAME…`
> **Input:** `createconsult d/30/10/2023 tt/12:30 n/Alex Yeoh` Creates a consultation for Alex Yeoh on 2023-10-30 12:30.
>
> **Output:**
>`New consultation added: ; Date: 2023-10-30; Time: 12:30; Students: Alex Yeoh`
>`New consultation added: Date: 2023-10-30; Time: 12:30; Students: Alex Yeoh`
>
> [IMAGE COMING SOON]
Expand All @@ -1546,7 +1550,7 @@ Format: `createconsult d/DATE tt/TIME n/STUDENT_NAME…`
> **Input:** `createconsult d/30/09/2023 tt/15:30 n/Alex Yeoh n/Betsy Crower n/David Li` Creates a consultation for Alex Yeoh, Betsy Crower and David Li on 2023-09-30 15:30.
>
> **Output:**
>`New consultation added: ; Date: 2023-09-30; Time: 15:30; Students: Betsy CrowerDavid LiAlex Yeoh`
>`New consultation added: Date: 2023-09-30; Time: 15:30; Students: Betsy Crower, David Li, Alex Yeoh`
>
> [IMAGE COMING SOON]
Expand All @@ -1555,7 +1559,7 @@ Format: `createconsult d/DATE tt/TIME n/STUDENT_NAME…`
<br>

#### 📝️Adding students to a consultation: `addtoconsult`
You can add your student(s) into a consultation slot if you need to schedule or allocate specific individuals for your consultation.
You can add your student(s) into a consultation slot if you need to assign specific individuals for your consultation.

Format: `addtoconsult CONSULTATION_INDEX n/STUDENT_NAME…`

Expand Down Expand Up @@ -1586,7 +1590,7 @@ Format: `addtoconsult CONSULTATION_INDEX n/STUDENT_NAME…`
> **Input:** `addtoconsult 2 n/Betsy Crower` Adds Betsy Crower to the 2nd consultation on the list.
>
> **Output:**
>`New student(s) added to consultation at index ; Date: 2023-11-01; Time: 10:00; Students: Betsy CrowerAlex Yeoh: ; Date: 2023-11-01; Time: 10:00; Students: Betsy CrowerAlex Yeoh`
>`New student(s) added to consultation at index 2: Date: 2023-11-01; Time: 10:00; Students: Betsy Crower, Alex Yeoh`
>
> [IMAGE COMING SOON]
Expand All @@ -1596,7 +1600,7 @@ Format: `addtoconsult CONSULTATION_INDEX n/STUDENT_NAME…`
> **Input:** `addtoconsult 1 n/David Li n/Roy Balakrishnan` Adds David Li and Roy Balakrishnan to the 1st consultation in the list.
>
> **Output:**
>`New student(s) added to consultation at index ; Date: 2023-11-11; Time: 11:11; Students: Bernice YuDavid LiAlex YeohRoy Balakrishnan: ; Date: 2023-11-11; Time: 11:11; Students: Bernice YuDavid LiAlex YeohRoy Balakrishnan`
>`New student(s) added to consultation at index 1: Date: 2023-11-11; Time: 11:11; Students: Bernice Yu, David Li, Alex Yeoh, Roy Balakrishnan`
>
> [IMAGE COMING SOON]
Expand All @@ -1606,7 +1610,7 @@ Format: `addtoconsult CONSULTATION_INDEX n/STUDENT_NAME…`

#### ❌Removing Students from a Consultation: `removefromconsult`

You can remove your student(s) from a consultation if you need to reschedule or cancel your student's participation in the scheduled consultation.
You can remove your student(s) from a consultation if you need to cancel your student's participation in the scheduled consultation.

Format: `removefromconsult CONSULTATION_INDEX n/STUDENT_NAME…`

Expand Down Expand Up @@ -1636,7 +1640,7 @@ Format: `removefromconsult CONSULTATION_INDEX n/STUDENT_NAME…`
> **Input:** `removefromconsult 2 n/Betsy Crower` Removes Betsy Crower from the 2nd consultation in the list.
>
> **Output:**
>`Student(s) removed from consultation at index ; Date: 2023-11-01; Time: 10:00; Students: Alex Yeoh: ; Date: 2023-11-01; Time: 10:00; Students: Alex Yeoh`
>`Student(s) removed from consultation at index 2: Date: 2023-11-01; Time: 10:00; Students: Alex Yeoh`
>
> [IMAGE COMING SOON]
Expand Down Expand Up @@ -1674,7 +1678,7 @@ Format: `deleteconsult CONSULTATION_INDEX`
> **Input:** `deleteconsult 1` Deletes the 1st consultation in the consultation list.
>
> **Output:**
>`Deleted Consultation: ; Date: 2023-11-11; Time: 11:11; Students: Bernice YuAlex YeohRoy Balakrishnan`
>`Deleted Consultation: Date: 2023-11-11; Time: 11:11; Students: Bernice Yu, Alex Yeoh, Roy Balakrishnan`
>
> [IMAGE COMING SOON]
Expand Down
52 changes: 52 additions & 0 deletions docs/diagrams/AssignmentClass.puml
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
@startuml
skinparam arrowThickness 1.1
skinparam classBackgroundColor LOGIC_COLOR
skinparam classAttributeIconSize 0

class AssignmentMap {
-assignments: ObservableMap<AssignmentName, Assignment>
+setAssignmentMap(): void
+createUpdatedMap(): AssignmentMap
+contains(): boolean
+get(): Assignment
}

class Assignment {
-assignmentName: AssignmentName
-grade: Grade
-comment: Comment
+getName(): AssignmentName
+getGrade(): Grade
+maxGrade(): String
+gradingStatus(): boolean
+getComment(): Comment
+commentStatus(): boolean
+copyAssignment(): Assignment
}

class AssignmentName {
-assignmentName: String
+toString(): String
}

class Grade {
-actualGrade: String
-maxGrade: String
-isGraded: boolean
+getMax(): String
+getIsGraded(): boolean
+ungrade(): Grade
}

class Comment {
-commentBody: String
-isCommented: boolean
+getIsCommented(): boolean
+toString(): String
}

AssignmentMap o-- "*" Assignment: assignment
Assignment o-- "1" AssignmentName: assignmentName
Assignment o-- "1" Grade: grade
Assignment o-- "1" Comment: comment
@enduml
20 changes: 0 additions & 20 deletions docs/diagrams/CommentClass.puml

This file was deleted.

23 changes: 0 additions & 23 deletions docs/diagrams/GradeClass.puml

This file was deleted.

Binary file removed docs/images/AssignmentCardAnnotated.png
Binary file not shown.
Binary file added docs/images/AssignmentsAnnotated.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 modified docs/images/ConsultationCardAnnotated.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 modified docs/images/SessionCardAnnotated.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 modified docs/images/StudentCardAnnotated.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 modified docs/images/TaskCardAnnotated.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 modified docs/images/Ui.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 modified docs/images/UiWithAnnotations.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 removed docs/images/newUiWithAnnotations.png
Binary file not shown.
2 changes: 1 addition & 1 deletion docs/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@

![Ui](images/Ui.png)

**F.A.K.E.J.A.R.V.I.S. is a desktop application for managing your life as a CS1101S Avenger.** While it has a GUI, most of the user interactions happen using a CLI (Command Line Interface).
**F.A.K.E.J.A.R.V.I.S. is a desktop application for managing your responsibilities as a CS1101S Avenger.** While it has a GUI, most of the user interactions happen using a CLI (Command Line Interface).

* If you are interested in using F.A.K.E.J.A.R.V.I.S., head over to the [_Quick Start_ section of the **User Guide**](UserGuide.html#quick-start).
* If you are interested about developing F.A.K.E.J.A.R.V.I.S., the [**Developer Guide**](DeveloperGuide.html) is a good place to start.
Expand Down
Loading

0 comments on commit a29edea

Please sign in to comment.