Skip to content

Commit

Permalink
Merge pull request #150 from SungMatt/master
Browse files Browse the repository at this point in the history
Remove references to AB3
  • Loading branch information
kenvynKwek authored Nov 14, 2023
2 parents f80eddc + 02525b6 commit 4d60bbc
Showing 1 changed file with 35 additions and 7 deletions.
42 changes: 35 additions & 7 deletions docs/DeveloperGuide.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,9 @@ title: Developer Guide

## **Acknowledgements**

* {list here sources of all reused/adapted ideas, code, documentation, and third-party libraries -- include links to the original source as well}
This project is based on the AddressBook-Level3 project created by the [SE-EDU initiative](https://se-education.org).

Libraries used: [JavaFX](https://openjfx.io/), [Jackson](https://github.com/FasterXML/jackson), [JUnit5](https://github.com/junit-team/junit5)

--------------------------------------------------------------------------------------------------------------------

Expand All @@ -36,7 +38,7 @@ Given below is a quick overview of main components and how they interact with ea

**Main components of the architecture**

**`Main`** (consisting of classes [`Main`](https://github.com/se-edu/addressbook-level3/tree/master/src/main/java/seedu/address/Main.java) and [`MainApp`](https://github.com/se-edu/addressbook-level3/tree/master/src/main/java/seedu/address/MainApp.java)) is in charge of the app launch and shut down.
**`Main`** (consisting of classes [`Main`](https://github.com/AY2324S1-CS2103-T16-1/tp/blob/master/src/main/java/seedu/address/Main.java) and [`MainApp`](https://github.com/AY2324S1-CS2103-T16-1/tp/blob/master/src/main/java/seedu/address/MainApp.java)) is in charge of the app launch and shut down.
* At app launch, it initializes the other components in the correct sequence, and connects them up with each other.
* At shut down, it shuts down the other components and invokes cleanup methods where necessary.

Expand Down Expand Up @@ -68,13 +70,13 @@ The sections below give more details of each component.

### UI component

The **API** of this component is specified in [`Ui.java`](https://github.com/se-edu/addressbook-level3/tree/master/src/main/java/seedu/address/ui/Ui.java)
The **API** of this component is specified in [`Ui.java`](https://github.com/AY2324S1-CS2103-T16-1/tp/blob/master/src/main/java/seedu/address/ui/Ui.java)

![Structure of the UI Component](images/UiClassDiagram.png)

The UI consists of a `MainWindow` that is made up of parts e.g.`CommandBox`, `ResultDisplay`, `EmployeeListPanel`, `StatusBarFooter` etc. All these, including the `MainWindow`, inherit from the abstract `UiPart` class which captures the commonalities between classes that represent parts of the visible GUI.

The `UI` component uses the JavaFx UI framework. The layout of these UI parts are defined in matching `.fxml` files that are in the `src/main/resources/view` folder. For example, the layout of the [`MainWindow`](https://github.com/se-edu/addressbook-level3/tree/master/src/main/java/seedu/address/ui/MainWindow.java) is specified in [`MainWindow.fxml`](https://github.com/se-edu/addressbook-level3/tree/master/src/main/resources/view/MainWindow.fxml)
The `UI` component uses the JavaFx UI framework. The layout of these UI parts are defined in matching `.fxml` files that are in the `src/main/resources/view` folder. For example, the layout of the [`MainWindow`](https://github.com/AY2324S1-CS2103-T16-1/tp/blob/master/src/main/java/seedu/address/ui/MainWindow.java) is specified in [`MainWindow.fxml`](https://github.com/AY2324S1-CS2103-T16-1/tp/blob/master/src/main/resources/view/MainWindow.fxml)

The `UI` component,

Expand All @@ -85,7 +87,7 @@ The `UI` component,

### Logic component

**API** : [`Logic.java`](https://github.com/se-edu/addressbook-level3/tree/master/src/main/java/seedu/address/logic/Logic.java)
**API** : [`Logic.java`](https://github.com/AY2324S1-CS2103-T16-1/tp/tree/master/src/main/java/seedu/address/logic/Logic.java)

Here's a (partial) class diagram of the `Logic` component:

Expand Down Expand Up @@ -114,7 +116,7 @@ How the parsing works:
* All `XYZCommandParser` classes (e.g., `AddCommandParser`, `DeleteCommandParser`, ...) inherit from the `Parser` interface so that they can be treated similarly where possible e.g, during testing.

### Model component
**API** : [`Model.java`](https://github.com/se-edu/addressbook-level3/tree/master/src/main/java/seedu/address/model/Model.java)
**API** : [`Model.java`](https://github.com/AY2324S1-CS2103-T16-1/tp/tree/master/src/main/java/seedu/address/model/Model.java)

<img src="images/ModelClassDiagram.png" width="450" />

Expand All @@ -135,7 +137,7 @@ The `Model` component,

### Storage component

**API** : [`Storage.java`](https://github.com/se-edu/addressbook-level3/tree/master/src/main/java/seedu/address/storage/Storage.java)
**API** : [`Storage.java`](https://github.com/AY2324S1-CS2103-T16-1/tp/tree/master/src/main/java/seedu/address/storage/Storage.java)

<img src="images/StorageClassDiagram.png" width="550" />

Expand Down Expand Up @@ -330,6 +332,11 @@ The following activity diagram summarizes what happens when a user executes the
* Pros: Will use less memory (e.g. for `delete`, just save the employee being deleted).
* Cons: We must ensure that the implementation of each individual command are correct.

### \[Proposed\] Data archiving

Copy the current ManageHR json file into a backup, with the appropriate name.
Load a new sample copy of ManageHR's data file.

--------------------------------------------------------------------------------------------------------------------

## **Documentation, logging, testing, configuration, dev-ops**
Expand Down Expand Up @@ -370,6 +377,9 @@ Priorities: High (must have) - `* * *`, Medium (nice to have) - `* *`, Low (unli
| `***` | Beginner user | There is a ‘help’ command to list functions/features | Know how to use the app |
| `***` | Beginner user | Exception handling | Handle invalid inputs |
| `***` | Intermediate user | Filter employee by parameters | Easily search/track certain details of employees |
| `***` | Intermediate user | Handle departments | Easily keep track of organizational structure |
| `**` | Intermediate user | Handle additional benefits like leave and salary | Easily keep track of organizational incentive programs. |


### Use cases

Expand Down Expand Up @@ -535,6 +545,15 @@ testers are expected to do more *exploratory* testing.
1. Re-launch the app by double-clicking the jar file.<br>
Expected: The most recent window size and location is retained.

### Help function
1. Calling help
1. With ManageHR open, type `help` into the command line.
Expected: A help window containing a link to the user guide, and a copy button shows.

2. Calling help with a custom command.
1. With ManageHR open, type `help add` into the command line.
Expected: A help window containing syntax, as well as an example should be visible to the user. The UI should be scaled such that everything can be seen. The copy button now takes on the command example.

### Deleting an employee

1. Deleting an employee while all people are being shown
Expand All @@ -550,6 +569,7 @@ testers are expected to do more *exploratory* testing.
1. Other incorrect delete commands to try: `delete`, `delete x`, `...` (where x is larger than the list size)<br>
Expected: Similar to previous.


### Filtering

1. Filter by `department`
Expand All @@ -571,3 +591,11 @@ testers are expected to do more *exploratory* testing.

2. Test case: `filter s/alsjl`<br>
Expected: Incorrect parameter. Not an integer. No employee is shown. Error details shown in the status message.

### Saving data

1. Dealing with missing/corrupted data files

1. Modify `ManageHr.json` illegally. This is by adding illegal json tags, or destruction of the json structure.
2. ManageHR will sense an issue, and replace the working file with the sample dataset.

0 comments on commit 4d60bbc

Please sign in to comment.