Low Siang Ern'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 import/export data from/to CSV files.
- What it does: allows the user to import and export the data (people, locations, visits) stored within VirusTracker from and to a CSV file.
- Justification: This feature allows the user to make a transition from Excel files to VirusTracker by providing a way for them to read the data within the Excel files into VirusTracker. Furthermore, allowing the user to do importing/exporting of data through the use of a command is more user-centric compared to letting them copy the json data files.
- Highlights: This enhancement requires modifying the application to allow it to read and write to CSV files. It required an in-depth understanding of Java file reader and writer classes. The format required for the CSV files was also a serious design consideration as I had to balance between making the CSV files easy to be processed by VirusTracker and also making it easy to convert the data stored in the user’s current Excel files to the required format.
- New Feature: Added an attribute to track a person’s infection status.
- Justification: As VirusTracker tracks the interactions between infected people and the places they visit, it was necessary to modify the existing Person class to store the infection status of a person as well.
- New Class: Created an InfoHandler class to handle the information stored in the model.
- What it does: It provides the team with a class which has the ability to manipulate read-only data from the model without being worried that the data would be modified.
- New Class: Created a DataGenerator class to help parse the attributes from CSV files and to convert the attributes to Strings that were CSV compatible.
- What it does: It serves as an facade for commands to handle CSV related commands.
- Code contributed: RepoSense link
- Project management:
- Set up the GitHub team organisation
- Managed releases
v1.1
-v1.4
(4 releases) on GitHub
- Enhancements to existing features:
- Documentation:
- Added page breaks for both User Guide and Developer Guide to ensure proper formatting when converted to PDF. #289
- User Guide:
- Developer Guide:
- Added user stories and use cases for
infected
,high-risk-locations
andstats
#28 - Adapted existing AB3 developer guide markdown file to VirusTracker by removing irrelevant use cases and user stories, and adding those related to VirusTracker. #84
- Added documentation for the features
addFromCsv
andexportToCsv
. #181, #201
- Added user stories and use cases for
- AboutUs:
- Modified the template About Us file to include the names of my team members and their GitHub repos. #88
- General Cleanup of documentation:
- Community: