Eugene's Project Portfolio Page
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:
- Existing AB3 codebase: AddressBook Level-3
- Design pattern consideration: Best Practice for Undo Redo implementation
- New Feature: Added
editvisit
anddeletevisit
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:
- Implementation of
editvisit
anddeletevisit
: AddressBook Level-3
- Implementation of
- New Feature: Implemented a pop-up window to add and edit a visitation log.
- What it does: Allows the user to add or modify visit details such as diagnosis, prescription and comments in a user-friendly interface.
- Justification: This feature improves the product significantly as there is a new interface for the user to modify visitation details other than the main GUI, improving user experience.
- Highlights: Created UI mockups for the team and adapted this pop-up window for use in
addvisit
andeditvisit
commands. - Credits:
- Creating a new pop-up window: How to create a popup window in javafx, Adding a button in a new scene, Generating a new window, VISIT
- Using text fields in a pop-up window: Building pop-up window with text fields, Creating a Form, Handle text input on form submit, VISIT
- Setting keyboard shortcuts for shifting focus to next text box: Keyboard Navigation
- Code contributed: RepoSense link
- Project management:
- Managed release
v1.3
on GitHub
- Managed release
- Enhancements to existing features:
- Enhancements to new features:
- 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
anddeletevisit
(#160) - Added formatting guidelines for the user to follow. (#173)
- Added a section on user interface to introduce user to the GUI. (#240)
- Did cosmetic tweaks to overall table of contents and existing documentation of feature:
- Developer Guide:
- Updated implementation details and UML diagrams for
undo
andredo
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
anddeletevisit
features. (#277)
- Updated implementation details and UML diagrams for
- User Guide:
- Contributions to team-based tasks :
- 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)