Project: TAManager

TAManager is a desktop address book application made for professors to manage their teaching assistants (TA) under their charge. It provides fast access to TAs’ contact details and their availabilities for tutorials/labs. You can track teaching and claimable hours among your TAs and find relief TAs for impromptu events or unforeseen circumstances.

Given below are my contributions to the project.


  • New Feature: Added the ability to add TAs’ Telegram handle.
    • What it does: Allows users to add Telegram handles to TAs’ profiles.
    • Justification: This feature improves the product significantly because it allows users to contact TAs through Telegram, which is a popular messaging platform among students.
    • Highlights: This enhancement affects the TA class, AddCommand class, EditCommand class, and many other classes as the Telegram handle is a new field that needs to be added to the existing TA profile. The implementation was challenging due to the widespread implementation across the various classes.
    • Credits: This feature was implemented by me with reference to the Email field in the TA class. This feature was also implemented as the replacement for the original Address field in AB3.


  • New Feature: Added the ability to set default course.
    • What it does: Allows users to set a default course for the application to be displayed on the main window.
    • Justification: This feature improves the product significantly because it allows users to display the list of TAs teaching under the default course when launching TAManager.
    • Highlights: This enhancement requires implementation of a new TeachingCoursePredicate class to filter the list of TAs teaching under the default course. The dependency between the classes required me to be careful as changing the implementation of one class may affect the other.
    • Credits: This feature was implemented by using the TeachingCoursePredicate as written by my teammate Rayner.



  • Project management:
    • Led group discussions on User Guide
    • Managed pull requests and code reviews for v1.1 - v1.4 (9 pull requests) on GitHub
    • Managed bug reports for v1.4 on Github


  • Enhancements to existing features:
    • Added the ability to restrict Phone field to a valid phone number (Pull requests: #125)
    • Refactored time in Lesson class into TimeInterval (Pull requests: #69)


  • Documentation for Developer Guide:
    • Added implementation details of TeachCommand feature (Pull requests: #46)


  • Documentation for User Guide:
    • Added documentation for TeachCommand feature (Pull requests: #49)
    • Did cosmetic tweaks to the existing documentation features CourseCommand (Commit link)
    • Redesigned the entire User Guide to improve the readability and flow of the document, such as adding tables and fixing the language use (Pull requests: #158)
    • Reformatted and converted the User Guide into PDF for final submission


  • Community:
    • PRs reviewed (with non-trivial review comments): #27, #49, #61, #75, #132
    • Reported bugs and suggestions for other teams during PE-D (11 bug reports)
    • Created demo video for TAManager