Project: TAddressBook

TAddressBook is a student project based on AddressBook Level 3. It is a desktop application created with the aim of helping CS2030S Teaching Assistants (TAs) keep track of student’s lab assignments.

Given below are my contributions to the project.

  • New Feature: Add Lab #67
    • What it does:
      • Adds a new Lab with an Integer labNumber between 0 and 20 inclusive and default LabStatus of UNSUBMITTED, to the MasterLabList as well as to all Students in the list.
      • The Ui automatically updates to show the newly added Lab.
    • Justification:
      • This is the main functionality of TAddressBook which allows CS2030S TAs to add labs the TA wants to keep track of.
    • Highlights:
      • This feature involved adding a new component to the UI to show the Labs which is binded to an ObservableList<Lab> for automatic update of the UI when the Lab changes.
  • New Feature: Remove Lab #72
    • What it does:
      • Removes a Lab, with an Integer labNumber between 0 and 20 inclusive, from the MasterLabList as well as from all Students in the list.
      • The Ui automatically updates to show the deleted Lab.
    • Justification:
      • This allows CS2030S TAs to delete labs that they accidentally added or no longer want to keep track of.
    • Highlights:
      • This feature takes advantage of the fact that the LabList of all students are aligned with the MasterLabList as they are sorted by increasing lab number, as we only need to find the index of the Lab we want to delete in the MasterLabList and we can then just remove the Lab at that index in all the students’ LabList without doing another search.
  • Code contributed:
  • Project management:
    • Managed release of v1.2 and v1.3 and issue tracker.
    • Add screenshots of product for v1.2 and v1.3 on team project document.
    • Manage some team weekly tasks.
  • Enhancements to existing features:
    • Updated Attributes of Students
      • Added GithubUsername and Telegram attributes to Student and updated tests related to Student and it’s attributes.
      • #45, #49.
    • Updated AddCommand and EditCommand to take into account Labs: #67.
    • Wrote tests for new and old classes:
      • e.g.
        • increased code coverage by 0.58% in #45.
        • increased code coverage by 0.50% in #49.
        • increased code coverage by 3.98% in #77.
    • Refactor JSON data serialization and deserialization for the new Lab data: #93.
    • Fix bugs from PE-D: #118, #119.
  • Documentation:
    • User Guide:
      • Added documentation for labadd, labrm.
      • Updated documentation for editing JSON data and changed AB3 stuff to TAddressBook.
      • #15, #35, #93.
    • Developer Guide:
      • Add UC3, UC4, and UC6: #29, #129.
      • Add implementation details of AddLabCommand, Lab component, and update existing UML diagrams to match our code base: #121.
  • Community:
    • Reviewed PRs of other group members, some examples: #50, #70, #71, #87, #90, #91.
    • Reported 9 bugs for another group in PE-D.