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 contacts and quarantine period. 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.

  • New Feature: Added the case number field to persons. \60
    • What it does: Enforces constraint that users have to add an index-unique case number to each person
    • Justification: Provides an identifier guaranteed to be unique to each person, primarily used to communicate about specific cases without unnecessarily using personal information.
    • Highlight: Through implementing tests for case number, the testing methodology implemented in AB3 for person attributes was charted in sanityCheck.md for future reference \80.
  • New Feature: Added the ability to initialise enforcement sessions (session) and switch to pre-existing enforcement session view (schedule) \114
    • What it does: Shows the user who has not been called for the current enforcement session.
    • Justification: This provides a convenient view of only who needs to be called.
    • Highlights: Procedure for writing list filter-updating feature was defined in the course of writing this function.
  • New Feature: Added the ability to store whether a person has been called for the day. \114
    • What it does: Allows the user to record whether a call has been attempted on a person for the current enforcement session
    • Justification: This allows the user to identify who has yet to be called easily.
    • Credits: Ability to graphically view call status outside of enforcement mode from the UI in the form of an icon was implemented by Frederick
  • New Feature: Added the ability to track the total number of failed calls on a person. \114
    • What it does: Allows the user to track the total number of failed calls on a person across enforcement sessions.
    • Highlight: Failed call tracking can also be done across save states by copying JSON data over manually
    • Credits: Naming convention and design refinements by Lauren and Wei En
  • New Feature: Added the ability to indicate successful and failed calls to a person for the given session. \114
    • What it does: Allows the user to indicate that a person has been called, removing that person from the enforcement view, in addition to whether the person has been non-compliant to be recorded by the prior feature.
    • Justification: This allows the user to remove called persons from the schedule without unnecessary modification to underlying person, facilitating linear workflow of enforcement mode.
    • Highlight: This attribute implements modification of person attribute without the use of EditCommand in order to restrict unnecessary write access.
  • Code contributed: RepoSense link

  • Project management:
    • Audited tests prior to v1.5
    • Filed issues pertaining to suboptimal testing and informed relevant parties such as through Github with #244 and #243, in addition to informal means such as by messaging app to reduce issue maintenance complexity.
    • Audited enforcement mode.
    • Provided advice on writing tests and how to navigate pre-existing tests.
  • Enhancements to existing features:
    • Added tests to miscellaneous items over the course of auditing tests such as \246 and \240
  • Documentation:
    • Wrote initial draft for enforcement DG and UG documentation before it was superseded by the current iteration of the docs \133
  • Community:
  • Tools:
    • Interpreted CodeCov report and analysed areas of improvement for testing.