layout: default.md
title: " Project Portfolio Page"
Project: Staff-Snap
Ivan Lee's Project Portfolio Page!
Author: Ivan Lee @ivanleekk
What is Staff-Snap?
Staff-Snap is a desktop HR management application used for managing employees. The user interacts with it using a CLI,
and it has a GUI created with JavaFX. It is written in Java, and has about 9 kLoC
What have I done?
Given below are my contributions to the project.
- Sorting feature: Added the ability to sort the applicant list by various comparisons using the
sort
command.
- What it does: allows the user to choose to sort the applicant list by name, phone, email, position applied
for, or score. This can be in ascending or descending order.
- Justification: This feature improves the product significantly because a user may want to sort the list via
different methods throughout the use of Staff-Snap, such as by score in descending order to find the best
applicants, or in alphabetical order by name when handling admin activities.
- Highlights: The sort command has been designed in a modular manner, such that future enhancements are quick
and easy to implement. As all descriptors used for comparison link to a field in the Applicant class, additional
sorting criteria can be added quickly as and when they are needed.
- Credits: My team for helping me find bugs and reviewing my PRs whilst I was working on this feature.
- Filter feature: Added the ability to filter the applicant list by one or more fields using the
filter
command.
- What it does: allows the user to choose to filter the applicant list by name, phone, email, position applied
for, or if it is less than or greater than the score specified, or by status.
- Justification: This feature improves the product significantly because a user may want to filter the list of
applicants down to contain only relevant applicants. For example, they might only want to see applicants who
applied for a Testing Engineer role and got a score more than 7.
- Highlights: The filter command was designed with the needs of a hiring manager in mind, and how they would use
such a feature. As such, we included all relevant fields that a hiring manager might use in the hiring process,
such as filtering applicants based on the scores they received.
- Credits: My team for helping me find bugs and reviewing my PRs whilst I was working on this feature. As well
as coming up with the base Applicant class and Score class which I used to help filter the applicants.
- Status feature: Added the ability to give applicants a status of Undecided/Offered/Rejected using
status
command.
- What it does: allows the user to choose to give applicants a status for their job application.
- Justification: Hiring managers have to make the decision for who to hire and prune out unworthy candidates
throughout the process. A status tracker will help them check who they have reviewed, who has been rejected, who
has been offered, and who is still undecided. This reduces administrative headaches when a wrong message was sent
to an applicant who may not be in the process anymore.
- Highlights: The status command was designed to be extended if more specific tags are required, few changes
have to be made to the files in order for it to work well. As part of making the command quicker to use,
short-forms of the three valid statuses can be used in the command.
- Credits: My team for helping me find bugs and reviewing my PRs whilst I was working on this feature. And for
coming up with the idea to implement the status tracking.
- Project management:
- Complete features required for releases.
- Facilitate ad hoc meetings with the team to discuss future plans for the week.
- Enhancements to existing features:
- Wrote additional tests to improve code coverage from 70.24% to 74.22% #100
- Documentation:
- User Guide:
- Added documentation for the features
filter
and sort
#142
- Developer Guide:
- Added implementation details of the
sort
and delete
features (Pull
requests #109, #114) - Added Activity Diagrams for
sort
and delete
features (Pull
requests #109, #114)
- Community:
- PRs reviewed (with non-trivial review
comments): #108, #129, #210
- Reformatted User Guide from Google Docs for planned features to use
GFMD instead #32