QIN GUORUI's Project Portfolio Page
Project: TA2
TA2 is a desktop application designed for teaching assistants from the School of Computing (SoC) at the National University of Singapore (NUS) to manage student information and keep track of students’ assignment submissions.The user interacts with it using a CLI, and it has a GUI created with JavaFX. It is written in Java, and has about 10 kLoC.
Given below are my contributions to the project.
- New Feature: Added the ability to undo/redo previous commands.
- What it does: Allows the user to undo all previous commands one at a time. Preceding undo commands can be reversed by using the redo command.
- Justification: This feature improves the product significantly because a user can make mistakes in commands and the app should provide a convenient way to rectify them.
- Highlights: This enhancement affects existing commands and commands to be added in the future. It required an in-depth analysis of design alternatives. The implementation too was challenging as it required changes to existing commands.
- Credits: {https://stackoverflow.com/questions/11530276/how-do-i-implement-a-simple-undo-redo-for-actions-in-java}
- New Feature: Added the ability to add assignments into the student’s assignment list.
- What it does: Allows the user to add a specific assignment to a student. Newly added assignment will be immediately shown in the assignment list.
- Justification: This feature ensures the basic function of the product because tutors are responsible for allocating assignments to their students.
- Highlights: This enhancement provides the basis for other features. (example:
giveall) The implementation was challenging as it involves the analysis of how it can respond to user input and manipulate the relationships with other classes likeAssignmentclass.
- New Feature: Added the ability to delete assignments from the student’s assignment list.
- What it does: Allows the user to delete a specific assignment from a student’s assignments. Newly deleted assignment will be immediately removed from the assignment list.
- Justification: This feature ensures the basic function of the product because tutors should be able to delete assignments which they wrongly assigned.
- Highlights: This enhancement provides the basis for other features. (example:
clean) The implementation was challenging as it refers to the command pattern of existing commands, and it involves detailed analysis of current backend code to figure the pattern out.
- New Feature: Added the ability to mark assignments as completed in the student’s assignment list.
- What it does: Allows the user to mark a specific assignment of a student as completed. Newly marked assignment will be immediately shown as
Completedin the assignment list. - Justification: This feature ensures the basic function of the product because tutors are responsible for marking assignments of their students.
- Highlights: The implementation was challenging as it involves how the method in
Modelinterface can finally change the particularAssignmentinstance over a series of internal interactions between each component inModel.
- What it does: Allows the user to mark a specific assignment of a student as completed. Newly marked assignment will be immediately shown as
-
Code contributed: RepoSense link
- Project management:
- Reviewed the code quality of team members.
- Enhancements to existing features:
- Documentation:
- User Guide:
- Developer Guide:
- Community: