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.