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 Assignmenmt class 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.
  • New Feature: Improve give, remove and done assignments input format to make it less cumbersome. (#118)
    • What it does: Change from NAME to INDEX to reference the student to give assignments to. For remove and done, change from NAME to 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 INDEX of student/assignments compared to the NAME of 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.
  • New Feature: Improve undo and redo to be able to change the state of list and find. (#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, list and find can 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 list and find may make the product unintuitive.
    • Highlights: This change needs an analysis of how undo and redo works and how state is tracked.
  • 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 .fxml file and .jar file in gradle.
  • Enhancements to existing features:
    • Updated Ui to include assignment list panel and assignment cards. (Pull requests #46, #93, #76)
  • 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)
  • Community: