Huang Hao's Project Portfolio Page
Project: SOCket
SOCket is a desktop address book application used for teaching Software Engineering principles. The user interacts with it using a CLI, and it has a GUI created with JavaFX. It is written in Java, and has about 10 kLoC.
Given below are my contributions to the project.
- New Feature:
remove
command #88- What it does: Allows users to remove specific field value based on the input command.
- Justification: Users are able to remove any field value of the contact information without excess typing.
- Highlights: Ensures that only unwanted field value are removed from contact information.
- Credits: {-}
- New Feature:
view
command #108- What it does: Allows users to view a specific contact detail.
- Justification: Users are able to view detailed information of a contact by
view
command or click on the contact card. - Highlights: Places the selected contact into the contact detail panel to display all the detailed information.
- Credits: {-}
- New Feature:
clearpj
command #154- What it does: Allows users to clear off all the project in the project list
- Justification: Users are able to clear all projects in a single command.
- Highlights: Ability to delete all the projects.
- Credits: {This feature idea was adopted from
clear
command}
- New Feature: Added keyboard shortcut #203
- What it does: Allows users to perform
undo
,redo
andexit
command using keyboard shortcut. - Justification: Users are able to do undo/redo/exit similar to other commonly used applications.
- Highlights: Make use of well-known keyboard shortcut to perform undo/redo/exit function.
- Credits: {This feature idea was adopted from
help
keyboard shortcut of AddressBook-Level3}
- What it does: Allows users to perform
-
Code contributed: RepoSense link
- Enhancements to existing features:
- Updated
clear
command to allow users to remove group of contacts associated with the given tag(s) #127 - Updated the restriction on the number of tags associated to each contact to prevent misuse of the feature #172
- Improved the UI in
HelpWindow
by categorising commands into different subgroups so that users can look for the command guide easily #190 - Improved the UI and UX in
MainWindow
#108, #117, #128, #162- Reallocated the result display and command box from the top of the application to the bottom as it allows for a more natural and intuitive user flow, with the display panel at the top.
- Seperated the contact display into 2 components, contact list panel and contact detail panel, using split panel. Contact list displays minimal information while contact detail panel displays all the information related to the contact.
- Added project list panel alongside with contact display, both located at the top of the page and occupying 70% of the page space as they are critical components of the application and play a central role in its functionality, so that users can quickly access and interact with these features.
- Improved the contact list by allowing users to click on the card and displays contact detail of the contact in contact detail panel.
- Improved contact card by automatically wrapping tags based on the width of the contact card.
- Improved the shape of the display card from sharp to round edges, so that the overall aesthetic of the application is enhanced. The round edges create a smoother and more polished look which help to soften the visual impact of the display card, which can give the impression of a more refined and elegant design.
- Implemented a hover effect on contact list so that users can quickly identify which elements on the page are interactive and clickable.
- Updated
- Documentation:
- User Guide:
- Developer Guide:
- Community: