Skip to content

Commit

Permalink
Merge pull request #254 from Originalidk/branch-ppp-dg
Browse files Browse the repository at this point in the history
Update Ryan PPP and DG assignments
  • Loading branch information
Originalidk authored Nov 10, 2023
2 parents 1e995fd + 7b88588 commit 23d557c
Show file tree
Hide file tree
Showing 5 changed files with 113 additions and 88 deletions.
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
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.

56 changes: 48 additions & 8 deletions docs/team/originalidk.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,25 +8,65 @@ F.A.K.E.J.A.R.V.I.S. is a project to help CS1101S Avengers manage their time and

Below are my contributions to the project:

* **New Features**: To be added
* **New Features**: Added the ability to grade assignments
* What it does: enables users to grade student assignments, allowing for easy management of the Avenger's students' grades.
* Justification: This feature is important to our product as it helps Avengers to better keep track of their student's assignment scores. This fulfills F.A.K.E.J.A.R.V.I.S. purpose of being an all-in-one application as Avengers no longer need to go onto Source Academy to assess how their students are performing for missions or quests.
* Credits: No reuse of code or third-party libraries.


* **New Features**: Added the ability to delete assignment grades
* What it does: enables users to delete a grade from student assignments, allowing Avengers to delete assignment grades that were added accidentally.
* Justification: This feature is important to our product as it helps Avengers to delete the grade of students they might have accidentally graded.
* Credits: No reuse of code or third-party libraries.


* **New Features**: Added the ability to comment on assignments
* What it does: enables users to comment on student assignments, allowing Avengers to comment on their students' assignments
* Justification: This feature is important to our product as it helps Avengers to keep track of mistakes that their student's make. This enables them to better keep track of their students' strengths and weaknesses.
* Credits: No reuse of code or third-party libraries.


* **New Features**: Added the ability to delete comments from assignments
* What it does: enables users to delete comments from student assignments, allowing Avengers to delete comments that were added accidentally.
* Justification: This feature is important to our product as it helps Avengers to delete comments they might have accidentally made when commenting on their student's assignments.
* Credits: No reuse of code or third-party libraries.


* **New Features**: Added the ability to view a student's assignments
* What it does: enables users to view a student's assignment details, enabling Avengers to better keep track of each student's performance.
* Justification: This feature is important to our product as it helps Avengers to more easily assess each student's results for their missions and quests.
* Credits: No reuse of code or third-party libraries.

* **Code contributed**: [RepoSense](https://nus-cs2103-ay2324s1.github.io/tp-dashboard/?search=Originalidk&breakdown=true)

* **Project management**: To be added
* **Project management**:
* Managed release `v1.3b`
* Created some GitHub issues


* **Enhancements to existing features**: To be added
* **Enhancements to existing features**:
* Initialised a list of all Source Academy assignments for each newly created student so that Avengers do not have to manually add them.


* **Documentation**:
* User Guide: To be added
* User Guide:
* Added documentation for the Assignment Management Section

* Developer Guide: To be added
* Developer Guide:
* Added implementation details of the `editgrade`, `deletegrade`, `editcomment`, `deletecomment` and `viewassignments` features.
* Designed the class diagram for `Grade`, `Comment` and `Assignment`.


* **Review/mentoring contributions**: To be added
* **Review/mentoring contributions**:
* Reviewed and approved pull requests

* **Tools**: To be added
* **Tools**:
* Java
* IntelliJ
* Git
* FXML
* PlantUML

* **Contributions beyond the project team**: To be added
* **Contributions beyond the project team**:
* Found 15 bugs during the PE-D which helped to improve another team's product.

0 comments on commit 23d557c

Please sign in to comment.