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 20.8k LoC.

Summary of Contributions

These following new features were simple but very tedious to implement as simply adding new attribute required adding new files all over the code, Logic, parser, model and storage were all touched. I had to update the test cases as well to ensure the new test cases include the newly added attributes. Despite the tediousness, it was an important role as my peers were about to build upon the foundations I made to build greater implementations like, filtering based on module or courses.

  • New Feature: Module
    • What it does: Provide Module field for Person in Codoc
    • Justification: Codoc is an address book for Students and Module is an important aspect of student
    • Highlights: The regex checked for the correct format and an additonal validation was required to ensure correct module Years
  • New Feature: Course
    • What it does: Provide Course field for Person in Codoc
    • Justification: Codoc is an address book for Students and Course is an important aspect of student
  • New Feature: Year
    • What it does: Provide Year field for Person in Codoc
    • Justification: Codoc is an address book for Students and Year is an important aspect of student
  • Project management: I was able to merge PRs of my teammates and even spot errors which might be bad for the project before they are merged into master branch. I was able to set up the organisation, create the repository and gave my teammates access as well.

  • Enhancements to existing features:
    • Extended Person class to include more attributes
    • Modified Storage class to account for new attributes
    • Modify add command to include the new attributes
    • Modify find command to include the new attributes
  • Documentation:
    • User Guide:
      • Fix github issues pertaining to confusing layout in UserGuide
    • Developer Guide:
      • Explanation of Module Class
      • Tidied up table of content links and navigation and ensure their proper function
      • Tidied up glossaries and added Java specific definitions
      • Added use cases and neaten up use cases which can be inside other use cases
      • Provided images for the UI implementation segments and added Course List Panel Segment.
  • Community:
  • Tools:
    • JavaFX
    • Jackson
    • JUnit5