Sean Iau Yang's Project Portfolio Page
Project: NUS Module Planner
NUS ModulePlanner is a brownfield project based on AddressBook - Level 3, a desktop address book application used for teaching Software Engineering principles. The user interacts with it using a CLI, and it has a GUI created with JavaFX. It is written in Java, and has about 10 kLoC.
Given below are my contributions to the project.
- New Feature: Added the ability to add and delete a Semester to a Plan.
- What it does: This feature allows the user to add or delete a Semester to or from a Plan.
- Justification: This feature is needed as the user will need to plan what modules to potentially take in each semester. These modules are also only available in certain semesters and as such having semester planning is necessary.
- Highlights: Implementation of this feature required the addition of new
Model
,Command
,Parser
andJsonSerializable
implementation forSemester
.
- Enhancement to existing features: Morphed existing Person implementation into Plan.
- What it does: This feature allows the user to add or delete a Plan within the application.
- Justification: This feature is needed as this will enable to user to be able to manage and organise their different study plans accordingly.
- Highlights: Implementation of this feature required the modification of all functionalities related to the AB3
Person
model such as its variables and its JSON storage implementation.
-
Code contributed: RepoSense
- Documentation:
- User Guide:
- Added documentation for the feature
addp
/deletep
. - Added documentation for the feature
adds
/deletes
.
- Added documentation for the feature
- Developer Guide:
- Added documentations,
Plan
object diagram and several sequence sequence diagrams for theaddp
function.- Architecture sequence diagram.
- Constructor sequence diagram.
toString()
method sequence diagram.
- Added several use cases:
- Add a plan.
- Delete a plan.
- Add a module to semester.
- Added documentations,
- User Guide:
- Project Management:
- Encouraged features to be done by the stipulated deadline.
- Provided support and help to teammates who require assistace.
- Managed issues on Github issue tracker to ensure that issues are being closed appropriately and in a timely manner.
- Community:
- 2 peer PRs reviewed.