Gao Haochun's Project Portfolio Page
Project: MrTechRecruiter
Overview
MrTechRecruiter (MTR) is a desktop applicant management application designed for tech companies to keep track of job applicants. 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.
Code contributed: RepoSense link
New Feature
- Added the ability to undo previous commands.
- What it does: allows the user to undo all previous commands one at a time.
- Sample pull request: #102
- Justification: This feature improves the product significantly because a user can make mistakes in commands and the app should provide a convenient way to rectify them.
- Highlights: This enhancement affects existing commands and commands to be added in future and requires an analysis of design alternatives. The implementation was also challenging as it required changes to existing commands.
- Credits: The design of undo feature is adapted from here.
Enhancements to existing features
- Implemented command
add-position,edit-position,edit-applicant,delete-positionadapted from AB3- Relevant pull requests: #42, #45, #86, #91,
- What is does: the features allow user to add, edit and delete positions, and edit applicants.
- Justification: the features are essential to MrTechRecruiter because they enable the basic CRUD.
- Highlights: the features need to deal with the interaction between
positionandapplicantproperly, which is time-consuming to design. Moreover, the implementation should ensure the position that an applicant is applying to should always exist in MrTechRecruiter beforehand.
- Removed AB3-related files from the code base
- Sample relevant pull request: #173
- What is does: Removes all AB3-related classes and tests and disables the AB3-related functionality such as
addandedit. - Justification: Our project is adapted from AB3 but AB3-related codes were not removed from our code base until the mock PE. The in-depth analysis of the design structure was needed to perform the removal.
- Wrote tests for existing features to increase coverage
Documentation
- User Guide:
- Developer Guide:
- Added use cases details of the
add-positionanddelete-positionfeature: #17 - Did overall check for existing contents: #199
- Added the instructions for manual testing for the features
add-position,edit-position, etc.: #201 - Updated and improved the implementation section, and drew sequence and activity diagrams: #205
- Added use cases details of the