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 and exit 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}
  • 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.
  • Documentation:
    • User Guide:
      • Added documentation for the feature remove, clear, clearpj, view #52, #91, #111, #179
      • Added “GUI of SOCKet” image under Quick start section #179
      • Added screenshot to add, edit, remove, find, sort, addpj, editpj, removepj, sortpj, assign, unassign and help command #255
    • Developer Guide:
      • Added use cases UC06, UC13, UC17 #61, #111
      • Added manual test case for remove, clear, view and clearpj \256
      • Added removefeature under implementation #179
      • Updated existing UI class diagram with ProjectListPanel, ProjectCard, PersonDetailPanel and PersonDetailCard #179
  • Community:
    • PRs reviewed (with non-trivial review comments): #89, #260
    • Contributed to forum discussions: #78.