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.

Given below are my contributions to the project.

  • Code contributed: RepoSense link

  • New Feature: Ability to sort candidates
    • What it does: Sorts the list of candidates by their experience, expected salary, name, blacklist status and date of application in an ascending or descending order.
    • Justification: This feature improves the product significantly because a user can quickly sort the items with a single command. A well organised and sorted list of candidates makes it easier for the user, a job recruiter to select or view potential candidates for a particular job listing.
    • Highlights: This enhancement is challenging as it is a fresh implementation and no similar implementations exists in the original codebase of AddressBook 3. Thus a good understanding of the logic flow of the code base is required due to the multitude of classes and methods involved.
  • New Feature: Ability to view all information of a candidate on the right panel of the GUI
    • What it does: Displays a candidate and all his/her relevant information on the right panel of the GUI.
    • Justification: This feature allows the user to have an easier time viewing and accessing the information of a candidate on the right panel. The list cells used to show all the candidates on the left panel of the GUI are too small hence making it not very conducive for viewing large volumes of information.
    • Highlights: This enhancement is challenging as it is a fresh implementation and no similar implementations exists in the original codebase of AddressBook 3. Furthermore good knowledge of the integration between the codebase and the various UI components is required to implement this feature.
  • New Feature: Ability to view all information of a job on the right panel of the GUI
    • What it does: Displays a job and all its relevant information on the right panel of the GUI.
    • Justification: This feature allows the user to have an easier time viewing and accessing the information of a job on the right panel. The list cells used to show all the jobs on the left panel of the GUI are too small hence making it not very conducive for viewing large volumes of information.
    • Highlights: This enhancement is challenging as it is a fresh implementation and no similar implementations exists in the original codebase of AddressBook 3. Furthermore good knowledge of the integration between the codebase and the various UI components is required to implement this feature.
  • Project management:
    • In charge of designing and implementing the User Interface of the GUI for each release.
  • Enhancements to existing features:
    • Overhualed the user interface of the GUI (Pull requests #88, #115, #223, #224, #242, #262, #316, #319)
    • Wrote tests for some existing features to increase code coverage (Pull requests #149, #290)
    • Implemented auto switching of tabs upon execution of a ‘candidate’ or ‘job’ command (Pull requests #223)
  • Documentation:
    • readME:
      • Designed a UI mock up of our application and included in the readME document (Pull request #69)
    • User Guide:
      • Added documentation for sort can feature (Pull request #158)
      • Added documentation for view can and view job feature ((Pull request #287))
    • Developer Guide:
      • Added implementation details and sequence diagram for sort can feature (Pull request #150)
      • Added implementation details and sequence diagram for view can feature (Pull request #285)
      • Updated Instructions for Manual Testing for View Candidate and View Job (Pull requests #310)
      • Updated class diagram for UI Component (Pull requests #127)
  • Community:
    • PRs reviewed (with non-trivial review comments): ( #284, #147)
    • Reported bugs for and gave suggestions to other teams in the class