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.

Given below are my contributions to the project.

  • Code contributed: RepoSense link

  • Integration: Led creation of new Person attributes.
    • Built skeleton for implementation of attributes: #42
    • Audited and integrated four implementations of new attributes: #61
    • Advised Lutfi on adapting JSON storage for new attributes: #57
    • Removed Tag class: #66
    • Proposed refactoring of attributes to extend from a single abstract class: #223
  • New Feature: Added an indicator for the status bar footer for the number of persons displayed: #76 #126
    • What it does: Enables users to easily view the number of persons displayed out of the total count.
  • New Feature: Implement robust sort command which provides multiple ways to customise sorting: #96 #100 #111 #112 #125 #127 #129 #260
    • What it does: Enables sorting of multiple fields (name, case number, SHN start/end dates) in ascending/descending order.
  • Integration: Refactored codebase for transition to Track2Gather: #210

  • Enhancements to existing features:
    • Phone number: Implemented stricter validation: #257
    • Case number: Standardised help messages: #266
  • Documentation:
    • Project Website: Update Jekyll settings: #22
    • User Guide:
      • Created initial draft for v1.1: #23 #33
      • Documented enforcement-related features for v1.2: #135
      • Updated final draft for v1.4: #263
    • Developer Guide:
  • Community:
    • Provided technical assistance to group members
    • Conceptualised enforcement mode in conjunction with Lauren, with implementation done by Andrew.
    • PRs reviewed (with non-trivial comments): #46 #47 #58 #59 #86 #89 #114
    • Reported bugs and suggestions for other teams in the class: 1, 2, 3, 4, 5, 6