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
delete
command parser. It caused thedelete
command 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. Thedelete
command itself was also updated to use theOptional
class 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
delete
command parser anddelete
command. In addition to the aforementioned changes to the parser and use of theOptional
class, new classes such asRange
,StartDate
, andEndDate
, as well as new generic interfacesStart
andEnd
, 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
find
command, rather than having to do so one at a time. To implement this feature, the originalclear
command was modified, as the team felt that the original behaviour of theclear
command 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.4
on 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, andsort
features - 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, andsort
features - Added Planned Enhancements and Effort appendix
- Added user stories
- Added use cases for the
add
,edit
,delete
, andsort
commands - Added instructions for manually testing the
delete
command - 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: