Andrew Wirawan Sutjipto's Project Portfolio Page
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
- 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.
- Audited tests prior to
- Enhancements to existing features:
- 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.