Lim Ji Wei's Project Portfolio Page
Project: CONNECTIONS
CONNECTIONS is a desktop app adapted from AddressBook - Level 3 for managing contacts and keeping track of birthdays. It is optimized for use via a Command Line Interface (CLI) while still having the benefits of a Graphical User Interface (GUI) that is created with JavaFX. It is written in Java and has about 10 KLOC.
Given below are my contributions to the project.
-
Code contributed: RepoSense link
- New Feature: Added the ability to untag tags from contacts.
- What it does: allows the user to remove one or multiple tags from a contact.
- Justification: This feature improves the product because the user can now remove individual tags from a list of tags that the contact has, instead of having to rebuild the whole list of remaining tags.
- Highlights: This enhancement improves usability of CONNECTIONS. Untag also informs the user if a tag to be removed from a contact is not found in the contact.
- New Feature: Added the ability to retrieve previous commands using
UP
andDOWN
keys.- What it does: allows the user to retrieve and use previously entered commands using the
UP
andDOWN
keys. Allows users to retrieve and use frequently used commands easily. - Justification: This feature improves the product because the user can trace back previously used commands to check what changes have been made, and also reuse previous commands without having to retype the whole command again.
- Highlights: Changes in code has to be made for CONNECTIONS to read and process keystrokes. Future extensions include adding Command History to storage to allow users to retrieve commands used in previous program runs.
- What it does: allows the user to retrieve and use previously entered commands using the
- New Feature: Added command assistant to assist users in forming commands.
- What it does: allows the user to look at the command parameters and examples while the user is keying in the command.
- Justification: This feature improves the product because users can now double-check to make sure that the command keyed is in the right format. It reduces the need for users to re-enter commands due to errors in the command.
- Highlights: This enhancement provides a rudimentary version of input validation. As this function works using keystroke validation, steps have to be taken to exclude certain keystrokes, e.g.
ENTER
, so that it does not affect the current functionalities. A separate type of command, which is initiated by theSystem
instead ofUser
input, has to be created. Future extensions include showing users exactly what parameters are missing or entered wrongly.
- Enhancements to existing feature: Improved
Help
command usability.- Added functionality to allow
Help
to take in additional parameters so that users can easily obtain support for usage of commands. For example, users can now usehelp
to obtain a list of available commands, andhelp COMMAND
to get help for a specific command. - Refactored help messages for all commands to improve quality of help messages.
- Added functionality to allow
- Enhancements to existing feature: Added unit test for functions.
- Added unit tests to for new and existing features to increase test coverage.
- Features include
Help
,Untag
andCommand History
.
- Project management:
- Managed release
v1.3
on GitHub. - Created, managed and closed issues and milestones on GitHub to track todos and project progress.
- Managed issues and milestones for
v1.3
andv1.3b
.
- Managed release
- Documentation:
- User Guide:
- Developer Guide:
- Index:
- Refactored Index file for CONNECTIONS (#71)
- Community:
- PRs reviewed (with non-trivial review comments): #177, #183
- Reported bugs and suggestions for other teams in the class: Bug Report