Project: CANdidates

CANdidates is a powerful contact management desktop App optimised for job recruiters to manage 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 25 kLoC.

Contributions Summary

Given below are my contributions to the project.

  • Code contributed: RepoSense link

  • New Feature: Job Listings (Pull requests #84 and #94)
    • What it does: This feature enables a job listing to be represented in the application.
    • Justification: This is the preliminary modification of AB3 uniquely into CANdidates, for subsequent features to be rolled out for job listings.
    • Highlights: This allows job recruiters to store job listings in CANdidates to keep track of all jobs with recruitment opportunities.
  • New Feature: Find Candidate(s) (Pull requests #148, #153 and #167)
    • What it does: Enables the user to find candidates with field(s) that contain(s) keywords.
    • Justification: This feature improves the product significantly because a typical job recruiter has many candidates to handle, this feature will provide a convenient way for them to look for suitable candidates that fulfil a certain criteria and streamline their search.
    • Highlights: This enhancement was challenging as it requires chaining of various predicates, based on the fields specified by the user, to achieve the desired outcome. An in-depth understanding of the code base and its logic flow are required due to the numerous other classes involved.
  • New Feature: Find Job Listing(s) (Pull requests #148, #153 and #167)
    • What it does: Enables the user to find job listings with field(s) that contain(s) keywords.
    • Justification: This feature improves the product significantly because a typical job recruiter has many job listings to handle. This feature will provide a convenient way for them to look for job listings with specific keywords, streamlining their search, thereby helping him/her fulfil the recruitment required in a timely manner.
    • Highlights: This enhancement was challenging as it requires chaining of various predicates, based on the fields specified by the user, to achieve the desired outcome. An in-depth understanding of the code base and its logic flow are required due to the numerous other classes involved.
  • Enhancements to existing features:
    • Preliminary adaptation from AB3 to cater for Person and Job. (Pull requests #35 and #84)
    • Created predicate package and related files to support Find command. (Pull requests #123 and #124)
    • Enhanced the find command to enable searching keywords by fields and wrote tests for them. (Pull request #148)
  • Project management:
    • Defined tasks for each release, assigned them to team members and tracked completion.
    • Maintained the issue tracker and ensured that issues were assigned and fulfilled timely.
    • Scheduled meetings for the team to address problems and ensure meeting of deadlines.
    • Keep track of and remove unnecessary files in project. (Pull requests #291 and #329)
  • Documentation:
    • About Us:
      • Mounted team’s About Us page. (Pull request #33)
    • Developer Guide:
      • Wrote documentation for and maintained the sections on target user profile, value proposition and user stories. (Pull requests #34 and #234)
      • Wrote documentation for implementation of Find feature and its sequence diagram. (Pull requests #131 and #282)
      • Updated documentation and design of Model component including the UML diagrams along with teammate Joon Jie. (Pull request #142)
      • Identified use cases and updated the sections to reflect new features that were developed. (Pull requests #234 and #325)
      • Updated Manual Testing section with tests for Finding a candidate. (Pull request #282)
      • Enhanced formatting of contents page and section headers. (Pull request #293)
      • Updated documentations regularly to ensure consistency in content and format. (Pull requests #282, #294, #325 and #329)
    • User Guide:
      • Wrote documentation for the sections Introduction, Authors, Preface and Understanding Symbols. (Pull request #155)
      • Wrote documentation for the features find can and find job. (Pull request #155)
      • Wrote documentation for the feature Auto tab switch. (Pull requests #317 and #318)
      • Enhanced formatting of UG by separating features for candidates and jobs into different sections. (Pull request #239)
      • Enhanced formatting of contents page and section headers. (Pull request #293)
      • Enhanced formatting of every feature’s step by step documentation. (Pull request #317)
      • Updated documentations regularly to ensure consistency in content and format. (Pull requests #116, #155, #170, #171, #235, #237, #294, #308, #325 and #339)
  • Community:
    • Contributed to forum discussions by clarifying an issue for the team project. (Example: #348)
    • Reported bugs found and assigned the issues to relevant teammates. (Examples: #152, #161, #327)
    • Reported bugs for and gave suggestions to other teams in the class. (Examples: Issues transferred to other team’s repository #248, #249, #251, #253, #252 and #255)