Skip to content

Commit

Permalink
Merge pull request #31 from AY2324S1-CS2103T-F10-4/master
Browse files Browse the repository at this point in the history
Merge from team repo
  • Loading branch information
WinstonLeonard authored Nov 14, 2023
2 parents 47e967e + ade506b commit 3e6f520
Show file tree
Hide file tree
Showing 7 changed files with 189 additions and 55 deletions.
77 changes: 67 additions & 10 deletions docs/DeveloperGuide.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,8 @@ 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 adapted from **[AddressBook 3(AB3)](https://github.com/se-edu/addressbook-level3)**
* Undo and Redo features are adapted from proposed implementations from **[AddressBook 3(AB3)](https://github.com/se-edu/addressbook-level3)**

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

Expand Down Expand Up @@ -223,6 +224,19 @@ The `FindCommand` extends the `Command` class. It allows the user to find for tu
subject using their prefixes. Both parameters are optional, but at least one of them must be specified for the `find`
command to work properly.

`NameContainsKeywordsPredicate` is a class which takes a list of strings as input, and is used to test whether the input
matches any of the names inside the tutee list.

`SubjectContainsKeywordsPredicate` is a class which takes a list of string as input, and is used to test whether the input
matches any of the subjects inside the tutee list.

As for `NameSubjectPredicate`, it takes in two parameters `NameContainsKeywordsPredicate` and
`SubjectContainsKeywordsPredicate` as to accommodate for both input of fields n/ and sb/.

However, since the method `updateFilteredPersonList` can only take one parameter, the merging of both
`NameContainsKeywordsPredicate` and `SubjectContainsKeywordsPredicate` into `NameSubjectPredicate` is the implementation
we decided to go with.

`FindCommand` takes in the following fields:
* **Name (Optional field)**: String composed of character between A-Z and a-z.
* **Subject (Optional field)**: String without restriction in characters.
Expand Down Expand Up @@ -740,10 +754,8 @@ Priorities: High (must have) - `* * *`, Medium (nice to have) - `* *`, Low (unli
2. System displays the monthly revenue figure.

Use case ends.

*{More to be added}*
<br>
<br>
<br>
<br>

### Non-Functional Requirements

Expand Down Expand Up @@ -985,13 +997,58 @@ testers are expected to do more *exploratory* testing.
2. Test case: `redo`<br>
Expected: No command is redone. Error details shown in the status message.

### Saving data
### Manually editing data file

1. Dealing with missing/corrupted data files
<div markdown="block" class="alert alert-info">
**:information_source: Info:** <br>
This section assumes that you are an advanced user and understand some basic computing terminologies
</div>

1. _{explain how to simulate a missing/corrupted file, and the expected behavior}_
The default save file is called `"tuitionconnect.json"`.

Below is an example of a valid save file format:
```
{
"persons" : [ {
"name" : "Bernice Yu",
"phone" : "99272758",
"email" : "[email protected]",
"address" : "Blk 30 Lorong 3 Serangoon Gardens, #07-18",
"subject" : "Physics",
"day" : "TUESDAY",
"begin" : "1000",
"end" : "1100",
"paid" : false,
"payRate" : "25.00"
}, {
"name" : "Charlotte Oliveiro",
"phone" : "93210283",
"email" : "[email protected]",
"address" : "Blk 11 Ang Mo Kio Street 74, #11-04",
"subject" : "Chemistry",
"day" : "WEDNESDAY",
"begin" : "1200",
"end" : "1300",
"paid" : false,
"payRate" : "30.00"
} ]
}
```

| Parameter | Description | Requirement / Remarks |
|---------------|-------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------|
| **`name`** | Name of tutee | [Alphanumeric](#glossary) and may contain spaces |
| **`date`** | Date of the upcoming application task | In **dd-mm-yyyy** format |
| **`phone`** | Contact number of tutee | Any number at least 3 digits long |
| **`email`** | Email address of tutee | In **XXXXXXXX@emaildomain** format <br> Example: `[email protected]` |
| **`address`** | Address of the tutee | [Alphanumeric](#glossary) and may contain spaces |
| **`subject`** | Subject of the tutee | [Alphanumeric](#glossary) and may contain spaces |
| **`day`** | Day of weekly recurring lesson of the tutee | Full name of day or first three letters of the full name <br> **Non-case sensitive** <br> Example: `Mon`/`Monday`/`monday` |
| **`begin`** | Begin time of a tutee's weekly recurring lesson | In **HHMM** format |
| **`end`** | End time of a tutee's weekly recurring lesson | In **HHMM** format |
| **`paid`** | Indicates if the tutee paid | boolean value for whether tutee has paid |
| **`payrate`** | dollars per hour you make teaching this tutee | Numbers up to two decimal places only <br> Numbers must be **non-negative** |

1. _{ more test cases …​ }_

## **Planned Enhancements**

Expand All @@ -1011,7 +1068,7 @@ Idea: Add a scheduling mechanism within the command execution to mark individual

Reason: To create a more sophisticated find feature for the best results. This enhancement allows users to get more specific results tailored to their criteria.

Idea: Modify the NameContainsKeywordPredicate and SubjectContainsKeywordPredicate to accept multiple word inputs (e.g. "find n/Alex Yeoh sb/Maths Chemistry).
Idea: Modify the NameContainsKeywordsPredicate and SubjectContainsKeywordsPredicate to accept multiple word inputs (e.g. "find n/Alex Yeoh sb/Maths Chemistry).

### Maximum PayRate

Expand Down
80 changes: 71 additions & 9 deletions docs/UserGuide.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,8 @@ Say goodbye to all this mess with the help of **TuitionConnect**: the ultimate d

This user guide will teach you how to install **TuitionConnect** from scratch, as well as providing information about the interesting features of **TuitionConnect**.

<div style="page-break-after: always;"></div>

## Table of Contents

<!-- TOC -->
Expand Down Expand Up @@ -58,6 +60,7 @@ This user guide will teach you how to install **TuitionConnect** from scratch, a
* [Parameter](#parameter)
<!-- TOC -->

<div style="page-break-after: always;"></div>
--------------------------------------------------------------------------------------------------------------------
## Introduction
TuitionConnect is a **desktop app** built for tutors and tutoring businesses to simplify the process of
Expand All @@ -78,6 +81,10 @@ paired up with simple and beginner-friendly features, anyone can learn how to us
:bulb: **Make the Switch Today!**
Transform your tutoring experience with **TuitionConnect!** Jump straight to the [Quick Start Section](#quick-start) and experience **TuitionConnect** now!

[Back to top &#8593;](#welcome-to-tuitionconnects-user-guide)

<div style="page-break-after: always;"></div>

## Using this guide
If you're feeling a bit lost, worry not!
This user guide is to assist you seamlessly incorporate this application into your private tutoring business operations.
Expand All @@ -96,9 +103,12 @@ the in-depth explanation for each command's format and use cases.
At last, we have also included a [Command Summary](#command-summary) section for when you become proficient at using
TuitionConnect to refer quickly to any commands that you may need!

Still unsure about the more technical terms used in this guide? Fret not, as we also provide a [glossary](#glossary)
Still unsure about the more technical terms used in this guide? Fret not, refer to the [glossary](#glossary)
to better understand all the technical jargons!

[Back to top &#8593;](#welcome-to-tuitionconnects-user-guide)

<div style="page-break-after: always;"></div>

## Symbols and Syntax

Expand All @@ -112,10 +122,17 @@ Throughout this User Guide, you might run into the following symbols and syntax.
| `Highlighted text block` | [Commands](#command) or [parameters](#parameter) that you can enter into our application, or text that is directly displayed in our application |
| [Hyperlinked text in blue](#symbols-and-syntax) | When it is pressed, it should lead you to another section in the document or to an external link. |

[Back to top &#8593;](#welcome-to-tuitionconnects-user-guide)

<div style="page-break-after: always;"></div>

## Layout
The image below describes TuitionConnect's layout with some description for each component.
![Layout](images/Layout.png)

[Back to top &#8593;](#welcome-to-tuitionconnects-user-guide)

<div style="page-break-after: always;"></div>

## Quick start

Expand All @@ -127,6 +144,7 @@ The image below describes TuitionConnect's layout with some description for each

4. Open a command terminal, `cd` into the folder you put the jar file in, and use the `java -jar TuitionConnect.jar` command to run the application.<br>
A GUI similar to the below should appear in a few seconds. The left list contains information about your tutees. The right list displays your teaching schedule for the next 7 days. Note how the app contains some sample data.<br>
<br>
![Ui](images/Ui.png)

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>
Expand All @@ -140,6 +158,10 @@ The image below describes TuitionConnect's layout with some description for each

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

[Back to top &#8593;](#welcome-to-tuitionconnects-user-guide)

<div style="page-break-after: always;"></div>

## Command Format

* Words in `UPPER_CASE` are the parameters to be supplied by the user.<br>
Expand All @@ -154,6 +176,10 @@ The image below describes TuitionConnect's layout with some description for each
* Extraneous parameters added after commands that do not take in parameters (such as `help`, `list`, `exit`, `undo`, `redo` and `clear`) will be ignored.<br>
e.g. if the command typed is `undo 123`, it will be interpreted as `undo`.

[Back to top &#8593;](#welcome-to-tuitionconnects-user-guide)

<div style="page-break-after: always;"></div>

## Parameters Requirement
Here are the [parameter](#glossary) requirements of commonly used parameters by [commands](#glossary) in the [**Features**](#features) section below.

Expand All @@ -174,6 +200,10 @@ Here are the [parameter](#glossary) requirements of commonly used parameters by

<br>

[Back to top &#8593;](#welcome-to-tuitionconnects-user-guide)

<div style="page-break-after: always;"></div>

## Features

### Viewing help : `help`
Expand All @@ -186,6 +216,8 @@ Here are the [parameter](#glossary) requirements of commonly used parameters by

![Help after](images/HelpAfter.png)

[Back to top &#8593;](#welcome-to-tuitionconnects-user-guide)

### Adding a tutee : `add`

**Description**: Adds new tutees you are tutoring into the list.
Expand All @@ -208,6 +240,8 @@ Here are the [parameter](#glossary) requirements of commonly used parameters by

![Add after](images/Add%20after.png)

[Back to top &#8593;](#welcome-to-tuitionconnects-user-guide)

### Listing tutees : `list`

**Description**: View the tutees that you are currently teaching.
Expand Down Expand Up @@ -236,6 +270,8 @@ Here are the [parameter](#glossary) requirements of commonly used parameters by

![list by day command](images/ListByDayCommand.png)

[Back to top &#8593;](#welcome-to-tuitionconnects-user-guide)

### Finding a tutee : `find`

**Description** : Find tutees quickly in your current list.
Expand Down Expand Up @@ -264,6 +300,7 @@ Here are the [parameter](#glossary) requirements of commonly used parameters by

![findAfter](images/findAfter.png)

[Back to top &#8593;](#welcome-to-tuitionconnects-user-guide)

### Editing a tutee : `edit`

Expand All @@ -290,6 +327,7 @@ Here are the [parameter](#glossary) requirements of commonly used parameters by

![editAfter](images/editAfter.png)

[Back to top &#8593;](#welcome-to-tuitionconnects-user-guide)

### Deleting a tutee: `delete`

Expand All @@ -309,6 +347,8 @@ Here are the [parameter](#glossary) requirements of commonly used parameters by

![deleteAfter](images/deleteAfter.png)

[Back to top &#8593;](#welcome-to-tuitionconnects-user-guide)

### Clearing all entries : `clear`

**Description**: Clears all entries from your list to start from scratch.
Expand All @@ -322,6 +362,8 @@ Here are the [parameter](#glossary) requirements of commonly used parameters by

![ClearCommand.png](images/ClearCommand.png)

[Back to top &#8593;](#welcome-to-tuitionconnects-user-guide)

### Marking a tutee as paid : `paid`

**Description**: Mark a specific tutee as paid in your list.
Expand All @@ -342,6 +384,8 @@ Here are the [parameter](#glossary) requirements of commonly used parameters by

![paidexample](images/paidexample.png)

[Back to top &#8593;](#welcome-to-tuitionconnects-user-guide)

### Marking a tutee as unpaid : `unpaid`

**Description**: Mark a specific tutee as not paid in your list.
Expand All @@ -360,6 +404,8 @@ Here are the [parameter](#glossary) requirements of commonly used parameters by

![unpaidexample](images/unpaidexample.png)

[Back to top &#8593;](#welcome-to-tuitionconnects-user-guide)

### Mark all tutee as unpaid: `unpaidAll`

**Description** : Mark all tutees in your current displayed list as not paid.
Expand All @@ -370,6 +416,8 @@ Here are the [parameter](#glossary) requirements of commonly used parameters by

![unpaidAllexample](images/unpaidAllexample.png)

[Back to top &#8593;](#welcome-to-tuitionconnects-user-guide)

### Finding Free Time : `freeTime`

**Description**: Finds timeslots when you are free in your schedule.
Expand All @@ -386,6 +434,8 @@ Here are the [parameter](#glossary) requirements of commonly used parameters by

![freeTime after](images/freeTime%20after.png)

[Back to top &#8593;](#welcome-to-tuitionconnects-user-guide)

### Undo previous command : `undo`

**Description**: Undo the most recent command if you made a mistake.
Expand All @@ -394,9 +444,6 @@ Here are the [parameter](#glossary) requirements of commonly used parameters by

:information_source: You can only undo `add`,`clear`,`delete`,`edit`,`redo`,`paid`,`unpaid` and `unpaidAll` commands.

**Examples**:
* `undo`

**Sample Execution**: `clear` followed by `undo`
1. `clear` deletes all tutee in the tutee list

Expand All @@ -406,12 +453,16 @@ Here are the [parameter](#glossary) requirements of commonly used parameters by

![undoCommand](images/undoCommand.png)

[Back to top &#8593;](#welcome-to-tuitionconnects-user-guide)

### Redo previous undone command : `redo`

**Description**: Redo the most recent command that was undone if you changed your mind.

**Format**: `redo`

[Back to top &#8593;](#welcome-to-tuitionconnects-user-guide)

### Calculating monthly revenue: `rev`

**Description**: Calculate the total monthly revenue from all your tutees.
Expand All @@ -424,6 +475,7 @@ Here are the [parameter](#glossary) requirements of commonly used parameters by

![Revenue Command Success](images/RevenueCommandSuccess.png)

[Back to top &#8593;](#welcome-to-tuitionconnects-user-guide)

### Exiting the program : `exit`

Expand All @@ -433,25 +485,33 @@ Here are the [parameter](#glossary) requirements of commonly used parameters by

:information_source: The application window closes automatically after you type the command `exit`

[Back to top &#8593;](#welcome-to-tuitionconnects-user-guide)






<div style="page-break-after: always;"></div>
--------------------------------------------------------------------------------------------------------------------

## FAQ

**Q**: How do I transfer my existing data to another machine?<br>
**A**: Overwrite the empty `tuitionconnect.json` file in the machine by deleting it and replacing it with the `tuitionconnect.json` that contains the data

**Q**: Where is my data stored?<br>
**A**: Your data is stored locally in a file named `tuitionconnect.json`

**Q**: Is there any way I can give feedback if I face any issues?<br>
**A**: You can submit your issues [here](https://github.com/AY2324S1-CS2103T-F10-4/tp/issues)

[Back to top &#8593;](#welcome-to-tuitionconnects-user-guide)

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

## Known issues

1. **When using multiple screens**, if you move the application to a secondary screen, and later switch to using only the primary screen, the GUI will open off-screen. The remedy is to delete the `preferences.json` file created by the application before running the application again.


<div style="page-break-after: always;"></div>

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

## Command summary
Expand All @@ -476,6 +536,8 @@ Here are the [parameter](#glossary) requirements of commonly used parameters by
| **rev** | `rev` |
| **exit** | `exit` |

[Back to top &#8593;](#welcome-to-tuitionconnects-user-guide)

## Glossary

### Alphanumeric
Expand Down
Loading

0 comments on commit 3e6f520

Please sign in to comment.