Project: Coydir

Coydir is a desktop application used by Human Resource Executives to streamline processes in managing their staffing. The user interacts with it using a CLI, and it has a GUI created with JavaFX.

Coydir is a project adapted from AddressBook - Level 3.

Given below are my contributions to the project.

Summary of Contributions


Code Contributed

RepoSense Link

Enhancements Implemented

  • New Features
    • Implemented batch-add feature.
      • Created a BatchAddCommand class to handle the logic (Refer to code here) and BatchAddCommandParser class to handle the parsing of the user input (Refer to code here).
      • Use Case: User can add multiple employees at once if they have the data in the form of a .csv file.
      • Why: Without this command, users will have to manually input each employee using an add command. This is especially troublesome when the user has to transfer their database over or if there has been a recruitment cycle and they have multiple employees joining.
      • Constraints: This implementation was rather difficult as it was rather different from all the commands implemented before. Moreover, having to read from an external file made it a bit more difficult to test. One functionality of this feature is that if there is any error, the command will be aborted and the database will be reverted to previous state. This was a bit more tricky as the functions only returned ReadOnlyDatabase. Therefore, I had to find a workaround for that.
    • Implemented Leave class.
      • Created the Leave class one of the key components we are tracking in our application.
      • Use Case: Building blocks to track stuff like leaves taken so far, whether employee is on leave etc.
      • Constraints: Was not too difficult other than the part about writing into JSON Adapted Person. which was slightly more complicated as I had to make sure that the Priority Queue of the Leave will be stored in the database.json.
    • Wrote test cases for BatchAddCommand, BatchAddCommandParser and Leave.
  • Existing Features
    • Removed all instances of AddressBook and changed it to Database.
    • Fixed multiple bugs (Refer to #120, #138, #142).

Contributions to the UG

  • Added documentation for following parts:
    • batch-add command.
    • clear command.
    • exit command.
    • Navigating User Guide.
    • Interface Layout.

Contributions to the DG

  • Added implementation details for Batch-Add Function
  • Wrote use stories
  • Wrote use cases

Contributions to the team-based tasks

  • Helped to create and distribute issues.
  • Did manual testing of the application to find bugs.
  • Was in-charge of keeping track of deadlines and division of labour.

Reviewing Contributions