Project: CCBOT

CCBOT is a desktop application for managing your job application details. While it has a GUI, most of the user interactions happen using a CLI (Command Line Interface).

Given below are my contributions to the project.

  • New Feature: Added an additional component, programming language, which is saved in the addressbook.
    • What it does: Allow users to input programming languages that are being used in the job that they applied for.
    • Justification: This feature improves the product significantly because a user can recognise which specific technical skill is required for that particular role.
    • Highlights: This enhancement affects existing commands and commands to be added in future. It required an in-depth analysis of design alternatives. The implementation too was challenging as it required changes to existing commands.
  • New Feature: Allows users to filter by company name.
    • What it does: Allows users to find a contact based on the company name.
    • Justification: This feature improves the product significantly because users can easily find the person based on the company that they applied for.
    • Highlights: This enhancement affects existing commands and commands to be added in future. It required an in-depth analysis of design alternatives. The implementation was not too challenging. It required changes to existing commands.
  • New Feature: Added the ability to filter by programming language.
    • What it does: Allow users to filter contacts based on programming language.
    • Justification: This feature improves the product significantly because a user can easily find contacts of the jobs that they applied for in which require the specific programming language.
    • Highlights: This enhancement affects existing commands and commands to be added in future. It required an in-depth analysis of design alternatives. The implementation too was challenging as it required changes to existing commands.
  • New Feature: Added the ability to delete by tag command.
    • What it does: Allows users to delete contacts based on the tags given to each contact.
    • Justification: This feature improves the product significantly because users can easily delete the contacts of everyone who has the same tag.
    • Highlights: This enhancement affects existing commands and commands to be added in future. It required an in-depth analysis of design alternatives. The implementation too was challenging as it required changes to existing commands.
  • Project management:
    • Managed releases v1.2 - v1.4 (4 releases) on GitHub
  • Enhancements to existing features:
    • Add find by company name in addition to find by name (Pull Request #70)
    • Add programming language to person card (Pull Request #34)
  • Documentation:
    • User Guide:
      • Added documentation for the features find (filter by name and company name), filter programming language and delete by tag (Pull Request #89)
    • Developer Guide:
      • Added implementation details for delete by tag feature. (Pull Request #191)
      • Added implementation details for find feature. (Pull Request #191)
      • Added planned enhancement 6. (Pull Request #196)
      • Added planned enhancement 7. (Pull Request #193)
      • Update UML diagram. (Pull Request #56)
      • Add Sequence diagram for delete tag command. (Pull Request #181)