Project: ClientBook

ClientBook is a client management desktop application made for insurance agents to more conveniently manage their client information to serve their clients better. ClientBook has a command-line interface optimized for use with just a keyboard, but still offering a graphical interface for ease of viewing of client information.

Given below are my contributions to the project.

  • New Feature: Extension to list and find commands to filter the ClientBook to show only specific information about clients.
    • What it does: Allows the user to specify one or more attributes using identifiers to filter what information they would like to see.
    • Justification: When there is a large amount of client information, it would become cluttered and difficult to look for some specific information. If the user wants to make phone calls, he can filter the list to show only client phone numbers, so that he does not need to sieve through the unnecessary information.
    • Highlights: The implementation of this feature allowed me to gain a very good view of the entire code structure. It challenged me to come up with a solution on how to change the displayed client list, without changing the actual client list within the data of the app.



  • New Feature: Extension to edit command to be able to modify, append, insert or replace insurance policies for clients
    • What it does: Allows user to flexibly edit the insurance policies of their clients in multiple ways.
    • Justification: Previously, everytime a user wants to edit some information about their clients, the only option is to replace the old information with the new information. This is highly inefficient, since the user would have to type out an entire list of insurance policies even if he only wants to change 1 insurance policy. With this feature, the user can manage his clients’ insurance policy information much more easily.
    • Highlights: This enhancement required me to go in-depth on how the edit command works, rework and improve the logic and functionality of the command. The challenge was in figuring out how to add new functionality without making the existing feature convoluted.

  • Code contributed: RepoSense link

  • Project management:
    • Managed issues related to bug fixes and milestones v1.1 - v1.4 on GitHub.

  • Documentation:
    • User Guide:
      • Adapted user guide from original AB3 user guide to ClientBook user guide.
      • Added documentation for extensions to edit command and list command functionalities.
      • Added screenshots and notations for readers to more easily follow and visualize the features in the app.
    • Developer Guide:
      • Added implementation details and UML diagram for edit here
      • Added user stories and use cases for list and edit features.
      • Modified AddressBookParser to ClientBookParser in DG text and all UML diagrams.

  • Community:
    • Some PRs reviewed (with non-trivial review comments): #95, #40, #51
    • Bugs reported and suggestions made for other teams in the class