Wen Xuan's Project Portfolio Page
Project: TAssist
TAssist is a desktop app for Teaching Assistants to manage their students across different modules and keep track of students’ activities/participation in class. It is optimized for use via Command Line Interface (CLI). The user interacts with it using a CLI, and it has a GUI (Graphical User Interface) created with JavaFX. It is written in Java, and has about 11 kLoC.
Given below are my contributions to the project.
-
Code contributed: RepoSense link
- New Feature: Added the model for student objects.
- What it does: allows the TA to have the ability to manage students.
- Justification: This feature improves the product significantly because a TA can interact with the student objects and the app should display the students accordingly.
- Highlights: This enhancement affects existing commands (e.g.
add student,delete student,list student). It required an in-depth analysis of design alternatives.
- New Feature: Added the ability to enrol student(s) into class groups.
- What it does: allows the TA to enrol existing student(s) into an existing class group. This automatically links the student(s) to the module associated to the class group. The app then displays the existing students in the given class group.
- Justification: This feature improves the product significantly because a TA can keep track of their students for each module they are teaching.
- Highlights: This enhancement affects existing v1.3 commands (e.g.
mark,unmark,grade,disenrol). It required an in-depth analysis of design alternatives. The implementation too was challenging as appropriate error messages were needed to handle different scenarios.
- New Feature: Added the ability to disenrol student(s) from class groups.
- What it does: allows the TA to disenrol existing student(s) from an existing class group. This also removes the student(s) from the module associated to the class group, together with existing assessments done by the student(s). The app then displays the existing students in the given class group.
- Justification: This feature improves the product significantly because a TA can disenrol student(s) which was previously enrolled to the class group.
- Highlights: This enhancement affects existing v1.3 commands (e.g.
mark,unmark,grade,enrol). It required an in-depth analysis of design alternatives. The implementation too was challenging as appropriate error messages were needed to handle different scenarios.
- New Feature: Added the ability to find students whose names contain any of the given keywords.
- What it does: allows the TA to enter specific keywords to find existing student(s). Keywords which matches non-existing student(s) are accepted but nothing will be displayed by the app.
- Justification: This feature improves the product because a TA can search for specific student(s) by their names.
- New Feature:
- Wrote tests for the
StudentandJsonAdaptedStudentcomponents. - Wrote tests for
FindCommandas well as theEnrolCommandandDisenrolCommand.
- Wrote tests for the
- Documentation:
- Community:
- Team Tasks: