Clifford's Project Portfolio Page
Project: TA2
TA2 is a desktop application that offers Teaching Assistants (TA) from the School of Computing (SoC) at the National University of Singapore (NUS) a convenient and efficient way 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: Redesign the whole interface to accommodate assignments in TA2. (#46)
- What it does: Added the assignment list panel to view students’ assignments. Design the assignment card. Wrote the backend code for the
Assignmenmtclass and most of its components. - Justification: This feature is the main feature that differentiates TA2 from AB3 which this project is based on. It forms the foundation for future commands that manipulate assignments.
- Highlights: This enhancement forms the bedrock of what TA2 is. Any future commands added will need assignments and assignment list panel to perform their operations. This implementation is challenging because it requires research and trial and error to design front end using JavaFx. Also, the analysis of how backend code interacts with frontend is necessary to understand how they are linked.
- What it does: Added the assignment list panel to view students’ assignments. Design the assignment card. Wrote the backend code for the
- New Feature: Improve
give,removeanddoneassignments input format to make it less cumbersome. (#118)- What it does: Change from
NAMEtoINDEXto reference the student togiveassignments to. Forremoveanddone, change fromNAMEto reference just the person whose assignment is currently displayed. - Justification: This feature improves the product significantly because it is faster, less cumbersome and less error-prone to type the
INDEXof student/assignments compared to theNAMEof the student. - Highlights: This change is challenging because there is a need to understand how the commands work previously to be able to change accordingly.
- What it does: Change from
- New Feature: Improve undo and redo to be able to change the state of
listandfind. (#118)- What it does: Undo and redo could only occur if the person/assignment state has changed. By storing the state of the filtered person list,
listandfindcan also be included as well. - Justification: This feature improves the user experience because it makes sense that undo and redo should be able to return the previous action. Excluding
listandfindmay make the product unintuitive. - Highlights: This change needs an analysis of how undo and redo works and how state is tracked.
- What it does: Undo and redo could only occur if the person/assignment state has changed. By storing the state of the filtered person list,
-
Code contributed: RepoSense link
- Project management:
- Managed releases
v1.2,v1.3.trial,v1.3(final),v1.4(final)(4 releases) on GitHub. - Maintaining the issue tracker and ensure internal deadlines are met.
- Renaming product name of application in
.fxmlfile and.jarfile in gradle.
- Managed releases
- Enhancements to existing features:
- Documentation:
- User Guide:
- Add an introduction to user guide and add links for new/experience users. (#259)
- Improve the quick start page
- Read through and standardise the whole user guide.
- Developer Guide:
- Add an introduction to developer guide to highlight the purpose of the guide. (#229)
- Added implementation details of
Assignmentfeature (use: class diagram)- Updating and tracking of person whose assignment list is displayed feature (use: activity diagram) (#262)
- Updated Model and Ui architecture diagram and explanation (#248)
- Update non functional requirements. (#42)
- Added Manual test case for some scenarios (#234)
- User Guide:
- Community: