Neo Jie Xiang's Project Portfolio Page

Project: D.A.V.E.

D.A.V.E. is a leads and clients management tool for student financial advisors specifically in NUS, but can be used for all student financial advisors.

Given below are my contributions to the project.

  • New Feature: Made the Person class abstract and created the Client and Lead subclasses.
    • What it does: Allows the Client and Lead classes to both possess features in common with Person, but have their own specific behavior.
    • Justification: This feature reduces code repetition and improves code quality as it follows the OOP model more closely.
    • Highlights: This feature had to be completed before all other features and commands can be implemented, and thus had to be carefully planned.
  • New Feature: Added the ability to view all persons sorted by their meeting times.
    • What it does: This feature filters out the persons with a meeting time and displays them in chronological order.
    • Justification: This feature improves the user experience by allowing them to keep track of meeting times more easily.
  • New Feature: Added the ability to directly add a meeting time to a person.
    • What it does: This feature allows users to directly add a meeting time to a person instead of doing it through the edit command.
    • Justification: This feature improves the user experience by providing a simpler and more direct way to add a meeting time.
  • Code contributed: RepoSense Link
  • Project Management:
    • Managed release v1.2 on GitHub.
  • Enhancement to existing features:
    • Added test cases for features that I have implemented to increase test coverage.
    • Made the command datetime parsing strict to catch invalid date and time values entered.
    • Fix bug caused by calling toString on the wrong objects, which caused some tests to fail.
    • Fix bug caused by not checking if keyMilestone is null for leads after deserialization from JSON, which caused a NullPointerException on launch.
  • Documentation:
    • User Guide:
      • Expanded the table of contents to include all commands and ensuring that the hyperlinks worked.
      • Added documentation for addmeeting and sortmeeting.
      • Fixed some of the broken tip and warning boxes.
    • Developer Guide:
      • Incorporated change to Person model and the new Lead and Client subclasses to the class diagrams.
      • Added implementation and sequence diagram for the sortmeeting command.
      • Fixed bugs in existing sequence diagrams, as well as simplified and adjusted their sizes to fit the final PDF.
  • Community:
    • PRs reviewed (with non-trivial review comments): #88, #100, #113, #180, #184, #195, #197, #200, #205.
    • Created type, severity, and priority labels for issues.
    • Labelled relevant issues and added them to their milestones.
  • Tools:
    • Created UML diagrams using PlantUML.
    • Used the GitHub CLI to check out and test the pull requests branches.