Project: Track2Gather

Track2Gather is a desktop application that will manage up to a few thousand contacts, providing basic features for contact tracing personnel to organise and search through them via personal information, case numbers, and Stay-Home-Notice periods. 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.

A full list of my code contribution to this project can be found here: RepoSense

Given below are my contributions to the project.

  • New Features
    • Added functionality to batch-update the stay-home-notice (SHN) period end dates of contacts (tshift command). #89
      • What it does: Allows our contact tracing personnels to either extend or bring forward the SHN period end dates of everyone in the Track2Gather system. User does not need to manually check which persons have an SHN period assigned to them as the functionality is performed automatically and internally with a single command.
      • Justification: This feature improves the product significantly because the user does not need to manually edit the SHN periods of everyone in the Track2Gather system. The application should provide a functionality to apply this change to all contacts easily.
  • Enhancements Implemented
    • Improved edit command to allow for editing newly implemented fields added in v1.3 milestone. #85
      • Justification: A quality of life improvement for our contact tracing personnels for when they want to edit a field without having to re-enter a person’s details.
      • Credits: Code was based on the original AB3 edit command, but significantly modified after to cater for optional used by Track2Gather.
  • Enhancements Implemented Cont.
    • Enhancements to the GUI of Track2Gather for v1.2 - v1.4 milestones. #68, #132, #206, #259
      • Notable changes made: Improved PersonCard in the ui to dynamically show/hide optional person fields when they are present/empty.
      • Sample image:

        Alexander has no optional fields, headers hidden. Bernice has all optional fields.
      • Justification: Track2Gather is able to save numerous contact details, many of them are optional. By dynamically hiding and displaying these fields only when necessary, we can declutter the ui during usage.
      • Credits: The initial ui mockup image was created by Lutfi with Figma.
  • Contributions to Team-Based Tasks
    • Feature demo for milestones v1.2 and v1.3. v1.2 feature demo, v1.3 feature demo
      • Includes usage of all commands, a before and after image of usage and a brief description of the scenarios used.
  • Documentation:
    • Project Website:
      • Updated the Landing Page for for v1.4 milestone. #237
    • User Guide:
      • Added documentation for the features edit and tshift. #104, #105
      • Ensured overall cohesion for v1.2 and v1.4 milestones. #82, #219
    • Developer Guide:
      • Added documentation for the features edit and tshift. #104, #105
      • Ensured overall cohesion for v1.1 milestone. #15
  • Community:
    • Audited and gave improvement suggestions to Person model and its attributes. #204
    • Major PRs reviewed (with non-trivial review comments): #61, #112, #223
    • Here are some of my contributions to forum: #13, #25, #131