Wei Jie'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.
- New Feature: Added the ability to assign
Status(blacklist/favourite) users (PR #15)- What it does: Allows users to set a status (blacklist/favourite) to any contact. A user is known to be blacklisted/favourited through the UI.
- Justification: This feature improves the product significantly as users want to know who they should be wary of when thinking about forming groups for their modules.
- Enhancements: Changed to a graphical representation instead of a text-based representation (PR #47)
- Credits: Code reuse mainly from
Remark’s tutorial.
- New Feature: Added the ability to filter by users by module code (PR #15)
- What it does: Allows users to filter their contacts by a module that they are taking
- Justification: This feature improves the product as we might want to filter our contacts by the modules they are taking, then contact those people in order to form project or study groups with them. It is a separate command from
findas they do specifically different things. - Highlights: This feature was relatively challenging despite being similar to
findcommand. It required a proper analysis offindin order to understand the inner workings of it, and then following a similar implementation of it. - Credits: Main idea of implementing
filteris derived fromfind
- New Feature: Added the ability to unarchive users from
archiveBook, revamped underlying architecture ofarchivecommand. (PR #135)- What it does: Allows you to archive/unarchive contacts in ModuleMateFinder.
- Justification: This features improves the product as it allows users to organise their contacts better. For example, they can put all graduate students in
archive, and keep them in mind in the event they want to contact them for module feedback. - Highlights: Modifications to the underlying architecture (in
Model) is necessary to fit anotherAddressBook, for it be used asarchiveBook. Also needed to figure out a way to retrieve whichAddressBookwas in view. - Enhancements:
switchwas binded to F10 (PR #122) - Credits: Credits to Bryan for the base implementation.
- New Feature: Added GUI,
AddWindowfor adding a new Person into ModuleMateFinder. (PR #46)- What it does: Allows users to add a new contact into ModuleMateFinder.
- Justification: This feature improves the product significantly as not all users will be familiar with CLI application, or simply do not want to memorise the commands. It provides ease of use, and allows execution of multiple commands by abstracting details.
- Highlights: Required playing around with JavaFX and SceneBuilder to figure out the best layout.
- Enhancements: Extended the feature to allow for adding optional fields like
Module,Status(PR #72) andComment(PR #88). Binded theENTERkey to act as aSubmitbutton, when mandatory fields are added. Reset focus on firstTextFieldwhen window loses focus (PR #102). Extended basic window functionality forEditCommandas well, namedEditWindow(PR #81). - Credits: Code reuse from
HelpWindow, which serves as the baseline for any additional windows.
- GUI Update: Recoloured GUI, and moved certain fields around. (PR #112)
- What it does: Makes ModuleMateFinder more distinct and recognisable with a new colour theme.
- Justification: Less semblance to
AddressBook3, so it has a more original feel to it.
- Code contributed: RepoSense link
- Project Management:
- Managed releases for
v1.2andv1.4, as well as demo videos. - Set up team repo (CodeCov, GitHub environments) for the team.
- Set up PR review system for the team.
- Weekly commits and no deadlines missed.
- Managed releases for
- Bugfixes
- See here
- Community
- Reviewed all PRs done by Julio and Bryan
- Reviewed most PRs by Wei Ming and Benjamin
- Documentation:
- User Guide:
- Developer Guide:
- Add use cases for
statusandfilter(PR #27) - Add use cases for
archive,unarchive,switch,deletemodules, andclearmodules(PR #203) - Reordered use cases to follow the format in the user guide.
- Updated UML diagram for Ui component and add information regarding the additions (
EditWindow,AddWindow), also added an activity diagram, sequence diagram foradd(PR #84) - Add
Appendix: Effortto describe the amount of effort we think is required to make ModuleMateFinder
- Add use cases for
- README:
- Did the mockup UI and the description of ModuleMateFinder here