Wei Ming's Project Portfolio Page
Project: ModuleMateFinder
ModuleMateFinder is a desktop address-book-like application used to keep track of your friends’ contacts, as well as the modules they are taking. The user interacts with it using a CLI, and it has a GUI created with JavaFX. It is written in Java. Given below are my contributions to the project.
-
Code contributed: RepoSense link
- New Feature: Added the ability to sort persons by specified fields in
Person. #44- What it does: Allows the user to sort all
Personby specified fields and specify ascending or descending order. - Justification: This feature improves the product significantly because a user can order persons based on what their needs. e.g. sort by status to track people by their status.
- Highlights: This enhancement affects existing attributes of persons to be added in future. It required an in-depth analysis of design alternatives. It also required a design that made it easily extendable for fields of
Personif more were to be added. - Credits: Syntax inspired by SQL language.
- What it does: Allows the user to sort all
- New Feature: Added the ability to copy details based on specified fields. #78
- What it does: Allows the user to copy information from an individual
Personor allPerson, and specify format. - Justification: This feature improves the product as user might want to copy and paste information from ModuleMateFinder. e.g. User can transfer information to an excel file using csv format.
- Highlights Difficulty in implementing each format, especially the json format since the command
allowed user to choose variable fields for person to copy, while existing
JsonAdaptedPersonrequired all fields to be displayed.
- What it does: Allows the user to copy information from an individual
- New Feature: Added delete modules command. #16
- What it does: Allows the user to delete modules by specifying the module name.
- Justification: This feature allows user to remove specified modules for a specific person.
- New Feature: Added clear modules command. #16
- What it does: Allows the user to clear all modules taken by a person.
- Justification: Clear all modules taken by a person so user does not have to delete each module individually.
- Enhancement: Refactor archive feature. #195
- What it does: Refactor archive feature to ensure clearer separation between
LogicandModel. Shifted archive command logic fromUIback intoLogicandArchiveCommand - Justification: This reduces coupling and increases code quality. Previous implementation drifted from architecture without clear separation between
UI,Logic,StorageandModelcomponents.
- What it does: Refactor archive feature to ensure clearer separation between
- Bug Fix: Fix bugs resulting from undo/redo and archive. #195
- What it does: Fixed implementation of undo/redo to store
ArchiveBookas well in order to account for archive.
- What it does: Fixed implementation of undo/redo to store
- Documentation:
- User Guide:
- Developer Guide:
Community:
- Reviewed all PRs done by WeiJie and Julio.
- Helping team members with bugs.