Glendon Tan - Project Portfolio Page

Overview

BookBob is a desktop application tailored for Doctor’s private General Practitioner clinic. It facilitates the storage and retrieval of patient information, including names, NRICs, genders, dates of birth, phone numbers, home addresses, allergies, medical histories and visit records with details on diagnoses and prescribed medications. Through the usage of BookBob, users will also be able to schedule appointments with their patients and receive daily reminder of the appointments for the day upon login. The application is optimised for Command Line Interface (CLI), allowing for efficient management of patient information and appointments.

Summary of Contributions


Contributions to the Developer Guide

The appointment mechanism is facilitated by `CommandHandler`. It creates an appointment slot via the `Appointment` 
class and records it within the `AppointmentRecord` class. The appointment records will then be saved into 
`FileHandler`.

- `CommandHandler.appointment(String input, AppointmentRecord appointmentRecord)` - check the input to check if valid
- `FileHandler.initFile(AppointmentRecord appointmentRecord)` - loads any saved appointment records
- `appointmentRecord.checkAvailability(LocalDate date, LocalTime time)` - check for availability at given time and date
- `AppointmentRecord.addAppointment(Appointment appointment)` - add appointment to the appointment record
- `Appointment(String name, String nric, String date, String time)` - creates appointment with the given name, nric,
- date and time
- `FileHandler.autosave(AppointmentRecord appointmentRecord)` - save the appointment records

Doctor enters the command: `appointment n/Patricia Chan ic/S9870789B date/06-11-2024 time/14:30`
Appendix D : Glossary
- Mainstream OS: Windows, Linux, Unix, MacOS
- NRIC: National Registration Identity Card (Identification Number)

Contributions to the User Guide

Deleting a Patient Record

Deletes the patient record based on the given NRIC number\
The delete function will only work on the NRIC number and not the patient's name\
Format: delete NRIC

Example: `delete S1234567A`
    Example Output:
    Patient John Doe, S1234567A, has been deleted."

Example: `delete John Doe`
    Example Output:
    Please provide the NRIC of the patient, not the name.

Adding a Patient Appointment

Adds an appointment for a patient on the date and time\
If the selected appointment slot has already been taken, it will prompt the next available time slot\
Format: appointment n/NAME ic/NRIC date/DATE time/TIME\
Date format is in DD-MM-YYYY and Time format is in HH:mm

Example: `appointment n/John Doe ic/S1234567A date/18-11-2024 time/18:00`
    Example Output:

    Appointment on 18-11-2024 18:00 with Patient John Doe, S1234567A has been added.
Example: `appointment n/Will Smith ic/S7654321A date/18-11-2024 time/18:00`
    Example Output:
    There is already an appointment at the given timeslot. The next available timeslot is: 18:30
Deleting a Patient Appointment

Delete an appointment for a patient on the date and time\
Format: appointment ic/NRIC date/DATE time/TIME\
Date format is in DD-MM-YYYY and Time format is in HH:mm

Example: `deleteAppointment ic/S1234567A date/18-11-2024 time/18:00`
    Example Output:
    Appointment on 18-11-2024 18:00 with Patient John Doe, S1234567A has been deleted.
List all Patient Appointments

List all the appointments on the schedule\
Format: listAppointments

Example: `listAppointments`
    Example Output:
    Appointment on 18-11-2024 18:00 with Patient John Doe, S1234567A.
    Appointment on 18-11-2024 18:00 with Patient Will Smith, S7654321A.
Finding a Patient Appointment

Find an appointment with a patient based on the given name, nric, date or time\
Format:
    findAppointment n/NAME OR\
    findAppointment ic/NRIC OR\
    findAppointment date/DATE OR\
    findAppointment time/TIME\
Date format is in DD-MM-YYYY and Time format is in HH:mm

Example: `findAppointment n/John`
    Example Output:
    Appointment on 18-11-2024 18:00 with Patient John Doe, S1234567A.
    Appointment on 30-11-2024 9:00 with Patient John Tan, S2468123A.

Example: `findAppointment ic/S1234567A`
    Example Output:
    Appointment on 18-11-2024 18:00 with Patient John Doe, S1234567A.

Example: `findAppointment date/18-11-2024`
    Example Output:
    Appointment on 18-11-2024 18:00 with Patient John Doe, S1234567A.
    Appointment on 18-11-2024 18:00 with Patient Will Smith, S7654321A.

Example: `findAppointment time/18:00`
    Example Output:

    Appointment on 18-11-2024 18:00 with Patient John Doe, S1234567A.
    Appointment on 20-11-2024 18:00 with Patient Hela, S9876543A.