Project:TAB

TAB is a desktop address book application that can help Teaching Assistants (TAs) manage their students’ progress. The user interacts with it using a CLI, and it has a GUI created with JavaFX. It is written in Java, and has about 24 kLoC.

Given below are my contributions to the project.

  • New Feature:
    • Added the ability to delete modules: (#68)
      • What it does: allows the user to delete a specified module one at a time.
      • Justification: This feature helps the TA to clear modules that he/she no longer needs to keep track of, e.g. from a previous semester.
    • Added the ability for the UI to display a list of module that gets updated whenever a module-related command is entered. (#75)
      • What it does: display to users a list of modules based on users’ commands. It gets updated smoothly and immediately with any module-related commands.
      • Justification: Users would like to see immediate visual changes/updates after interacting with the application by entering commands.
  • Enhancements to existing features:
    • Styled UI to the color theme of NUS: (#128)
      • What it does: makes the UI more familiar, unique and appealing to users.
      • Justification: The Teaching Assistant Buddy is an application of the National University of Singapore, by the National University of Singapore and for the National University of Singapore, so why not give it NUS’s color theme?
      • Credits: The official NUS corporate colours that build visual awareness and set our application apart from other applications, thus reinforcing its unique character.
    • Updated sample data that informs and guides first-time users on the functionalities of the application, for example, adding module, student, tasks with completion status and deadline. (#139)
  • Testing:
    • Wrote test cases for delete module feature that increased test coverage by 11.70%. (#99)
  • Team-based contributions:
    • Created object builders used for team-wide testing purposes. (#99)
    • Updated CI build status badge and Jekyll site-settings. (#23)
  • Code contributed: RepoSense link.

  • Project management:
  • Documentation:
    • User Guide:
      • Added documentation for the features delete module. (#70)
      • Did cosmetic tweaks to website layout: (#212)
    • Developer Guide:
      • Added implementation details of the delete module feature. (#120)
      • Drew UML diagrams for all module- and task-related implementations. (#212)
      • Added application-wide design details, including Architecture, UI, Logic, Model and Storage, each with detailed UML diagrams. (#212, #225)
  • Community:
    • PRs reviewed (with non-trivial review comments): #98, #102, #129, #207, #219
    • Contributed to forum discussions (examples: 1, 2, 3)
    • Reported bugs and suggestions for other teams in the class (examples: 1, 2, 3)