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

Merge from team repo #31

Merged
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
30 commits
Select commit Hold shift + click to select a range
552f701
Merge pull request #27 from AY2324S1-CS2103T-F10-4/master
WinstonLeonard Nov 13, 2023
612f179
Merge pull request #28 from WinstonLeonard/Documentation
WinstonLeonard Nov 13, 2023
0779c54
Merge pull request #29 from WinstonLeonard/Documentation
WinstonLeonard Nov 14, 2023
2a3ade7
Update PPP
Heran9 Nov 14, 2023
4e0b864
Merge pull request #244 from WinstonLeonard/master
jovkusuma Nov 14, 2023
af259e8
Merge pull request #245 from WinstonLeonard/Documentation
jovkusuma Nov 14, 2023
67141ee
Modify UG: Add Page Breaks & Hyperlinks
lambraydon Nov 14, 2023
72744ec
Merge pull request #246 from lambraydon/branch-Docs
WinstonLeonard Nov 14, 2023
a8f65fb
Add explanations for Find
jovkusuma Nov 14, 2023
f279a33
Fix Conflicts
jovkusuma Nov 14, 2023
078d047
Remove more to be added in UC
jovkusuma Nov 14, 2023
05bc562
Modify DG ackowledgments and site title
yihfei Nov 14, 2023
098c6d1
Modify UG: Add Page Breaks
lambraydon Nov 14, 2023
c5d504d
Merge pull request #248 from jovkusuma/branch-NewUpdateDG
Heran9 Nov 14, 2023
696f4d3
Merge pull request #243 from Heran9/add-info-heran
jovkusuma Nov 14, 2023
f40bf85
Merge pull request #249 from lambraydon/branch-Docs
jovkusuma Nov 14, 2023
dbb4868
Update save file section in DG
yihfei Nov 14, 2023
8f99017
Modify UG: Edit Page Breaks
lambraydon Nov 14, 2023
1df376a
Merge pull request #247 from yihfei/branch-docs
WinstonLeonard Nov 14, 2023
ee4f6b4
Merge pull request #250 from lambraydon/branch-Docs
WinstonLeonard Nov 14, 2023
525f7e1
Fix styling
jovkusuma Nov 14, 2023
0490fb4
Modify PPP
lambraydon Nov 14, 2023
7d1b281
Fix styling again
jovkusuma Nov 14, 2023
f534bad
Modify PPP
lambraydon Nov 14, 2023
82918bd
Update PPP
yihfei Nov 14, 2023
7e6cf4b
Modify PPP
Heran9 Nov 14, 2023
afd449e
Merge pull request #251 from jovkusuma/branch-UpdatePPP
lambraydon Nov 14, 2023
312c8a4
Merge pull request #252 from lambraydon/branch-Docs
jovkusuma Nov 14, 2023
393afb7
Merge pull request #253 from yihfei/branch-docs
jovkusuma Nov 14, 2023
ade506b
Merge pull request #254 from Heran9/add-info-heran
jovkusuma Nov 14, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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
Loading