Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[CS2113T-T10-1] MediVault #29

Open
wants to merge 824 commits into
base: master
Choose a base branch
from

Conversation

alvintan01
Copy link

MediVault is a Command Line Interface (CLI) application that will help to manage medication supplies within a pharmacy. It will solve the issue of tracking the stocks manually, discrepancies between actual and physical stocks as well as make the user's life easier by keeping track of expired medication.

Copy link

@marcusbory marcusbory left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Overall, a very detailed developer guide, but it might be too complicated at first glance. Perhaps, some abstraction of details within the diagrams would improve comprehensibility.

Comment on lines 101 to 108
The rest of the program consist of four components.
* `Command`: Executes command based on the user input that is processed by `Utilities`
component. The list of commands can be found in our User Guide [here](UserGuide.md).
* `Utilities`: Contains important driver classes for MediVault
* includes `parser`, `ui`, `storage` and `comparators`.
* `Inventory`: Contains a collection of classes used by MediVault to represent
different medication information.
* `Errors`: Contains collection of classes that handles exceptions during execution of MediVault.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Perhaps a high level sequence diagram could be included for the other four components to demonstrate their interaction and the flow of executing a command.


### Command

![CommandClassDiagram](diagrams/diagram_images/CommandClassDiagram.png)

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

image

Should the above public void execute() be public abstract void execute()? The Command class itself is abstract and it seems that every child class has the execute() method

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Like what @marcusbory mentioned, should the execute() method be an abstract method?


Given below is the sequence diagram for the interactions within the main application logic.

![MainLogicSequenceDiagram](diagrams/diagram_images/MainLogicSequenceDiagram.png)

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

image
Should this be create() instead of create?

image
image
image

Should there be a data type for userInput, userCommand, parameters, parameterValues, ie. userInput:String ?

image
Would it be better to include a ref block here? This would signify to the user that the actual execution sequence diagram will be provided in another segment.


The sequence diagram for `AddOrderCommand` is shown below.

![AddOrderCommandDiagram](diagrams/diagram_images/AddOrderSequenceDiagram.png)

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Would it be better to not include the self calls for this sequence diagram (ie. remove less important details)? This diagram is very long vertically.

An alternative suggestion would be to break this sequence diagram up and explain each section individually.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This issue also applies to some of the other sequence diagrams, such as UpdateStockCommand, AddStockCommand.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Like what @marcusbory mentioned, is it better to split the sequence diagrams, as the diagram is very long which makes it look complicated?


The sequence diagram for `AddPrescriptionCommand` is shown below.

![AddPrescriptionCommandDiagram](diagrams/diagram_images/AddDispenseSequenceDiagram.png)

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

image
Should there be ":" for static methods based on the above diagram?

#### AddPrescriptionCommand

MediVault creates an `AddPrescriptionCommand` object when CommandParser identifies `addprescription` or
`add` in `prescription` mode.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

image
Is this line the continuation of the previous line?

* This project comes with a GitHub Actions config files (in `.github/workflows folder`). When GitHub detects those
files, it will run the CI for your project automatically at each push to the `master` branch or to any PR. No set
up required.
## Design

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

image
The section header of "Design" is not aligned with the rest of the sections. Is it due to no line separation between line 86 and 87?

`archive` keyword in `order` mode.

* MediVault archives order records by specifying a date.
* MediVault will remove only DELIVERED order records that have date <= specified date and output it into the file named

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

image
Is it necessary for "DELIVERED" to be in the upper case?

Copy link

@kum-wh kum-wh left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice diagrams, but each diagram contains too much information, maybe separate the diagrams.

* This project comes with a GitHub Actions config files (in `.github/workflows folder`). When GitHub detects those
files, it will run the CI for your project automatically at each push to the `master` branch or to any PR. No set
up required.
## Design
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

As mentioned, the header is not aligned. There is extra whitespace before the header.


The sequence diagram for `DeleteOrderCommand` is shown below.

![DeleteOrderCommandDiagram](diagrams/diagram_images/DeleteOrderSequenceDiagram.png)
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe consider using more reference diagrams to keep the diagrams concise and understandable.


The sequence diagram for `DeletePrescriptionCommand` is shown below.

![DeletePrescriptionCommandDiagram](diagrams/diagram_images/DeleteDispenseSequenceDiagram.png)
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Based on this diagram, its look like there are many nested ifs. Is the code having many nested if or is the diagram suppose to have different if statements that are not nested?


The sequence diagram for `UpdatePrescriptionCommand` is shown below.

![UpdatePrescriptionSequenceDiagram](diagrams/diagram_images/UpdatePrescriptionSequenceDiagram.png)
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Don't think its necessary new when creating a new instance.

@madhanse
Copy link

Overall, the developer guide is well-detailed with good diagrams but it is better to split it up to reduce complications.

RemusTeo and others added 26 commits November 2, 2021 01:53
Claim ownership of purpose section in UG
…into branch-DispenseMedication

# Conflicts:
#	docs/UserGuide.md
…ung/tp into branch-DispenseMedication

# Conflicts:
#	docs/UserGuide.md
Fix bug addstock and addprescription. Fix bugs in PED. Update DG.
Fix PED bugs, modified DG and UG
alvintan01 and others added 30 commits November 8, 2021 01:34
Remove functionality from PPP
Update validator class diagram
Include project overview into PPP
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

8 participants