Valerie Tan's Project Portfolio Page
Project: DengueHotspotTracker (DHT)
DengueHotspotTracker (DHT) is a desktop app for managing dengue cases. The user interacts with it using a CLI, and it has a GUI created with JavaFX. It is written in Java, and has about 15 kLoC.
Given below are my contributions to the project.
- New Feature: Added the ability to delete multiple indexes at once.
- Justification: This feature allows users to delete cases in batches, rather than having to do so one at a time.
- New Feature: Added the ability to delete all cases from a given date.
- Justification: This feature allows users to delete all cases from a given date at once, which may be useful
when the user wants to clear older or erroneous cases from the same date from the
DengueHotspotTracker. - Highlights: This enhancement was challenging as it required significant changes to the original
deletecommand parser. It caused thedeletecommand to be the only command that could accept indexes and prefixes, but never together. This meant that much effort had to be put into ensuring that the parser could accurately detect when the two had been mixed, regardless of the index(es) came before or after the date, and throw exceptions accordingly. Thedeletecommand itself was also updated to use theOptionalclass instead, as it now had to hold both indexes and dates, but never at the same time. Much abstraction was required to keep the code clean and readable.
- Justification: This feature allows users to delete all cases from a given date at once, which may be useful
when the user wants to clear older or erroneous cases from the same date from the
- New Feature: Added the ability to delete all cases from a given date range.
- Justification: This feature allows users to delete all cases from a given date at once, which may be useful
when the user wants to clear erroneous cases from the same date from the
DengueHotspotTracker. - Highlights: Similar to the previous feature, this enhancement was challenging as it required significant changes
to the architecture of the
deletecommand parser anddeletecommand. In addition to the aforementioned changes to the parser and use of theOptionalclass, new classes such asRange,StartDate, andEndDate, as well as new generic interfacesStartandEnd, had to be created in line with the object-oriented style of programming used throughout the rest of the project. Range validation also had to be implemented.
- Justification: This feature allows users to delete all cases from a given date at once, which may be useful
when the user wants to clear erroneous cases from the same date from the
- New Feature: Added the ability to sort cases by name, age, postal code, and date.
- Justification: This features allows users another avenue to get an overview of the cases by viewing them in a natural sorted order.
- New Feature: Added the ability to clear the displayed list (rather than only the entire list).
- Justification: This feature allows users to delete cases in batches, most likely after using the
findcommand, rather than having to do so one at a time. To implement this feature, the originalclearcommand was modified, as the team felt that the original behaviour of theclearcommand was not useful and could be generalised to clearing the current displayed list, rather than the entire list.
- Justification: This feature allows users to delete cases in batches, most likely after using the
- Code contributed: RepoSense link
- Project management:
- Managed issue tracking for
v1.3–v1.4on GitHub, creating and assigning issues to team members and milestones accordingly - Filmed demo video for
v1.2 - Took meeting minutes in team document
- Managed issue tracking for
- Documentation:
- User Guide
- Added documentation for the
clear, multi-indexdelete,delete-by-date,delete-by-date-range, andsortfeatures - Improved grammar, organisation, and clarity of documentation (#243)
- Added documentation for the
- Developer Guide
- Added implementation details and UML diagrams for the multi-index
delete,delete-by-date,delete-by-date-range, andsortfeatures - Added Planned Enhancements and Effort appendix
- Added user stories
- Added use cases for the
add,edit,delete, andsortcommands - Added instructions for manually testing the
deletecommand - Updated class diagrams to reflect DengueHotspotTracker architecture
- Organised the Developer Guide and added placeholders for team members to easily add their own features’ content
- Added implementation details and UML diagrams for the multi-index
- User Guide
- Community: