Project: CoDoc

CoDoc is a desktop contact management application. The user interacts with it using a CLI, and it has a GUI created with JavaFX. It is written in Java, and has about 1800 LoC.

Given below are my contributions to the project.

  • New Feature: Edit command and edit command parser: #48, #66, #141, #201
    • What it does: It is able to add and delete individual modules and skills from a person.
    • Justification: This allows the module and skill list to be easily updated. The original edit would only replace the original skill list with the new skills that the user fed as inputs.
    • Highlights: New prefixes were added, m+/, m-/, s+/ and s-/. This allows the user to flexibly manage the lists without having to recreate the original list. For v1.2, there were other prefixes such as so/ and sn/ to represent a 1-to-1 update of the skill list. User would have to specify the old skill to be updated and the new skill. These were later removed in v1.3 as I realised that using s-/ and s+/ in the same command has the same functionality as so/ and sn/.
  • New Feature: Course List: #120
    • What it does: A list of courses that our application supports.
    • Justification: The list was introduced to standardize user inputs for courses, preventing users from inputting cs or comp sci to represent Computer Science. This helped to make our find function more user-friendly as users know what to search for, rather than having to toggle between the different names representing the same course. Users could simply input the index of the course that is shown in the left panel, minimising the keystrokes as well.
    • Highlights: This is displayed as a list with index numbers in the left panel of our application.
  • New Feature: Help window: #98, #99
    • What it does: Improved the help window to display a table of our command summary.
    • Justification: Experienced users need not refer to our user guide everytime they forget a specific command. They can simply refer to our command summary table in the help window and this would increase the user experience as it can be troublesome to reference the user guide everytime.
    • Highlights: The table also allows users to copy the commands and paste them into the text box, streamlining the user experience.
  • New Feature: Copy url buttons: #139, #148
    • What it does: Allows user to copy the email address, github profile and linkedin profile links of a contact.
    • Justification: Improved the user experience as the links can be copied to their clipboard to be used in their browser.
    • Highlights: Copy to clipboard
    • Credits: The original copy url button that was meant for the user guide link in the help window.
  • Code contributed: RepoSense

  • Project management:
  • Enhancements to existing features:
    • Modified the CodocParser with every new iteration
    • Created a singleton for a dummy person within the Person class to be displayed when the contact list was empty: #125
    • Enhanced the help window: #97
    • Enhanced the add and edit command: #67
    • Minor improvements and bug fixes: #83, #86, #87
  • Documentation:
    • User Guide:
      • Add new sections for the user guide, particularly the Glossary, Command Summary, Navigating the User Guide and Notes about the Command Format: #149
      • Edited the user guide pertaining to the features that I implemented: #151, #203, #208
      • Edited the table of contents and navigation of the user guide with every new iteration
    • Developer Guide:
      • Add new sections for the developer guide, particularly the Glossary, Target Audience and Navigating the Developer Guide: #88
      • Edited the non-functional requirements and use cases: #29, #134
      • Edited the developer guide pertaining to the features that I implemented with UML diagrams: #88, #90, #134
      • Edited the table of contents and navigation of the developer guide with every new iteration
  • Tools:
    • Java
    • JavaFX
    • SceneBuilder
    • Jackson
    • Junit5