Skip to content

Commit

Permalink
Remove unwanted caution symbol from Quick Start and update PPP
Browse files Browse the repository at this point in the history
  • Loading branch information
timleow committed Nov 13, 2023
1 parent f2b6dd1 commit fac33c9
Show file tree
Hide file tree
Showing 2 changed files with 253 additions and 13 deletions.
10 changes: 0 additions & 10 deletions docs/UserGuide.md
Original file line number Diff line number Diff line change
Expand Up @@ -273,9 +273,6 @@ and at the bottom of the window, is a link to our user guide.
* Projects, as well as their members, tasks to complete in the project, and other important details for managing your project are stored here!
## Quick start
<div markdown="span" class="alert alert-warning">:exclamation: **Caution:**
</div>
<div markdown="span" class="alert alert-warning">
**:warning: Warning:** The first step in the Quick Start guide involves `deleteP`, which is irreversible. If you wish to keep the sample data, then you can head straight to the [Features](#features) section below to figure out TaskHub on your own.
Expand Down Expand Up @@ -371,13 +368,6 @@ Scroll down in the `Employees` pane to notice Anton, the newest addition to your
For a more comprehensive overview of what you can achieve with TaskHub, you may proceed to the [Features](#features) section below.









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

# Features
Expand Down
256 changes: 253 additions & 3 deletions docs/team/timleow.md
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,7 @@ My code contributions to TaskHub can be found [here](https://nus-cs2103-ay2324s1
- Getting Started
- Installing and launching TaskHub
- Understanding the components of TaskHub
- Quick Start
- **Features section**
- Explanation for `addT` command.
- Explanation for `deleteT` command.
Expand All @@ -61,7 +62,6 @@ My code contributions to TaskHub can be found [here](https://nus-cs2103-ay2324s1
- Gave Aslam code quality suggestions in [this PR](https://github.com/AY2324S1-CS2103T-T08-3/tp/pull/109) so that we could sync up our implementation of deadlines in both `Tasks` and `Projects`.

### Contributions beyond the project team:
To be added soon.
#### Evidence of helping others e.g. responses you posted in our forum, bugs you reported in other team's products,
- Reported an above average bug count of 10 with value-added suggestions to my allocated PE-D team, can be seen from the [PE-D](https://github.com/timleow/ped/issues) repo.
<img src="../images/timPEDbugs.png" width="280" />
Expand All @@ -71,7 +71,257 @@ To be added soon.
--- ---

### Contribution to developer guide (extracts)
To be added soon.

---

### UI component

The **API** of this component is specified in [`Ui.java`](https://github.com/AY2324S1-CS2103T-T08-3/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`, `ProjectListPanel`, `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/AY2324S1-CS2103T-T08-3/tp/blob/master/src/main/java/seedu/address/ui/MainWindow.java) is specified in [`MainWindow.fxml`](https://github.com/AY2324S1-CS2103T-T08-3/tp/blob/master/src/main/resources/view/MainWindow.fxml)

The diagram above briefly demonstrates the hierarchy of the Ui components. A few more notes are as follows:
* At the level just below `MainWindow`, there are the main components, like `CommandBox`, `ResultDisplay`, `EmployeeListPanel` and `ProjectListPanel`.
* `EmployeeListPanel` contains some number of `EmployeeCard`s.
* `ProjectListPanel` contains some number of `ProjectCard`s
* which contain a `TaskListPanel` with their `TaskCard`s if the relevant `Project` in the `Model` contains a `Task`.

The `UI` component,

* executes user commands using the `Logic` component.
* listens for changes to `Model` data so that the UI can be updated with the modified data.
* keeps a reference to the `Logic` component, because the `UI` relies on the `Logic` to execute commands.
* depends on some classes in the `Model` component, as it displays `Employee` object residing in the `Model`.


### Add Task feature
![AddTSequenceDiagram](../images/AddTSequenceDiagram.png)


When creating a new task using the `addT` command, the `TaskList` of the specified `Project` is updated, and the `Project` is hence updated too.

Given below is an example usage scenario and the internal changes that happen at each step.

Step 1. The user launches the application. All employees and projects will be shown to the user.

Step 2. The user executes `addT n/todo pr/1 em/1 d/11-11-2023 2359` to add a new `Task` called `todo` to the first currently listed `Project`, assigned to the first `Employee` within that `Project`. `LogicManager` will call `TaskHubParser#parse(input)` to extract the parameters and pass it to an `AddTaskCommandParser`.

Step 3. `TaskHubParser` will call `AddTaskCommandParser#parse(arguments)` to produce a `AddTaskCommand` to be executed by the `LogicManager`.

Step 4. `LogicManager` calls `AddTaskCommand#execute(model)` to produce a `CommandResult `to be logged.

Step 5. During the execution of the `AddTaskCommand`, a new `Project` copy is created, with an updated `TaskList` that contains the newly created `Task`.
If an `employeeIndex` was specified by the command (in this case it was), then `Model::getFilteredEmployeeList` is called to assign the new `Task` to the specified `Employee`.
Then, the `Model#setProject` and `Model#updateFilteredProjectList` is called, to trigger a `Ui` update, as the specified `Project` has been updated with an updated `TaskList`.

Step 6. A `CommandResult` is produced based on whether the execution was a success or not and returned to the `LogicManager`.

---

### Contribution to user guide (extracts)
To be added soon.

---

# Getting Started

## Installing and Launching TaskHub

### Step 1: Install Java

Ensure you have Java `11` or above installed on your computer. If you don't have Java installed, follow the steps in [Appendix A: Installing Java](#appendix-a-installing-java).

### Step 2: Download TaskHub

Download the latest `taskhub.jar` from [here](https://github.com/AY2324S1-CS2103T-T08-3/tp/releases).

### Step 3: Set up TaskHub Home Folder

Copy or move the downloaded `taskhub.jar` file to the folder you want to use as the _home folder_ for your TaskHub.

### Step 4: Launch TaskHub

1. Open a terminal (MacOS) or command prompt (Windows).

2. Navigate to the folder where you placed the `taskhub.jar` file using the `cd` command. For example, our friendly TaskHubber has his `taskhub.jar` file in `/Users/timothyleow/Developer/TaskHub`, so he'll run:

```bash
cd /Users/timothyleow/Developer/TaskHub
```

3. Verify that your working directory contains `taskhub.jar` by using the `ls` command. You should see `taskhub.jar` in the list of files printed. Here's what our friendly TaskHubber got when running this command.
```bash
timothyleow@timleows-MBP TaskHub % ls
taskhub.jar
```
4. Once your terminal's working directory is the folder that contains `taskhub.jar`, run the following command to launch TaskHub:

```bash
java -jar taskhub.jar
```

After executing this command, a graphical user interface (GUI) similar to the one below should appear shortly:

<img src="../images/Ui.png" width="700">

Note: The application comes with some sample data for your reference.

---

## Understanding the components of TaskHub

---
### Employees


<img src="../images/Employee.png" width="400">

An `Employee` is someone that you are managing. TaskHub allows you to store their essential details and `tag` them with their strengths and weaknesses so you can allocate them to suitable [`Projects`](#projects) or [`Tasks`](#tasks).

#### Attributes:

| Field | Description | Prefix for [`addE`](#add-an-employee-adde) |
|--------------|----------------------------------------------------------------|--------------------------------------------|
| Name | Name of the employee. | `n/` |
| Phone Number | Phone number of the employee. | `p/` |
| Email | Email address of the employee. | `e/` |
| Address | Address of the employee. | `a/` |
| Tags | Tags indicating strengths/weaknesses/position of the employee. | `t/` |

---

### Projects
<img src="../images/Project.png" width="400">


A `Project` in TaskHub is a managerial unit that includes information about [`Employees`](#employee) allocated to the project and an (optionally) set [deadline](#edit-deadline-of-a-projects-dlp). You can [mark](#mark-projects-as-completed-markp) a `Project` as done when you deem fit. Additionally, you can add `Tasks` to a `Project`.
#### Attributes:

| Field | Description | Prefix for [`addP`](#add-a-new-project-addp) | Relevant Command(s) |
|------------------|------------------------------------------------------------|----------------------------------------------|-------------------------------------------------------------------------------------------------|
| Name | Name of the project. | `n/` | - |
| Employees | Employees assigned to the project. | `em/` | [`assignP`](#assign-employees-to-a-project-assignp) |
| Deadline | Deadline for the project. | - | [`dlP`](#edit-deadline-of-a-projects-dlp) |
| Priority | Priority level of the project. | - | [`priorityP`](#prioritise-projects-priorityp) |
| CompletionStatus | Indicates whether the project is completed or in progress. | - | [`markP`](#mark-projects-as-completed-markp), [`unmarkP`](#mark-projects-as-incomplete-unmarkp) |
| Tasks | Tasks associated with the project. | - | [`addT`](#add-a-new-task-to-a-project-addt) |

---

### Tasks

<img src="../images/Tasks.png" width="400">

A `Task` in TaskHub represents a specific job within a `Project` that can be assigned to an `Employee` under that `Project`. Tasks are required to have a deadline. Managing `Task`s will be the main way of monitoring the work done within your `TaskHub`!

#### Attributes:

| Field | Description | Prefix for [`addT`](#add-a-new-task-to-a-project-addt) | Relevant Command |
|----------|----------------------------------------|--------------------------------------------------------|-------------------------------------------------------------------------------------------|
| Name | Name of the task. | `n/` | - |
| Employee | Employee assigned to the task. | `em/` | [`assignT`](#assign-an-employee-to-a-task-assignt) |
| Deadline | Deadline for completing the task. | `d/` | - |
| isDone | Indicates whether the task is complete.| N.A. | [`markT`](#mark-tasks-as-completed-markt), [`unmarkT`](#mark-tasks-as-incomplete-unmarkt) |


## Quick start

<div markdown="span" class="alert alert-warning">

**:warning: Warning:** The first step in the Quick Start guide involves `deleteP`, which is irreversible. If you wish to keep the sample data, then you can head straight to the [Features](#features) section below to figure out TaskHub on your own.

</div>

If you're okay with modifying the sample data, then we'll proceed with our first gist of project management with TaskHub. Time is ticking!

If you haven't started running any commands, TaskHub should look something like this when you first run it:
<img src="../images/QuickStartStart.png" width="700">
### Step 1: Deleting a finished project
Hmmm, it seems like you're done with the 'Website Redesign Project'. Let's get rid of this data by running the below command.
```
deleteP 1
```
You should get the following response:
```
Deleted Project: Name: Website Redesign; Completed? Yes; Deadline: 15-11-2023; Priority: HIGH
Members: Alex Yeoh, Bernice Yu
```
Now, you're looking at the 'Market Expansion' project, which we'll be focusing on.
### Step 2: Adding a new employee to TaskHub:
You've just got an email from your boss, saying that the fresh graduate that you recently interviewed is joining your team!

Here are his details:

| Name | Anton Tan |
|--------------|---------------------------------|
| Phone Number | 98765432 |
| Email | [email protected] |
| Address | Anton Street, block 123, #01-01 |
| Strengths | TeamPlayer, Hardworking |

Let's run the following command to add him to your team of [`Employees`](#employees).
```
addE n/Anton Tan p/98765432 e/[email protected] a/Anton Street, block 123, #01-01 t/TeamPlayer t/Hardworking
```
You should get the following response:
```
New employee added: Anton Tan; Phone: 98765432; Email: [email protected]; Address: Anton Street, block 123, #01-01; Tags: [TeamPlayer][Hardworking]
```
### Step 3: Assigning an Employee to a Project in TaskHub:
You've decided that you need more help with the 'Market Expansion Project'. Let's run the following command to enlist Anton's help:
```
assignP pr/1 em/7
```

You should get the following response:
```
Member(s) have been assigned!
Name: Market Expansion; Completed? No; Deadline: 30-12-2023; Priority: NORMAL
Members: Charlotte Oliveiro, David Li, Anton Tan
```

### Step 4: Adding a Task to a Project:
Anton is eager to contribute to his newly assigned project. Since you've found that he is particularly skilled at Market Segmentation, let's run the following command to give him a task that he will excel at. To measure his capabilities, you'll only give him until the end of November to complete this.
```
addT n/Market Segmentation pr/1 em/3 d/30-11-2023 2359
```
You should get the following response:
```
New task added to project 1, Description: Market Segmentation; Deadline: 30 Nov 2023, 11:59PM; Assignee: Anton Tan
```
### Step 5: Marking a Task as Complete:
It's the next morning. You receive an eager email from Anton reporting that he's already completed the Market Segmentation `Task`. After reviewing his report, you are thoroughly impressed and wish to mark his work as done in `TaskHub`. Let's run this command:
```
markT pr/1 t/3
```

You should get the following response:
```
1 task(s) marked as completed under the project: Market Expansion
```

If you've followed the steps correctly, TaskHub should look something like this now:
Scroll down in the `Employees` pane to notice Anton, the newest addition to your team.
<img src="../images/QuickStartEnd.png" width="700">
For a more comprehensive overview of what you can achieve with TaskHub, you may proceed to the [Features](#features) section below.

0 comments on commit fac33c9

Please sign in to comment.