Project: CliniCal

CliniCal is a desktop app that allows doctors to manage patient records and schedule upcoming appointments. The user interacts with it using a CLI, and it has a GUI created with JavaFX. It is written in Java, and has about 20 kLoC.

Given below are my contributions to the project.

  • New Feature: Added the ability to undo/redo previous commands.
    • What it does: Allows the user to undo all previous commands that modify the patient database, one at a time. Preceding undo commands can be reversed by using the redo command.
    • Justification: This feature improves the product significantly because a user can make mistakes in commands and the app should provide a convenient way to rectify them.
    • Highlights: The implementation was demanding as it required changes to existing commands and continuous updates for new commands added at each iteration. This included new commands such as adding, editing, deleting of visits and appointments added in v1.3.
    • Credits:
      1. Existing AB3 codebase: AddressBook Level-3
      2. Design pattern consideration: Best Practice for Undo Redo implementation

  • New Feature: Added editvisit and deletevisit commands to edit and delete an existing visitation log.
    • What it does: Allows the user to modify or remove the existing visitation logs seen from the profile window.
    • Justification: This feature allows the user to amend visitation log details when the user makes a mistake. Also allows the user to organize the visitation logs and remove redundant visitations.
    • Highlights: Also implemented the functionality of a new popup window to modify visitation details, as stated below. And integrated undo and redo functions for the visitation commands.
    • Credits:
      1. Implementation of editvisit and deletevisit: AddressBook Level-3

  • New Feature: Implemented a pop-up window to add and edit a visitation log.
  • Code contributed: RepoSense link

  • Project management:
    • Managed release v1.3 on GitHub

  • Enhancements to existing features:
    • Improved the GUI for the main application window. (#104, #252)
    • Updated the GUI for the Profile Window. (#149)

  • Enhancements to new features:
    • Improved the GUI for the Visitation Log Window. (#149)
    • Wrote additional tests for undo, redo, AddVisitParser, ProfileCommandParser, DeleteVisitCommand, DeleteVisitCommandParser, EditVisitCommand, EditVisitCommandParserclasses. (#160, #166)

  • Documentation:
    • User Guide:
      • Did cosmetic tweaks to overall table of contents and existing documentation of feature: Retrieving past commands using arrow keys. (#112)
      • Did overall formatting tweaks for the document by reorganizing content into respective categories. (#118, #119)
      • Added documentation for the features undo, redo, editvisit and deletevisit (#160)
      • Added formatting guidelines for the user to follow. (#173)
      • Added a section on user interface to introduce user to the GUI. (#240)
    • Developer Guide:
      • Updated implementation details and UML diagrams for undo and redo features. (#55, #101).
      • Improved labelling of headings and subheadings for better user readability. (#75)
      • Added labelling of all figures used in the developer guide. (#101)
      • Added implementation details for visitation log features and added UML diagrams for addvisit. (#261)
      • Added use cases, manual testing instructions for editvisit and deletevisit features. (#277)

  • Contributions to team-based tasks :
    • Helped to track issues discussed in team meetings and transcribe them onto GitHub for ease of reference. (#93, #123, #257)

  • Community:
    • Contributed to forum discussions: (#159)
    • Reported bugs and suggestions for other teams in the class (during Practical Exam - Dry Run): Issues Link

  • Tools:
    • Integrated a third party library (JFoenix) to the project improving the aesthetics of tabs in GUI (#252)