Overview

CareFlow is a desktop application for patient and drug inventory management, optimised for use via a Command Line Interface (CLI) while still having the benefits of a Graphical User Interface (GUI). CareFlow can get your patient and drugs management tasks done faster than traditional practices.

Code Contributed

Click here to see my code contributions.

Summary of Contributions

Redesign of the Overall Architecture

  • Redesign the overall architecture to accommodate patient and drug subsystems.
    • Created project skeleton files. #39
    • Modified the code structure and organisation of model component to allow for the store and access of patient and drug data. #55
    • Modified the code structure and organisation of logic component to allow for the interpretation and execution of user commands.#50 #55
    • Modified the code structure and organisation of storage component to allow for the reading and writing of app data from and into the hard disk. #79 #80

New Features

  • Implemented the drug inventory in-app notification feature #212
    • This feature serves to remind users of low storage count to help users better plan for drug replenishment.
  • Implemented the clear drug and clear patient feature #55
    • This feature allows users to remove all drug or patient data entries at one go.
  • Implemented the Drug model #42
    • Created ActiveIngredient, Direction, and Drug classes to store relevant drug information.
    • Created UniqueDrugList to store unique Drug objects.

Enhancements to Application UI

  • Designed and implemented the patient and drug information display panel to provide better information visualisation. #176
  • Implemented the UI status bar footer to allow display of source file paths. #80
  • Added the function to remember the theme selected by the user. #106

Testing

  • Created JUnit test cases for storage components. #133
    • Created test methods for CareFlowStorageManager to test the reading and saving of
    • Created test methods for JsonAdaptedDrug and JsonAdaptedPatient to test the conversion of Patient and Drug objects into json-friendly forms when:
    • Created sample files and test methods for JsonDrugInventoryStorage, JsonPatientRecordStorage and JsonUserPrefsStorage to simulate the following scenarios:
    • Created test methods for JsonSerializableDrugInventory and JsonSerializablePatientRecord to test the conversion of json format DrugInventory and PatientRecord objects back to java objects.
  • Created sample drug and patient data to be used in testings. #133

User Guide

  • Added detailed instruction on how to download and set up java 11 environment. #176
    • Created step-by-step guide on how to install java 11 on macOS and Windows operating systems.
    • Accompanied instructions with rich screenshots to further support non-tech users.
  • Added screenshots for various features to illustrate the expected interaction and outcome. #193 #221
  • Reformatted each feature for better visual presentation. #194
  • Added notes and tips for various features to help user better understand the functionality of each feature. #297

Developer Guide

  • Added implementation details and UML diagram for storage component. #164
  • Added execution detail and sequence diagram for d find command, using d find Panadol as the example input. #213 #219

Issues Fixed

  • Unable to store and read of patient record #83
  • Inconsistent command snytax #151
  • Wrong command syntax in UG #283
  • Wrong error message for p view INDEX and d view INDEX commands #280