The app was mainly inspired by addressbook-level2.
The App consists of a few main components.
The rest are just objects that the app requires.
The diagram below shows the basic design.
The complete class diagram is shown below.
The commands are implemented in such a way as we are able to have one class for every command, which allows for more extendability and less coupling, since we are likely to add more commands over time. We considered other alternatives such as putting all commands in one command class, however there are way too many methods and coupling.
The flow for the retrieve command is as follows:
The flow for add command is as follows:
The flow for the book command is shown in the sequence diagram below:
The flow for the edit command is shown in the sequence diagram below:
The flow for the delete patient command is shown in the sequence diagram below:
Administrative staff of hospitals who are overworked from having various responsibilities with repetitive tasks relating to doctors and patients.
Aim: To facilitate the role of the administrative staff and help them automate most of the mundane tasks that they have to do. This enables the admin staff to have a one stop application to handle appointments and fees across different specialised clinics in the hospital. Administrative staff will have more time to help patients or do things that are more meaningful, such as answering queries from patients or doctors.
Version | As a … | I want to … | So that I can … |
---|---|---|---|
v1.0 | admin | enter patient’s details and store it | refer to them whenever I require them. |
v1.0 | admin | retrieve patient’s details | use them to schedule appointments. |
v1.0 | admin | remove existing patient’s details | remove unnecessary information. |
v1.0 | admin | view all appointments of a patient | remind patients of their appointments. |
v1.0 | admin | book an appointment for a patient | let them see the doctor. |
v2.0 | admin | add doctor | link doctor to appointment. |
v2.0 | admin | remove existing doctor’s details | remove unnecessary information. |
v2.0 | admin | list patients | view patients. |
v2.0 | admin | edit appointments | update them. |
java -jar Rex.jar
to run the fileadd S9999999D
- Adds a patient with NRIC S9999999D
to the list.add S9999999D
- It should not add a patient and throw error as patient already exists.add cat
- It should throw error and not add patients as it is invalid NRIC.edit S9999999D
- Edits a patient with NRIC S9999999D
. More prompts will show to edit detailsedit S9999998D
- It should not edit a patient and throw error as patient does not exist.retrieve S9999999D
- Retireve a patient’s details with NRIC S9999999D
.There must a patient in the list.
delete 1
- Deletes the patient at the first indexdelete 0
- It should throw error and not delete a patient, since it is a invalid index.create
- Creates an appointment. More prompts will show to prompt user about appointment.book S9999999D
- Books an appointment for patient with NRIC S9999999D
. More prompts will show to prompt user which appointment to book.doctor tan
- Adds a doctor with name tan
to the list.doctor tan
- It should not add a doctor and throw error as doctor already exists.nodoctor tan
- Removes doctor with name tan
to the list.nodoctor asd
- It should throw error and not delete a doctor since doctor does not exist.appointments S9999999D
- Shows appointments for patient with NRIC S9999999D
.list
- Lists all patients.editappt S9999999D
- Edit appointment with NRIC S9999999D
.bye
- Exits program.