Yao Wei's Project Portfolio Page
Project: A-Bash Book
A-Bash Book (ABB) is a Command Line Interface (CLI) based Employee and Business Relations Management System. The user interacts with it using a CLI, and it has a GUI created with JavaFX. It is written in Java, and has about 13 kLoC.
Given below are my contributions to the project.
- New Feature: Added an
email
command that allows the user to email contacts using the operating system’s email client- What it does: allows the user to email one or many contacts via the operating system’s email client.
- Justification: This feature improves the product significantly because a user can be able to mass email contacts if needed such as a broadcast message.
- Highlights: This command makes use of the ‘mailto’ URI scheme RFC 6068 to open the email client. However, Outlook for Windows does not support commas as a delimiter by default which requires the user to tweak their configuration before getting this feature to work.
- Credits: https://stackoverflow.com/a/16615384/3903483 for the idea of using JavaFX host services to open the ‘mailto’ link.
- New Feature: Added a
select
command that allows the user to select multiple contacts to modify.- What it does: Allows the user to select multiple contacts to modify. Similar to how checkboxes are used in the web browser.
- Justification: Enables the user to quickly perform modifications to contacts without having to explicitly remembering the index number.
- Highlights: This feature affects multiple components (UI, Model, Logic) and thus designing the solution must ensure that original design patterns and abstractions must not be violated.
- Enhanced Feature: Enhance
edit
anddelete
features to work with select feature and multiple indexes.- What it does: Allows the user to select multiple contacts then act on it using
edit
anddelete
. - Justification: Enables the user to quickly perform modifications to multiple contacts and without having to explicitly remembering the index number.
- Highlights: This feature affects how indexes are parsed and to take into account the selected contacts.
- What it does: Allows the user to select multiple contacts then act on it using
-
Code contributed: RepoSense link
- Project management:
- Managed milestones and tagging issues or pull requests to milestones.
- Enhancements to existing features:
- Enhanced
edit
,delete
command to be used withselect
command. #129
- Enhanced
- Documentation:
- User Guide:
- Developer Guide:
- Community:
- Tools:
- Integrated a new Github plugin (Codecov) to the team repo so that it is able give codecoverage comments in the review page.
- Integrated a new Github plugin (Netlify) to the team repo so that the team can review documentation changes for PRs.
- Other Contribution:
- Assisted @justgnohUG with exploring the implementation of autocomplete functionality in JavaFX.