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 (To be added) kLoC.

Given below are my contributions to the project.

  • Code contributed: RepoSense

  • Major Enhancement: Boosted find command. #74, #82, #94
    • What it does: Allows users to find contacts by their year and course using a single find command.
    • Justification: To enhance the search ability of users, so they can find contacts based on their year and course, on top of their name, enabling them to reach out to them for collaboration quicker and more effectively. This would be useful, especially if the user has many contacts.
    • Highlights:
      • Made finding to find by logical AND, both across different prefixes and within the same prefix. This follows the typical convention that websites use for their filters, e.g. Shopee and YouTube.
      • Made it such that finding uses contains instead of containsWord as it is more commonly used, e.g. Cmd-F/Ctrl-F also uses contains.
      • Made find command case-insensitive to allow users to search faster without having to press the Caps Lock key.
  • New Feature: Implemented clicking of tabs and PersonCard. #119
    • What it does: Allows users to click on the PersonCard in the PersonListPanel to view the details on the right info panel and allows users to change tabs by clicking.
    • Justification: To add flexibility and convenience for users on top of the view command.
    • Highlights:
      • Had trouble implementing things like FireEvent/CatchEvent/EventDispatcherChain to handle events smoothly, but managed to work around it, though not the best solution.
      • Was later improved with Harin’s fix. #129
  • New Feature: Added default profile pictures. #119
    • What it does: Improves aesthetics of CoDoc, can allow users to identify contacts by specific profile pictures as well.
    • Justification: As much as we wanted to allow the user to be able to add their own preferred profile pictures, this allows each contact to have a semi-unique (allows duplicates) profile picture the moment it is added, eliminating the need for the user to add it manually every time.
    • Highlights:
      • Profile picture path is saved as a person’s attribute.
      • They are randomly generated from a pool of 50 pictures when the person is added.
    • Credits: The pool of 50 pictures was sourced from here: https://www.flaticon.com/packs/animals-123
  • Enhancements to existing features:
    • Modified Tag to Skill to fit CoDoc’s value proposition better. #46
    • Modified Phone to GitHub with appropriate constraints, made optional. #56, #58
    • Modified Address to LinkedIn with appropriate constraints, made optional. #56, #64
    • Modified PersonListCard and rearranged the details to improve user visibility. #119
    • Added scroll to last Person when added so user can see its index for convenience. #160
    • Created a new set of sample data that are relevant and complete, i.e. persons with valid attributes and lists of realistic modules and skills, to make it for appealing for users. #119
    • Minor improvements and bug fixes: #107, #122, #126, #127, #135, #147, #170
  • Documentation:
    • User Guide:
      • Created Navigating CoDoc and Tutorial sections. #138
      • Updated pictures for the Tutorial section. #157
      • Fixed and organised table of contents. #143
      • Fixed language errors. #157, #213
    • Developer Guide:
      • Added details for ProfilePicture, GitHub, LinkedIn and Skill attributes under Person Class. #92, #213
      • Added all find command implementation details, including sequence diagram, activity diagram and design considerations. #92, #102, #213
      • Added Appendix: Planned Enhancements section. #213
  • Project management:
    • Updated project notes from time to time.
    • Sourced and modified Figma template for mock UI. Figma
    • Updated README file. #25
    • Updated site-wide settings. #28
    • Renamed packages to remove anything related to AB3. #64
  • Community:
  • Tools:
    • Java
    • JavaFX
    • SceneBuilder
    • Jackson
    • Junit5
    • Figma
    • CATcher