Jeff’s Project Portfolio Page
Jeff’s Project Portfolio Page
Project: E-Lister
E-Lister is a desktop application designed to help finance planning consultants manage large amounts of customer information. The user interacts with it using a CLI, within a GUI created with JavaFX. It is written in Java, and has about 20 kLoC.
Given below are my contributions to the project.
- Feature I: Added
filtering for persons by a combination of fields.- What it does: Allows for the user to search persons using (∩) combinations of any available fields.
- Justification: The existing
findcommand filters only by name, whereas the target user would need to search by other fields or even combinations thereof.filterenables such searches, and does so via regex - which is sufficiently powerful to nominally meet any expected needs, but also has basic functionality mimicking simpler input schemes.
- Feature II: Added the ability to
undoandredoan appropriate subset of commands.- What it does: Reverts previous commands in standard undo-fashion. Operates on all other commands which modify the data of Persons or the display thereof.
- Justification: The option to
undoprovides a user an easy means to revert an undesirable command effect. Accordingly, a user can recover from typo errors, and can also attempt to use a command without having to heavily scrutinize its effect beforehand.
- Feature III: Added the ability to
freezefilters.- What it does: Halts the updating of the displayed list according to the current filter. (By default, if a person is edited to no longer satisfy the current filter, they would be automatically dropped from the display -
freezedisables this.) - Justification: Reactive filters can be effective for the user and have been retained, but there are also scenarios where disabling continuous updates to the list would be preferred - to prevent repeated index changes, or Persons disappearing from the list.
- What it does: Halts the updating of the displayed list according to the current filter. (By default, if a person is edited to no longer satisfy the current filter, they would be automatically dropped from the display -
-
Code contributed: RepoSense link
- Project management:
- Advised implementation-level interaction between project features
- Advised individual feature ad-hoc debugging
- Handled standard portion of PR review
- Advised on peer-examination bug triage
- Enhancements to existing features:
- Refactor
InputHistoryto avoid a major naming conflict - Expand on
Predicateusage - Improve
mass-operation commands for greater subcommand flexibility
- Refactor
- Documentation:
- User Guide:
- Added documentation for own contributed features
- Adjusted documentation cross-referencing between features
- Developer Guide:
- Added implementation details for
StateHistory(undo/redo)
- Added implementation details for
- User Guide: