Project: Intern Watcher

Intern Watcher (IW) is a desktop app for Human Resource Managers (HRs) to manage internship applicants. The user interacts with it using a Command Line Interface (CLI), and it has a Graphical User Interface (GUI) created with JavaFX. It is written in Java, and has about 17 kLoC.

Given below are my contributions to the project.

  • New Feature: Added the ability to do mass filtering against a combined collection of criteria at once.
    • What it does: Allows the user to filter the applicant list with various and multiple criteria specified against different factors: Grade, GraduationYearMonth, Skill, Status, Institution, Course and Job.
    • Justification: This feature improves the product significantly because a HR can select potential applicants based on different requirements with great flexibility and efficiency.
    • Highlights: This enhancement required an in-depth analysis of design alternatives via careful and thorough consideration of the target users’ demands and the most probable use cases. For example, for filter on Grade, only one instead of multiple filters will be accepted and only applicants with grades not less than the specified threshold will be displayed as HRs should be more interested in finding applicants that at least meet the requirement specified in regard to grade. The implementation too was challenging as it required to combine filters of different factors and deal with their respective behaviours and specifications.
  • New Feature: Added GraduationYearMonth field to applicants.

  • New Feature: Added Job field to applicants.

  • Code contributed: RepoSense link

  • Enhancements to existing features:
    • Added feature to allow Skill to take in symbols +# to accomodate skills such as C++ and C# (Pull request #152)
    • Changed the field value (of type String) of GraduationYearMonth to type YearMonth as it facilitated the comparison between GraudationYearMonth. (Pull request #152)
    • Changed the case-sensititvity of Name for AddCommand to case-insensitive for more practical dertermination of duplicate applicants. (Pull request #222)
    • Wrote additional and maintain tests for newly added fields (GraduationYearMonth and Job) and feature (Filter) to maintain coverage (Pull requests #24, #119)
  • Documentation:
    • User Guide:
      • Refined documentation for the features filter and add #144, #222
      • Report bugs for User Guide #242
    • Developer Guide:
      • Added implementation details of the filter feature including the sequence diagram for a filter command. #109
      • Refined documentation for the features filter and add #222
      • Report and fix bugs for Developer Guide #243, #262
    • AboutUs:
      • Update and refine details for roles, responsibilities and features #257
  • Community:
    • PRs reviewed (with non-trivial review comments): #85, #97, #115, #129, #137, #205, #252, #253
    • Contributed to forum discussions (examples: 1, 2, 3, 4)
    • Reported bugs and suggestions for other teams in the class (examples: ped)
  • Contributions to team-based tasks:
    • Morphing the product into a different product by adding the distinguished filter feature (#97)
    • Maintain Issue Trackers
    • Updating user/developer docs that are not specific to a feature (#42):
      • update product scope
      • update user stories
      • update NFRs
      • update Glossary
  • Contributions to Project Management and Organisation::
    • Managed and organised project resources/minutes and facilitated discussions/meetings (Google Drive)