diff --git a/docs/AboutUs.md b/docs/AboutUs.md index 9ab64323157..47015fca71d 100644 --- a/docs/AboutUs.md +++ b/docs/AboutUs.md @@ -57,6 +57,7 @@ You can reach us at the email `seer[at]comp.nus.edu.sg` +[[homepage](http://linkedin.com/in/wesleyhojiacheng/)] [[github](http://github.com/wesho1107)] [[portfolio](team/wesho1107.md)] diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index d7f98915fe0..040ccda057e 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -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. diff --git a/docs/UserGuide.md b/docs/UserGuide.md index a5f4760f7c0..5d336aa981d 100644 --- a/docs/UserGuide.md +++ b/docs/UserGuide.md @@ -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!

@@ -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       1.2 [How to use the User Guide](#how-to-use-the-user-guide)  2 [Graphical User Interface](#graphical-user-interface) -      2.1 [Task Card](#task-card) -      2.2 [Consultation Card](#consultation-card) -      2.3 [Session Card](#session-card) +      2.1 [Student Card](#student-card) +      2.2 [Task Card](#task-card) +      2.3 [Assignment Cards](#assignment-cards) +      2.4 [Session Card](#session-card) +      2.5 [Consultation Card](#consultation-card)  3 [Quick Start](#quick-start) @@ -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.

@@ -190,8 +193,8 @@ The following describes what each panel contains:

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

@@ -261,19 +264,19 @@ The following describes what each panel contains: **The commands in the user guide adopt the following conventions:**
-* Words in `UPPER_CASE` are the parameters to be supplied by the user.
+* Words in `UPPER_CASE` are the **parameters** to be supplied by the user.
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.
+* Items in square brackets are **optional**.
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.
+* Items with `…`​ after them can be used **multiple times** including zero times.
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.
+* Parameters can be **in any order**.
e.g. if the command specifies `tn/TASK_NAME td/TASK_DESCRIPTION`, `td/TASK_DESCRIPTION tn/TASK_NAME` is also acceptable. @@ -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` @@ -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`
@@ -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` @@ -1506,7 +1510,7 @@ This section describes commands that help you manage your consultations with stu
#### 📝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…` @@ -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] @@ -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] @@ -1555,7 +1559,7 @@ Format: `createconsult d/DATE tt/TIME n/STUDENT_NAME…`
#### 📝️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…` @@ -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] @@ -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] @@ -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…` @@ -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] @@ -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] diff --git a/docs/diagrams/AssignmentClass.puml b/docs/diagrams/AssignmentClass.puml new file mode 100644 index 00000000000..6191bf0f241 --- /dev/null +++ b/docs/diagrams/AssignmentClass.puml @@ -0,0 +1,52 @@ +@startuml +skinparam arrowThickness 1.1 +skinparam classBackgroundColor LOGIC_COLOR +skinparam classAttributeIconSize 0 + +class AssignmentMap { +-assignments: ObservableMap ++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 diff --git a/docs/diagrams/CommentClass.puml b/docs/diagrams/CommentClass.puml deleted file mode 100644 index f7f31987b60..00000000000 --- a/docs/diagrams/CommentClass.puml +++ /dev/null @@ -1,20 +0,0 @@ -@startuml -skinparam arrowThickness 1.1 -skinparam classBackgroundColor LOGIC_COLOR -skinparam classAttributeIconSize 0 - -class Assignment { --comment: Comment -+getComment(): Comment -+commentStatus(): boolean -} - -class Comment { --commentBody: String --isCommented: boolean -+getIsCommented(): boolean -+toString(): String -} - -Assignment o-- "1" Comment: comment -@enduml diff --git a/docs/diagrams/GradeClass.puml b/docs/diagrams/GradeClass.puml deleted file mode 100644 index ccbb93914c9..00000000000 --- a/docs/diagrams/GradeClass.puml +++ /dev/null @@ -1,23 +0,0 @@ -@startuml -skinparam arrowThickness 1.1 -skinparam classBackgroundColor LOGIC_COLOR -skinparam classAttributeIconSize 0 - -class Assignment { --grade: Grade -+getGrade(): Grade -+maxGrade(): String -+gradingStatus(): boolean -} - -class Grade { --actualGrade: String --maxGrade: String --isGraded: boolean -+getMax(): String -+getIsGraded(): boolean -+ungrade(): Grade -} - -Assignment o-- "1" Grade: grade -@enduml diff --git a/docs/images/AssignmentCardAnnotated.png b/docs/images/AssignmentCardAnnotated.png deleted file mode 100644 index cf55006f741..00000000000 Binary files a/docs/images/AssignmentCardAnnotated.png and /dev/null differ diff --git a/docs/images/AssignmentsAnnotated.png b/docs/images/AssignmentsAnnotated.png new file mode 100644 index 00000000000..f20ee687b48 Binary files /dev/null and b/docs/images/AssignmentsAnnotated.png differ diff --git a/docs/images/ConsultationCardAnnotated.png b/docs/images/ConsultationCardAnnotated.png index 09f2b87f8aa..634783dc4c3 100644 Binary files a/docs/images/ConsultationCardAnnotated.png and b/docs/images/ConsultationCardAnnotated.png differ diff --git a/docs/images/SessionCardAnnotated.png b/docs/images/SessionCardAnnotated.png index afe52f338b2..1b11ea8320b 100644 Binary files a/docs/images/SessionCardAnnotated.png and b/docs/images/SessionCardAnnotated.png differ diff --git a/docs/images/StudentCardAnnotated.png b/docs/images/StudentCardAnnotated.png index 1027a10f94f..39c9fc69838 100644 Binary files a/docs/images/StudentCardAnnotated.png and b/docs/images/StudentCardAnnotated.png differ diff --git a/docs/images/TaskCardAnnotated.png b/docs/images/TaskCardAnnotated.png index 45102156ae4..09b92e16f8d 100644 Binary files a/docs/images/TaskCardAnnotated.png and b/docs/images/TaskCardAnnotated.png differ diff --git a/docs/images/Ui.png b/docs/images/Ui.png index 85a40838af3..a83091560a5 100644 Binary files a/docs/images/Ui.png and b/docs/images/Ui.png differ diff --git a/docs/images/UiWithAnnotations.png b/docs/images/UiWithAnnotations.png index 10f151b61b4..2e8a55a72cf 100644 Binary files a/docs/images/UiWithAnnotations.png and b/docs/images/UiWithAnnotations.png differ diff --git a/docs/images/newUiWithAnnotations.png b/docs/images/newUiWithAnnotations.png deleted file mode 100644 index a015ac371c2..00000000000 Binary files a/docs/images/newUiWithAnnotations.png and /dev/null differ diff --git a/docs/index.md b/docs/index.md index 4a199d11ec7..8c8156895fd 100644 --- a/docs/index.md +++ b/docs/index.md @@ -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. diff --git a/docs/team/ldinghan.md b/docs/team/ldinghan.md index 0ec2437c952..494a6255723 100644 --- a/docs/team/ldinghan.md +++ b/docs/team/ldinghan.md @@ -4,7 +4,7 @@ title: "Ding Han's Project Portfolio Page" --- ### Project: F.A.K.E.J.A.R.V.I.S. -F.A.K.E.J.A.R.V.I.S. is a project to help CS1101S Avengers manage their time and responsibilities more effectively. +F.A.K.E.J.A.R.V.I.S. is a project that helps CS1101S Avengers manage their time and responsibilities more effectively. Given below are my contributions to the project: @@ -49,9 +49,16 @@ Given below are my contributions to the project: * Developer Guide: * Designed the class diagram for `Session`. -* **Review/mentoring contributions**: To be added +* **Review/mentoring contributions**: + * [ldinghan's tp comments](https://nus-cs2103-ay2324s1.github.io/dashboards/contents/tp-comments.html#47-lim-han-ldinghan-37-comments) -* **Tools**: Java, IntelliJ, FXML, PlantUML +* **Tools**: + * Java + * IntelliJ + * Git + * FXML + * PlantUML -* **Contributions beyond the project team**: To be added +* **Contributions beyond the project team**: + * Contributed to module forum page to answer queries on code coverage [here](https://github.com/nus-cs2103-AY2324S1/forum/issues/267#issuecomment-1767768888) diff --git a/docs/team/originalidk.md b/docs/team/originalidk.md index 2e07415e64c..4b5e1f0c69a 100644 --- a/docs/team/originalidk.md +++ b/docs/team/originalidk.md @@ -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. diff --git a/docs/team/wesho1107.md b/docs/team/wesho1107.md index eaf27f5272b..dbe310cd6c1 100644 --- a/docs/team/wesho1107.md +++ b/docs/team/wesho1107.md @@ -8,23 +8,47 @@ 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**: - * Create consultation - * Add students to consultation - * Delete consultation +* **New Features**: Added the features for creating, deleting and editing consultations. + * What it does: Allows Avengers to create, delete, or edit consultations, allowing for easy tracking of discussions outside of lesson time. + * Justification: With the heavy pile of responsibilities an Avenger has to keep track of, scheduled consultations may be easily forgotten, thus this feature helps in tracking the date, time and students attending a consultation. + * Highlights: There were some design thought given to how information is stored in the model. To prevent cyclic-reference between students and consultations, we decided on a uni-directional relationship, where only consultations store student models, and not consultations in students. + * Credits: No reuse of code or third-party libraries. + + +* **New Features**: Added the feature for switching tabs between different lists. + * What it does: Allows Avengers to switch between tabs of different lists (Students, Tasks, Assignments, Sessions, Consultations). + * Justification: With multiple features in our one-stop platform, it may be visually overbearing for an Avenger to see all feature lists at once, thus this feature helps to keep information organised and neat. + * Highlights: There were some user experience thought given to how the tabs works. To achieve a fast Command-Line Interface centred application, commands are written for the ease of switching between tabs. + * Credits: No reuse of code or third-party libraries. + + +* **New Features**: Improved the user interface of the F.A.K.E.J.A.R.V.I.S. + * What is changed: The color, layout and organisation of information of the application. + * Justification: With multiple features in our one-stop platform, a user interface update was required to organise information displayed neatly. + * Highlights: There were some user experience thought given to the improved user interface. A Graphical Result Display is implemented to display details relevant to commands that were called. + * Credits: No reuse of code or third-party libraries. + * **Code contributed**: [RepoSense](https://nus-cs2103-ay2324s1.github.io/tp-dashboard/?search=wesho1107&breakdown=true) -* **Project management**: To be added + +* **Project management**: + * Organised Git issues. + * Reviewed and approved pull requests. -* **Enhancements to existing features**: UI Design +* **Enhancements to existing features**: + * Changed the user interface for the overall application for better user experience. + * Updated commands to switch between corresponding tabs when invoked by user. * **Documentation**: - * User Guide: To be added + * User Guide: + * Added documentation for the Consultation Management Session + * Redesigned annotated images for better representation of the UI of the product. * Developer Guide: To be added + * Designed the class diagram for `Consultation`. * **Review/mentoring contributions**: To be added diff --git a/src/main/java/seedu/address/logic/commands/AddToConsultCommand.java b/src/main/java/seedu/address/logic/commands/AddToConsultCommand.java index 09877b3054d..9fc24852a4a 100644 --- a/src/main/java/seedu/address/logic/commands/AddToConsultCommand.java +++ b/src/main/java/seedu/address/logic/commands/AddToConsultCommand.java @@ -38,7 +38,7 @@ public class AddToConsultCommand extends Command { + "Example: " + COMMAND_WORD + " " + PREFIX_NAME + "John Doe "; - public static final String MESSAGE_SUCCESS = "New student(s) added to consultation at index %1$s: %1$s"; + public static final String MESSAGE_SUCCESS = "New student(s) added to consultation at index %1$s: %2$s"; public static final String MESSAGE_DUPLICATE_STUDENT = "The student(s) added are already in the consultation"; public static final String MESSAGE_PERSON_NOT_FOUND = "No student matching given name(s)"; public static final String MESSAGE_NOT_EDITED = "At least one student is to be added"; @@ -83,7 +83,8 @@ public CommandResult execute(Model model) throws CommandException { model.setConsultation(consultationToAddStudent, updatedConsultation); model.updateFilteredConsultationList(PREDICATE_SHOW_ALL_CONSULTATIONS); - return new CommandResult(String.format(MESSAGE_SUCCESS, Messages.format(updatedConsultation)), COMMAND_TYPE); + return new CommandResult(String.format(MESSAGE_SUCCESS, index.getOneBased(), + Messages.format(updatedConsultation)), COMMAND_TYPE); } @Override diff --git a/src/main/java/seedu/address/logic/commands/RemoveFromConsultCommand.java b/src/main/java/seedu/address/logic/commands/RemoveFromConsultCommand.java index 2c55bfc06c3..69ca486d43c 100644 --- a/src/main/java/seedu/address/logic/commands/RemoveFromConsultCommand.java +++ b/src/main/java/seedu/address/logic/commands/RemoveFromConsultCommand.java @@ -39,7 +39,7 @@ public class RemoveFromConsultCommand extends Command { + PREFIX_NAME + "NAME\n" + "Example: " + COMMAND_WORD + " 1" + PREFIX_NAME + "John Doe"; - public static final String MESSAGE_SUCCESS = "Student(s) removed from consultation at index %1$s: %1$s"; + public static final String MESSAGE_SUCCESS = "Student(s) removed from consultation at index %1$s: %2$s"; public static final String MESSAGE_PERSON_NOT_FOUND = "No student(s) in address book matches given name(s)"; public static final String MESSAGE_NOT_FOUND_IN_CONSULT = "No student(s) in consultation matches given name(s)"; public static final String MESSAGE_NOT_EDITED = "At least one student is to be removed"; @@ -83,8 +83,8 @@ public CommandResult execute(Model model) throws CommandException { model.setConsultation(targetConsultation, updatedConsultation); model.updateFilteredConsultationList(PREDICATE_SHOW_ALL_CONSULTATIONS); - return new CommandResult(String.format(MESSAGE_SUCCESS, Messages.format(updatedConsultation)), - COMMAND_TYPE); + return new CommandResult(String.format(MESSAGE_SUCCESS, index.getOneBased(), + Messages.format(updatedConsultation)), COMMAND_TYPE); } @Override diff --git a/src/main/java/seedu/address/model/consultation/Consultation.java b/src/main/java/seedu/address/model/consultation/Consultation.java index c028b414095..b03aa95a5d2 100644 --- a/src/main/java/seedu/address/model/consultation/Consultation.java +++ b/src/main/java/seedu/address/model/consultation/Consultation.java @@ -120,7 +120,7 @@ public String getConsultationInfo() { if (students != null) { studentNames = students.toStudentNames(); } - return String.format("Date: %s, Time: %s, Students: %s", date, time, studentNames); + return String.format("Date: %s; Time: %s; Students: %s", date, time, studentNames); } @Override diff --git a/src/test/java/seedu/address/logic/commands/AddToConsultCommandTest.java b/src/test/java/seedu/address/logic/commands/AddToConsultCommandTest.java index 2fc568fd78e..7ce9d47dcd0 100644 --- a/src/test/java/seedu/address/logic/commands/AddToConsultCommandTest.java +++ b/src/test/java/seedu/address/logic/commands/AddToConsultCommandTest.java @@ -48,7 +48,7 @@ public void execute_addToConsultation_success() { AddToConsultCommand command = new AddToConsultCommand(targetIndex, descriptor); Consultation updatedConsultation = createUpdatedConsultation(model, targetConsultation, descriptor); - String expectedMessage = String.format(AddToConsultCommand.MESSAGE_SUCCESS, + String expectedMessage = String.format(AddToConsultCommand.MESSAGE_SUCCESS, targetIndex.getOneBased(), Messages.format(updatedConsultation)); Model expectedModel = new ModelManager(new AddressBook(model.getAddressBook()), diff --git a/src/test/java/seedu/address/logic/commands/RemoveFromConsultCommandTest.java b/src/test/java/seedu/address/logic/commands/RemoveFromConsultCommandTest.java index 7ef1236f70f..868a461ae99 100644 --- a/src/test/java/seedu/address/logic/commands/RemoveFromConsultCommandTest.java +++ b/src/test/java/seedu/address/logic/commands/RemoveFromConsultCommandTest.java @@ -49,7 +49,7 @@ public void execute_removeFromConsultation_success() { RemoveFromConsultCommand command = new RemoveFromConsultCommand(targetIndex, descriptor); Consultation updatedConsultation = createUpdatedConsultation(model, targetConsultation, descriptor); - String expectedMessage = String.format(RemoveFromConsultCommand.MESSAGE_SUCCESS, + String expectedMessage = String.format(RemoveFromConsultCommand.MESSAGE_SUCCESS, targetIndex.getOneBased(), Messages.format(updatedConsultation)); Model expectedModel = new ModelManager(new AddressBook(model.getAddressBook()), new UserPrefs(),