Skip to content

Commit

Permalink
Merge pull request #59 from nixonwidjaja/nixon-dg
Browse files Browse the repository at this point in the history
Update DeveloperGuide
  • Loading branch information
marcellaantania authored Oct 5, 2023
2 parents d40d1f9 + 2f64ab4 commit 5a9ae35
Show file tree
Hide file tree
Showing 4 changed files with 117 additions and 79 deletions.
101 changes: 86 additions & 15 deletions docs/DeveloperGuide.md
Original file line number Diff line number Diff line change
Expand Up @@ -257,13 +257,13 @@ _{Explain here how the data archiving feature will be implemented}_

**Target user profile**:

* has a need to manage a significant number of contacts
* for HR people to manage employee data in the company, including employees' claims and leaves
* prefer desktop apps over other types
* can type fast
* prefers typing to mouse interactions
* is reasonably comfortable using CLI apps

**Value proposition**: manage contacts faster than a typical mouse/GUI driven app
**Value proposition**: Provide a platform for Startup HR workers without a solid employee data management system.


### User stories
Expand All @@ -288,16 +288,80 @@ Priorities: High (must have) - `* * *`, Medium (nice to have) - `* *`, Low (unli

### Use cases

(For all use cases below, the **System** is the `HR Insight` and the **Actor** is the `user`, unless specified otherwise)
(For all use cases below, the **System** is the `HR Insight` and the **Actor** is the `user / HR people`, unless specified otherwise)

**Use case: Delete a person**
**Use case: Add an Employee**

**MSS**

1. User requests to list persons
2. HR Insight shows a list of persons
3. User requests to delete a specific person in the list
4. AddressBook deletes the person
1. User requests to add an employee with specified information.
2. HR Insight adds an employee with the given information.
3. HR Insight indicates that the new employee has been added.
4. HR Insight shows a list of employees including the new employee.

Use case ends.

**Extensions**

* 2a. At least one of the required information is empty or invalid.

* 2a1. HR Insight shows an error message.

Use case ends.

* 3a. The employee already exists.

* 3a1. HR Insight indicates that the employee already exists.

Use case ends.

**Use case: Edit an Employee**

**MSS**

1. User requests to list employees.
2. HR Insight shows a list of employees.
3. User requests to edit an employee in the list specified by its index, with the employee's new information.
4. HR Insight edits the employee.
5. HR Insight indicates that the employee has been edited.
6. HR Insight shows a list of employees, with the employee's information now edited.

Use case ends.

**Extensions**

* 2a. The list is empty.

Use case ends.

* 3a. The given index is invalid.

* 3a1. HR Insight shows an error message.

Use case resumes from step 2.

* 3b. User does not specify any new information for the employee.

* 3b1. HR Insight shows an error message that at least one field to edit must be provided.

Use case resumes from step 2.

* 3c. At least one of the field given by the user is empty or invalid.

* 3c1. HR Insight shows an error message.

Use case resumes from step 2.

**Use case: Delete an Employee**

**MSS**

1. User requests to list employees.
2. HR Insight shows a list of employees.
3. User requests to delete an employee in the list specified by its index.
4. HR Insight deletes the employee.
5. HR Insight indicates that the employee has been deleted.
6. HR Insight shows a list of employees excluding the deleted employee.

Use case ends.

Expand All @@ -311,15 +375,16 @@ Priorities: High (must have) - `* * *`, Medium (nice to have) - `* *`, Low (unli

* 3a1. HR Insight shows an error message.

Use case resumes at step 2.
Use case resumes from step 2.

**Use case: List Employees**

**MSS**

1. HR Insight shows all employees of an organisation.
2. User requests to filter employees by departments.
3. HR Insight shows all employees of a specific department.
1. User requests to list all employees.
2. HR Insight shows all employees of an organisation.
3. User requests to filter employees by a specified department.
4. HR Insight shows all employees of the specified department.

Use case ends.

Expand All @@ -333,14 +398,16 @@ Priorities: High (must have) - `* * *`, Medium (nice to have) - `* *`, Low (unli

* 3a1. HR Insight shows an error message.

Use case resumes from step 3.

**Use case: Managing Employee's Claim**

**MSS**

1. User requests to list all employees.
2. HR Insight shows a list of employees.
3. User requests to add/deduct an amount from a specific person's entitlement fund.
4. HR Insight displays the remainding entitlement fund of that specific person.
3. User requests to add or deduct an amount from an employee's claim by specifying the employee's index.
4. HR Insight displays the updated claim of the specified employee.

Use case ends.

Expand Down Expand Up @@ -446,7 +513,11 @@ Priorities: High (must have) - `* * *`, Medium (nice to have) - `* *`, Low (unli

1. Should work on any _mainstream OS_ as long as it has Java `11` or above installed.
2. Should be able to hold up to 1000 persons without a noticeable sluggishness in performance for typical usage.
3. A user with above average typing speed for regular English text (i.e. not code, not system admin commands) should be able to accomplish most of the tasks faster using commands than using the mouse.
3. HR people with above average typing speed for regular English text (i.e. not code, not system admin commands) should be able to accomplish most of the tasks faster using commands than using the mouse.
4. Should respond quickly to user input with minimal latency.
5. Should not crash under normal usage conditions.
6. Should have mechanisms to recover gracefully from unexpected errors or crashes.
7. Should have comprehensive user guide and documentation for developers.

*{More to be added}*

Expand Down
49 changes: 22 additions & 27 deletions docs/UserGuide.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,32 +14,34 @@ HR Insight is a **desktop app for HR people, optimized for use via a Line Interf

1. Ensure you have Java `11` or above installed in your Computer.

1. Download the latest `addressbook.jar` from [here](https://github.com/se-edu/addressbook-level3/releases).
2. Download the latest `HRInsight.jar` from [here](https://github.com/AY2324S1-CS2103-F13-2/tp/releases).

1. Copy the file to the folder you want to use as the _home folder_ for your AddressBook.
3. Copy the file to the folder you want to use as the _home folder_ for your HR Insight.

4. Open a command terminal, `cd` into the folder you put the jar file in, and use the `java -jar HRInsight.jar` command to run the application.<br>

1. Open a command terminal, `cd` into the folder you put the jar file in, and use the `java -jar addressbook.jar` command to run the application.<br>
A GUI similar to the below should appear in a few seconds. Note how the app contains some sample data.<br>
![Ui](images/Ui.png)

1. Type the command in the command box and press Enter to execute it. e.g. typing **`help`** and pressing Enter will open the help window.<br>
5. Type the command in the command box and press Enter to execute it. e.g. typing **`help`** and pressing Enter will open the help window.<br>
Some example commands you can try:

- `list` : Lists all the details of an organization's employees.

- `find` : Finds persons whose names contain any of the given keywords.
- `find` : Finds employees whose names contain any of the given keywords.

- `add n/John Doe p/98765432 e/[email protected] a/John street, block 123, #01-01` : Adds a contact named `John Doe` to the Employee Database.
- `add n/John Doe p/87654321 e/[email protected] a/Tokyo s/5000 b/2000 d/Sales dob/1992-07-21` : <br>
Adds an employee named `John Doe` to the employee list.

- `delete 3` : Deletes the 3rd contact shown in the current list.
- `delete 3` : Deletes the 3rd employee shown in the current list.

- `claim 2 $/-60` : Deducts $60 from the entitlement fund of the 2nd employee in the list.
- `claim 2 $/-60` : Deducts $60 from the claims of the 2nd employee in the list.

- `clear` : Deletes all contacts.
- `clear` : Deletes all employees from the database.

- `exit` : Exits the app.

1. Refer to the [Features](#features) below for details of each command.
6. Refer to the [Features](#features) below for details of each command.

---

Expand All @@ -53,10 +55,7 @@ HR Insight is a **desktop app for HR people, optimized for use via a Line Interf
e.g. in `add n/NAME`, `NAME` is a parameter which can be used as `add n/John Doe`.

- Items in square brackets are optional.<br>
e.g `n/NAME [t/TAG]` can be used as `n/John Doe t/friend` or as `n/John Doe`.

- Items with ``​ after them can be used multiple times including zero times.<br>
e.g. `[t/TAG]…​` can be used as ` ` (i.e. 0 times), `t/friend`, `t/friend t/family` etc.
e.g `list [d/DEPARTMENT]` can be used as `list` or as `list d/Engineering`.

- Parameters can be in any order.<br>
e.g. if the command specifies `n/NAME p/PHONE_NUMBER`, `p/PHONE_NUMBER n/NAME` is also acceptable.
Expand Down Expand Up @@ -145,7 +144,7 @@ Examples:

### Managing Employee's Claims: `claim`

Performs adjustments to employee's entitlement funds.
Performs adjustments to employee's claims.

Format: `claim INDEX $/CLAIM_AMOUNT`

Expand All @@ -155,14 +154,14 @@ Format: `claim INDEX $/CLAIM_AMOUNT`

Examples:

- `list` followed by `claim 1 $/-500` deducts $50 from the entitlement fund of the 1st employee in the list.
- `list` followed by `claim 2 $/+60` adds $60 to the entitlement fund of the 2nd employee in the list.
- `list` followed by `claim 1 $/-500` deducts $50 from the claims of the 1st employee in the list.
- `list` followed by `claim 2 $/+60` adds $60 to the claims of the 2nd employee in the list.

### Adding Employee’s Leave: `add_leave`

Adds a new leave for an employee.

Format: `add_leave INDEX m/MONTH`
Format: `add_leave INDEX m/MONTH`

- The `INDEX` refers to the index number shown in the displayed employee list.
- The index **must be a positive integer** 1,2,3, ...
Expand Down Expand Up @@ -209,18 +208,14 @@ HR Insight data are saved in the hard disk automatically after any command that

### Editing the data file

HR Insight data are saved automatically as a JSON file `[JAR file location]/data/addressbook.json`. Advanced users are welcome to update data directly by editing that data file.
HR Insight data are saved automatically as a JSON file `[JAR file location]/data/hrinsight.json`. Advanced users are welcome to update data directly by editing that data file.

<box type="warning" seamless>

**Caution:**
If your changes to the data file makes its format invalid, HR Insight will discard all data and start with an empty data file at the next run. Hence, it is recommended to take a backup of the file before editing it.
</box>

### Archiving data files `[coming in v2.0]`

_Details coming soon ..._

---

## FAQ
Expand All @@ -240,14 +235,14 @@ _Details coming soon ..._

| Action | Format, Examples |
|--------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| **Add** | `add n/NAME p/PHONE_NUMBER e/EMAIL a/ADDRESS [t/TAG]…` <br> e.g., `add n/James Ho p/22224444 e/jamesho@example.com a/123, Clementi Rd, 1234665 t/friend t/colleague` |
| **Add** | `add n/NAME p/PHONE_NUMBER e/EMAIL a/ADDRESS s/SALARY b/CLAIM_BUDGET d/DEPARTMENT dob/BIRTH_DATE (YYYY-MM-DD)` <br> e.g., `add n/John Doe p/87654321 e/john.doe@gmail.com a/Tokyo s/5000 b/2000 d/Sales dob/1992-07-21` |
| **Clear** | `clear` |
| **Delete** | `delete INDEX`<br> e.g., `delete 3` |
| **Edit** | `edit INDEX [n/NAME] [p/PHONE_NUMBER] [e/EMAIL] [a/ADDRESS] [t/TAG]…​`<br> e.g.,`edit 2 n/James Lee e/jameslee@example.com` |
| **Edit** | `edit INDEX [n/NAME] [p/PHONE] [e/EMAIL] [a/ADDRESS] [s/SALARY] [b/CLAIM_BUDGET] [d/DEPARTMENT] [dob/BIRTH_DATE (YYYY-MM-DD)]` <br> e.g., `edit 1 p/23423423 e/barry@example.com`|
| **Find** | `find KEYWORD [MORE_KEYWORDS]`<br> e.g., `find James Jake` |
| **List** | `list` |
| **List** | `list [d/DEPARTMENT]` |
| **Claim** | `claim INDEX $/CLAIM_AMOUNT` <br> e.g., `claim 1 $/-500` |
| **Add Leave** | `add_leave INDEX m/MONTH` <br> e.g., `add_leave 1 m/3` |
| **Help** | `help` |
| **View Leave** | `view_leave INDEX m/Month d/DEPARTMENT` <br> e.g.,`view_leave m/10 d/IT` |
| **View Birthdays** | `birthday [m/MONTH]` <br> e.g., `birthday 10` |
| **View Birthdays** | `birthday [m/MONTH]` <br> e.g., `birthday 10` |
2 changes: 1 addition & 1 deletion docs/_config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ header_pages:

markdown: kramdown

repository: "se-edu/addressbook-level3"
repository: "AY2324S1-CS2103-F13-2/tp"
github_icon: "images/github-icon.png"

plugins:
Expand Down
44 changes: 8 additions & 36 deletions docs/team/nixonwidjaja.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
layout: page
title: Nixon Widjaja's Project Portfolio Page
title: Nixon's Project Portfolio Page
---

### Project: HR Insight
Expand All @@ -9,44 +9,16 @@ HR Insight is a desktop app for HR people, optimized for use via a Line Interfac

Given below are my contributions to the project.

- **New Feature**: Added the ability to undo/redo previous commands.
- **New Feature**: to be added soon

- What it does: allows the user to undo all previous commands one at a time. Preceding undo commands can be reversed by using the redo command.
- Justification: This feature improves the product significantly because a user can make mistakes in commands and the app should provide a convenient way to rectify them.
- Highlights: This enhancement affects existing commands and commands to be added in future. It required an in-depth analysis of design alternatives. The implementation too was challenging as it required changes to existing commands.
- Credits: _{mention here if you reused any code/ideas from elsewhere or if a third-party library is heavily used in the feature so that a reader can make a more accurate judgement of how much effort went into the feature}_
- **Code contributed**: to be added soon

- **New Feature**: Added a history command that allows the user to navigate to previous commands using up/down keys.
- **Project management**: to be added soon

- **Code contributed**: [RepoSense link]()
- **Enhancements to existing features**: to be added soon

- **Project management**:
- **Documentation**: to be added soon

- Managed releases `v1.3` - `v1.5rc` (3 releases) on GitHub
- **Community**: to be added soon

- **Enhancements to existing features**:

- Updated the GUI color scheme (Pull requests [\#33](), [\#34]())
- Wrote additional tests for existing features to increase coverage from 88% to 92% (Pull requests [\#36](), [\#38]())

- **Documentation**:

- User Guide:
- Added documentation for the features `delete` and `find` [\#72]()
- Did cosmetic tweaks to existing documentation of features `clear`, `exit`: [\#74]()
- Developer Guide:
- Added implementation details of the `delete` feature.

- **Community**:

- PRs reviewed (with non-trivial review comments): [\#12](), [\#32](), [\#19](), [\#42]()
- Contributed to forum discussions (examples: [1](), [2](), [3](), [4]())
- Reported bugs and suggestions for other teams in the class (examples: [1](), [2](), [3]())
- Some parts of the history feature I added was adopted by several other class mates ([1](), [2]())

- **Tools**:

- Integrated a third party library (Natty) to the project ([\#42]())
- Integrated a new Github plugin (CircleCI) to the team repo

- _{you can add/remove categories in the list above}_
- **Tools**: to be added soon

0 comments on commit 5a9ae35

Please sign in to comment.