Project: EzContact

EzContact is a desktop app made for insurance agents to manage customer details, optimized for usage via Command Line Interface (CLI) while still having the benefits of a Graphical User Interface (GUI). If you can type fast, EzContact can get your contact management tasks done faster than traditional GUI apps.

Given below are my contributions to the project.

  • New Feature: Added a tag command that allows users to update tags of a specific customer in EzContact.

    • What it does: Users can update tags associated to a specific customer, by providing tags to add and tags to delete through the tag command.
    • Justification: This feature significantly improved the product to make it a better fit to our target audience. Through associating descriptive tags to a customer, our users will be more likely to remember their customers and will also be helpful in identifying their customers.
    • Highlights: This enhancement required an in-depth analysis of design alternatives, from choice of data structure to hold the tags, to handling of certain user behaviours such as handling of duplicate tags provided, conflicting tags provided and addition(deletion) of existing(non-existing). The decisions made were mainly driven by ensuring the best user experience.
    • Credits: The association between the Tag class and Person class was originally implemented in AB-3, there was not much modification done to this association

  • Code contributed: RepoSense link

  • Project management:

    • Managed releases v1.2 - v1.4 (5 releases) on GitHub
    • Managed the issue tracker and milestones, ensured team members' timely delivery of deliverables and team tasks
    • Distributed team tasks on a weekly basis. Hosted the features brainstorming session (Issues #101, 141)
    • Managed bugs reported in PE-D, identified and filtered out duplicate bugs, while assigning each bug to the responsible developer and provided a summary (Issue #289).
  • Enhancements to existing features:
    • Made the address field of a customer optional (PRs #68, #83,#102, #197)
    • Refactored the JsonAdaptedPerson structure, introduced JsonAdaptedAttributes(JsonAdaptedName, JsonAdaptedPhone etc.) to facilitate conversion between json format and model type(PR #103). Throughout the process of refactoring,discovered and solved a bug in original AB-3 conversion[PR #204].
    • Created UI componenet FlowPaneLabel used to display priority, tags and insurances associated to a customer (PRs #162, #208).
    • Updated the GUI color scheme and overall design (PR #189)
    • Added the functionality of secondary prefix, that is every prefix now has a shorthand representation and a full name representation, while also making the prefixes not case-sensitive (PR #238)

  • Documentation:
    • User Guide:
      • Updated the Quick Start section and created the UI Layout Description section.
      • Drafted the overall structure and formatting for features section to be used across team members.
      • Added documentation for the features add, tag and also the Advanced Features section.
      • Added the Prefix to full-name prefix translation table section.
      • Checked the degree of standardization between different sections of the UG.
      • Tweaked the UG to make it pdf-version friendly.
    • Developer Guide:
      • Added the implementation details of the tag feature (including all the UML diagrams used in the explanation).
      • Added use case for adding a customer(UC01) and updating tags of a customer(UC09).
      • Added the manual testing instructions for the tag feature.
      • Added the Planned Enhancement 1: Deletion of all tags(and insurances) in one command.
      • Identified and fixed a bug of UML diagram in the Design - Model Component section.

  • Community:
    • PRs reviewed(with non-trivial review comments): #77, #110, #120-1, #120-2, #119, #148
    • Contributed to forum discussions (examples: 1, 2, 3)
    • Reported bugs and suggestions for other teams in the class (examples can be found here)