Project: PayBack

PayBack is comprehensive tool designed to streamline one’s employee information management process.

Given below are my contributions to the project.

  • New Feature: /find command
    • What it does: Enables users to search for contacts in the system based on criteria like name, phone number, email, ID, year joined, or tags. This feature supports case-insensitive and partial matches (except Name, Year and ID), enhancing the search capability.
    • Justification: This feature is essential as it allows users to efficiently locate personal details of many employees, thereby improving the application’s usability and user experience. It meets the need for a quick and flexible search mechanism in managing extensive employee information.
    • Highlights: This improvement implemented a modular and scalable method for search capabilities. It involved creating new predicate classes tailored to individual search criteria and integrating them with the current application framework. The development of this feature presented considerable challenges, including the necessity to maintain compatibility with diverse input formats and the pre-existing command framework.

  • New Feature: /list command
    • What it does: Displays all employees in PayBack , clearing any active filters.
    • Justification: This command enhances usability by providing an easy way for users to see all entries, especially useful after narrowing searches or applying filters.
    • Highlights: The implementation was straightforward but crucial for navigating the employee efficiently. It serves as a reset to view all contacts, a fundamental feature for managing large sets of data.

  • New Feature: AutoComplete CommandBox
    • What it does: Suggests command completions to the user as they type in the command text field. It dynamically filters available commands based on the user’s input prefix, providing real-time suggestions.
    • Justification: This feature significantly improves the user experience by speeding up command entry and reducing the likelihood of typographical errors. Users can easily discover available commands and their syntax, enhancing usability and productivity.
    • Highlights: The implementation involved integrating an auto-completion library and developing a system to match partial user inputs to commands. It also required updating the UI to display command suggestions and follow-up messages, enhancing user interaction with the application.

  • Code contributed: RepoSense link

  • Project management:
    • Managed releases v1.3 - v1.4 (3 releases) on GitHub

  • Enhancements:
    • Wrote additional tests for existing features to increase coverage (Pull requests #39, #43, #169)
    • Edited the GUI color and design (Pull requests #74)

  • Documentation:
    • User Guide:
      • Added documentation for the features /find #39, #169
      • Added documentation for the features AutoComplete: #80, #172
    • Developer Guide:
      • Added UserStories and MSS: #23
      • Added implementation details of the /find feature.

  • Community:
    • PRs reviewed (with non-trivial review comments): #38