Wu Qirui's Project Portfolio Page
Project: VirusTracker
VirusTracker is a desktop app for generating statistics for Covid-19, optimized for use via a Command Line Interface (CLI) while still having the benefits of a Graphical User Interface (GUI). The GUI is 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 ability to list infected people in VirusTracker.
- What it does: It displayed all persons whose infection status is true on the GUI.
- Justification: This feature allows users to list and view all the infected people on the GUI.
- New Feature: Added the ability to list quarantined people in VirusTracker.
- What it does: It displayed all persons whose quarantine status is true on the GUI.
- Justification: This feature allows users to list and view all the quarantined people on the GUI.
- New Feature: Added the ability to list high risk locations in VirusTracker.
- What it does: It displayed a number of top most infected locations on the GUI. The number can be specified by the user. If the number is not specified, VirusTracker will determine the number using a pre-defined rule.
- Justification: This feature allows users to list and view high risk locations (i.e. the top few most infected locations) in VirusTracker.
- New Feature: Added the ability to automatically delete all visits associated to the location when this location
is deleted by the execution a
deleteLocation
command. This is also known as cascade delete for location.- Justification: This feature saves the trouble for users to delete visits associated with the deleted location manually.
- New Feature: Added the ability to automatically delete all visits associated to the person when this person
is deleted by the execution a
deletePerson
command. This is also known as cascade delete for person.- Justification: This feature saves the trouble for users to delete visits associated with the deleted person manually.
- New Feature: Added the ability to automatically update all visits associated to the location when this location
is edited by the execution a
editLocation
command.- What it does: It iterates through the list of visits and replace the not yet edited location with edited location into those visits associated to this location.
- Justification: This feature ensures that all visits stored in the visit book are consistent with locations in the location book.
- Enhancements to existing features: Added a unique identifier field for Person class.
- Justification: This can allow VirusTracker and users to uniquely identify a person. The unique identification of
a person is first planned to be used for
getPerson
method in Visit class, which was not carried out. It was then used inaddPerson
,deletePerson
andeditPerson
command.
- Justification: This can allow VirusTracker and users to uniquely identify a person. The unique identification of
a person is first planned to be used for
- Enhancements to existing features: Added exception handling for date parsing for
addVisit
command- Justification: This ensures that the system will not crash when user type in the wrong date in wrong format in
addVisit
command.
- Justification: This ensures that the system will not crash when user type in the wrong date in wrong format in
-
Code contributed: RepoSense link
- Project management:
- Contributed to
v1.1
-v1.4
(4 releases) on GitHub.
- Contributed to
- Documentation:
- User Guide:
- Developer Guide:
- Added use cases for infection status and quarantine status #76
- Added use cases for view all infected people and quarantined people. #157
- Updated documentation for
list l/high-risk-locations
. #185 - Added documentation for
editLocation
anddeleteLocation
. #290 - Updated documentation for
editLocation
anddeleteLocation
. #301
- Community: