Project: NUScheduler

NUScheduler is a desktop app for managing contacts, optimised for use via a Command Line Interface (CLI) while still having the benefits of a Graphical User Interface (GUI). If you can type fast, NUScheduler can get your contact management tasks done faster than traditional GUI apps.

Given below are my contributions to the project.

  • New Feature: Added the ability to edit Profiles and Events. (Pull Request #64, #89)
    • What it does: Allows the user to edit details of existing profiles and events in the application.
    • Justification: This feature allows the user to update details of their profiles and events if they have made a mistake when adding it.
    • Credits: This feature is adapted from code in AddressBook Level-3.
  • New Feature: Added the ability to find Events by keywords or dates. (Pull Request #115)
    • What it does: Allows the user to find existing events by providing a set of keywords and dates.
    • Justification: This feature allows the user to easily find the details of the events that they are concerned about.
    • Credits: This feature is adapted from code in AddressBook Level-3.
  • New Feature: Added a session-based command history feature that allows the user to navigate to the previous command using the up and down arrow keys. (Pull Request #104)
    • What it does: Allows the user to navigate between the previous successful commands.
    • Justification: This feature allows the user to reduce the amount of typing if the user is doing successive, similar commands, without the need to type the whole command again.
  • Code contributed: RepoSense link

  • Project management:
    • Managed 3 releases v1.2, v1.2.1 and v1.3.1 and on GitHub.
  • Enhancements to existing feature: Refactored the ProfileCommandParser class to better parse user input. (Pull Request #64)
    • What it does: Improves the handling of user input using regular expressions, and to provide more descriptive error messages for incorrect command formats.
    • Credits: Built upon the initial version of the ProfileCommandParser class by Shashank Acharya.
  • Enhancements to existing feature: Build upon the help window. (Pull Request #78, #124)
    • What it does: Added a command summary into the help window, and a hyperlink to the user guide.
    • Justification: This feature provides quick and convenient access to the command usage without accessing the full user guide. If the user requires more details, a hyperlink to the full user guide is provided.
    • Credits: Co-authored with Shen Xinbei.
  • Enhancements to existing feature: Refactored the DateTime class to better handle the various date and time formats. (Pull Request #100)
    • What it does: Improves the error handling of dates and times using regular expressions, and improve code quality.
    • Credits: Built upon the initial version of the DateTime class by Shashank Acharya.
  • Documentation:
    • User Guide:
      • Added documentation for the profile commands, including profile -a, profile -d and profile -f. (Pull Request #38, #62)
      • Added documentation for the event commands, including event -e and event -f. (Pull Request #62, #117)
      • Added documentation for session-based advanced features, including session-based command history and quick links. (Pull Request #117)
      • Added section numbers using CSS and reorganise sections. (Pull Request #117)
      • Fixed formatting and minor typographical errors. (Pull Request #128)
    • Developer Guide:
      • Added implementation details for edit commands. (Pull Request #83)
  • Reviewing and mentoring contributions:
    • Reviewed 47 Pull Requests on GitHub.
    • Helped to ensure issues and milestones are on schedule.
    • Pull Requests reviewed with non-trivial comments: #57, #71, #119.
  • Community: