Project: uMessage

uMessage is a desktop app that helps university students manage contacts, academics and CCAs that communicate and hold meetings on various platforms. It is optimized for keyboard users.

Given below are my contributions to the project.

  • Code contributed: RepoSense link

  • New Feature: Make the list of persons selectable (PR #112)

    • What it does: Allows the user to directly view the detailed contact information of any person in the contact list simply by clicking with the mouse or navigating with the arrow keys.

    • Justification: This feature improves the product significantly because a user can conveniently browse and see detailed information, improving the information density our product is able to deliver.

    • Highlights: This enhancement requires understanding of the observer pattern used in the GUI framework and FXML.

  • New Feature: Add ability to add and remove individual tags from a person (PR #88)
    • What it does: Allows the user to create and delete individual tags in the application

    • Justification: As part of the target user profile, this a key feature that allows the user to organise the contacts in the address book.

  • New Feature: Filter list by clicking a tag label (9f227def)
    • What it does: Allows the user to filter the Person/Meeting list by clicking on a tag label in the tag panel.

    • Justification: This feature improves the product significantly because a user can conveniently filter for groups of people/meeting with just a click, which is a key feature of our product.

  • New Feature: Add SocialMedia to Person (PR #77, PR #131)
    • What it does: Allows Person instances to contain information about any number of social media handles. Users can add/delete/edit specific SocialMedia entries for each person easily.

    • Justification: Storing multiple and manipulating social media handles for each person is part of our product’s feature.

    • Highlights: This enhancement requires understanding of data storage and retrieval from AB3.

    • Credits:

      • Chee Hong: Writing SocialMedia class, command for editing SocialMedia entries, JSON serialization of SocialMedia.
      • Weng Qi: Command for adding & deleting individual SocialMedia entries.
  • Enhancements to existing features:

    1. Changes to Email regex (PR #227)
      • Fix regex to allow for more than 2 consecutive special characters in local-part of an email.
      • Set character limits of Email to follow RFC guidelines.
    2. Allow index-based commands to work with names (106db91, PR #232)

    3. Make UI components scale dynamically to the window size (PR #212)

    4. Wrote unit tests for EditSocialMediaCommandParser (PR #260), ParserUtil (PR #230)
  • Project management:
    • Managed releases 1.2, 1.3.trial, 1.3.1.
    • Created milestones for the team repo.
  • Documentation:
    • Developer Guide:
      • Add Product Scope. (PR #55)
      • Add Acknowledgements. (c724c4)
      • Wrote implementation for Target class. (c8c5f74)
      • Wrote implementation for split-view panel (credits to Wu Zihao for the sequence diagram). (d014e58)

      • Update diagrams for Model component, Storage component, and ParserClasses under the Logic section. (PR #236)
    • User Guide:
      • Add instructions on editing social media. (6833d5)
      • Add instructions on add and delete commands. (130fcfb)
      • Fixed minor grammatical issues (bc8c99)
  • Contributions to team-based tasks:
    • Update site-wide settings: (PR #44)
    • Update AboutUs.md: (PR #44)
    • Carried out PDF conversion of Developer guide : (#PR 263)
  • Review/mentoring contributions:
  • Community:
    • Reported a total of 10 issues during the PE dry run.
    • Helped others on the forum with technical difficulties (examples: 1, 2)
    • Shared information about setting up unit tests in Visual Studio Code.