diff --git a/docs/UserGuide.md b/docs/UserGuide.md index 4ff0a9e2807..ceb8a8d7bcc 100644 --- a/docs/UserGuide.md +++ b/docs/UserGuide.md @@ -102,27 +102,14 @@ FastTrack will use a _default_ option, with no need to specify the values. ## About -This section gives an overview of the features of FastTrack and some frequently used terminologies throughout this user guide. - -1. Manage one-time and recurring expenses - * Add an expense - * Edit an expense - * Delete an expense - * Find an expense by keyword - * List expenses - * Filter by category - * Filter by time-span -2. Manage expense categories - * Add a category - * Edit a category - * Delete a category - * List categories -3. Expense Summary Statistics +This section gives an overview of the layout of FastTrack and defines terminologies and conventions used throughout this user guide. ### Graphical User Interface (GUI) The following diagrams highlight the different sections of the _Graphical User Interface (GUI)_ of FastTrack. ![FastTrack GUI](images/fasttrack_labeled_1.png) ![FastTrack GUI](images/fasttrack_labeled_2.png) +![FastTrack GUI](images/fasttrack_labeled_3.png) + | Part of FastTrack | Description | |---------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| @@ -144,15 +131,74 @@ The following table contains descriptions of key terminologies used in FastTrack | Category | An expense category, which comprises a name and summary - a short description of the category | -### Command Syntax -| Syntax | Description | -|-------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| `command` | Any text within this code block form (text surrounded by a highlight) represents a command which can be executed in FastTrack. It is also used when describing the format of a command. | -| `PARAMETER` | A word with full uppercase text in code block form (text surrounded by a highlight) parameter is any additional input supplied as part of a command before execution. | -| Prefix | A special alphabetical character followed by a forward slash `/` which precedes a parameter input. E.g. `n/NAME`,`c/CATEGORY` | - +## FastTrack Features + + +The features of FastTrack can be divided into 4 groups, **Category Features**, **Expense Features**, **General Features** and **Expense Statistics Feature**. + +1. **Expense features** (one-time and recurring) + * Add an expense + * Edit an expense + * Delete an expense + * Find an expense by keyword + * List expenses + * Filter by category + * Filter by time-span + * Add a recurring expense + * Edit a recurring expense + * Delete a recurring expense + * List recurring expenses +2. **Category features** + * Add a category + * Edit a category + * Delete a category + * List categories +3. **General features** + * Set a budget + * Autocompletion + * View help menu + * Clear data + * Exit application + +4. **Expense Statistics Feature** + * Monthly spending statistic + * Monthly remaining statistic + * Monthly percentage change statistic + * Weekly spending statistic + * Weekly remaining statistic + * Weekly percentage change statistic + * Total spent statistic + * Budget utilisation percentage statistic + + +### Category Features Summary +| Feature | Command Format | Examples | +|----------------------------------------------------|---------------------------------------------|------------------------------------| +| [**Add Category**](#adding-a-category-addcat) | `addcat c/CATEGORY_NAME s/SUMMARY` | `addcat c/Groceries s/for living` | +| [**Delete Category**](#deleting-a-category-delcat) | `delcat INDEX` | `delcat 1` | +| [**Edit Category**](#editing-a-category--edcat) | `edcat INDEX [c/CATEGORY_NAME] [s/SUMMARY]` | `edcat 1 c/New Name s/New Summary` | +| [**List Categories**](#listing-categories-lcat) | `lcat` | `lcat` | -## Features +### Expense Features Summary +| Feature | Command Format | Examples | +|-----------------------------------------------------------------------|---------------------------------------------------------------------------------------|----------------------------------------------------------------| +| [**Add Expense**](#adding-an-expense-add) | `add c/CATEGORY_NAME n/ITEM_NAME p/PRICE [d/DATE]` | `add c/Food p/20 n/Mac d/14/2/23` | +| [**Delete Expense**](#deleting-an-expense--delete) | `delete INDEX` | `delete 1` | +| [**Edit Expense**](#editing-an-expense--edexp) | `edexp INDEX [c/CATEGORY_NAME] [n/EXPENSE_NAME] [d/DATE] [p/PRICE]` | `edexp 1 c/Food n/Mac d/20/4/23 p/10` | +| [**List Expenses**](#listing-expenses--list) | `list [c/CATEGORY_NAME] [t/TIMEFRAME]` | `list c/Food t/month` | +| [**Find Expense**](#search-for-an-expense-by-name-find) | `find KEYWORD [MORE_KEYWORDS]` | `find KFC chicken` | +| [**Add Recurring Expense**](#adding-a-recurring-expense--addrec) | `addrec c/CATEGORY_NAME n/ITEM_NAME p/PRICE t/INTERVAL sd/START_DATE [ed/END_DATE]` | `addrec c/Shows n/Netflix p/10 t/month sd/10/3/23 ed/10/03/24` | +| [**Delete Recurring Expense**](#deleting-a-recurring-expense--delrec) | `delrec INDEX` | `delrec 1` | +| [**Edit Recurring Expense**](#editing-a-recurring-expense--edrec) | `edrec INDEX [c/CATEGORY_NAME] [n/EXPENSE_NAME] [p/PRICE] [t/INTERVAL] [ed/END_DATE]` | `edrec 1 c/Show n/Disney Plus p/2 t/week ed/10/5/24` | +| [**List Recurring Expense**](#listing-recurring-expense--lrec) | `lrec` | `lrec` | + +### General Features Summary +| Feature | Command Format | Examples | +|------------------------------------------------|----------------|--------------| +| [**Set Budget**](#setting-budget--set) | `set p/AMOUNT` | `set p/1000` | +| [**Help**](#viewing-help--help) | `help` | `help` | +| [**Exit program**](#exiting-the-program--exit) | `exit` | `exit` | +| [**Clear data**](#clearing-all-entries--clear) | `CLEAR` | `CLEAR` |
@@ -164,9 +210,6 @@ The following table contains descriptions of key terminologies used in FastTrack * Items in square brackets are optional.
e.g `p/PRICE [d/DATE]` can be used as `p/4.50 d/14/2/2023` or as `p/4.50`. -* Items with `…`​ after them can be used multiple times including zero times.
- e.g. `[c/CATEGORY_NAME]…​` can be used as ` ` (i.e. 0 times), `c/groceries`, `c/groceries c/food` etc. - * Parameters can be in any order.
e.g. if the command specifies `c/CATEGORY_NAME p/PRICE`, `p/PRICE c/CATEGORY_NAME` is also acceptable. @@ -179,13 +222,7 @@ The following table contains descriptions of key terminologies used in FastTrack
-## Viewing help : `help` - -Shows a message explaining how to access the help page, as well as a quick rundown of what commands can be used. - -![help message](images/helpMessage.png) - -Format: `help` +# 1. Category Features ## Adding a category: `addcat` @@ -196,7 +233,7 @@ Format: `addcat c/CATEGORY_NAME s/SUMMARY` | Parameter | Description | |-----------------|-----------------------------------------------------| | `CATEGORY_NAME` | Title of the category to be added. | -| `SUMMARY` | Short summary of what this category keeps track of. | +| `SUMMARY` | Short summary of what this category keeps track of. | Examples: @@ -209,15 +246,37 @@ Deletes an expense category at the specified `INDEX`. Format: `delcat INDEX` -| Parameter | Description | -|-----------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| `INDEX` | The index number shown in the displayed categories list.

It must be a positive integer i.e. 1, 2, 3, ...

Expenses previously categorised under the category at the specified index will no longer be part of that category, and will be re-categorized under the `MISC` category.
| +| Parameter | Description | +|-----------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| `INDEX` | The index number shown in the displayed categories list.

It must be a positive integer i.e. 1, 2, 3, ...

Expenses previously categorised under the category at the specified index will no longer be part of that category, and will be re-categorized under the `MISC` category.
| Examples: * `lcat` followed by `delcat 2` deletes the second category in the log * `lcat` followed by `delcat 1` deletes the first category in the log +## Editing a category : `edcat` + +Edits the category at the specified `INDEX` + +Format: `edcat INDEX [c/CATEGORY_NAME] [s/SUMMARY]` + +Both `CATEGORY_NAME` and `SUMMARY` are optional by themselves, but at least one of them MUST be specified in addition +to `INDEX`, otherwise the command will not go through. + +| Parameter | Description | +|-----------------|---------------------------------------------------------------------------------------------------| +| `INDEX` | The index of the category to be edited.

It must be a positive integer i.e. 1, 2, 3, ... | +| `CATEGORY_NAME` | The new name of the category being edited at the specified index.

Optional parameter. | +| `SUMMARY` | The new summary of the category being edited at the specified index.

Optional parameter. | + + +## Listing Categories: `lcat` +Shows a list of categories in the expense tracker. + +Format: `lcat` + +# 2. Expense Features ## Adding an expense: `add` @@ -225,12 +284,12 @@ Adds an expense to the expense tracker. Format: `add c/CATEGORY_NAME n/ITEM_NAME p/PRICE [d/DATE]` -| Parameter | Description | -|-----------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| `CATEGORY_NAME` | The category which the expense should be classified under.

If there is no such category, a new category will be created with the specified category name. | -| `ITEM_NAME` | Name of the expense being added. | -| `PRICE` | The price of the expense being added.

The specified price should be a `double`, e.g. 4, 4.50. | -| `DATE` | The date of the expense being added.

This is an optional input, and if left unspecified, the date of which the command is issued will be the expense's date by default. | +| Parameter | Description | +|-----------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| `CATEGORY_NAME` | The category which the expense should be classified under.

If there is no such category, a new category will be created with the specified category name. | +| `ITEM_NAME` | Name of the expense being added. | +| `PRICE` | The price of the expense being added.

The specified price should be a `double`, e.g. 4, 4.50. | +| `DATE` | The date of the expense being added.

This is an optional input, and if left unspecified, the date of the expense will be set to the current date by default. | Examples: @@ -243,58 +302,14 @@ Deletes an expense at the specified `INDEX` from the expense tracker. Format: `delete INDEX` -| Parameter | Description | -|-----------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| `INDEX` | The index number shown in the displayed categories list.

It must be a positive integer i.e. 1, 2, 3, ...

Expenses previously categorised under the category at the specified index will no longer be part of that category, and will be re-categorized under the `MISC` category.
| +| Parameter | Description | +|-----------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| `INDEX` | The index number shown in the displayed categories list.

It must be a positive integer i.e. 1, 2, 3, ...

If there are expenses previously categorised under the category which is marked for deletion, the expense will be re-categorized under the `MISC` category.
| Examples: * `list` followed by `delete 2` deletes the second expense in the log * `find movie` followed by `delete 1` deletes the first expense in the results of the `find` command -## Listing Categories: `lcat` -Shows a list of categories in the log. - -Format: `lcat` - -## Listing expenses : `list` - -Shows a list of expenses in the expense tracker based on the specified `CATEGORY_NAME`, `TIMEFRAME` and `RECUR_PERIOD`. - -If `CATEGORY_NAME` and `TIMEFRAME` are left unspecified, all expenses in the expense tracker will be listed. -If only `RECUR_PERIOD` is left unspecified, all non-recurring expenses will be listed. - -Format: `list [c/CATEGORY_NAME] [t/TIMEFRAME] [r/RECUR_PERIOD]` - -| Parameter | Description | -|-----------------|---------------------------------------------------------------------------------------------------------------------------| -| `CATEGORY_NAME` | The name of the category of which expenses are classed under.

Optional to specify. | -| `TIMEFRAME` | The timeframe of which expenses were added.

The timeframes available are:
1. week (alias: w)
2. month (alias: m)
3. year (alias: y)

Optional to specify.| -| `RECUR_PERIOD` | The period with which the expense is recurring.

The timeframes available are:
1. week
2. month
3. year | - -Examples: -* `list` -* `list c/Groceries t/week` -* `list c/Entertainment t/month` -* `list c/Food` -* `list t/w` -* `list c/Entertainment t/year r/month` - -## Editing a category : `edcat` - -Edits the category at the specified `INDEX` - -Format: `edcat INDEX [c/CATEGORY_NAME] [s/SUMMARY]` - -Both `CATEGORY_NAME` and `SUMMARY` are optional by themselves, but at least one of them MUST be specified in addition -to `INDEX`, otherwise the command will not go through. - -| Parameter | Description | -|-----------------|---------------------------------------------------------------------------------------------------| -| `INDEX` | The index of the category to be edited.

It must be a positive integer i.e. 1, 2, 3, ... | -| `CATEGORY_NAME` | The new name of the category being edited at the specified index.

Optional parameter. | -| `SUMMARY` | The new summary of the category being edited at the specified index.

Optional parameter. | - - ## Editing an expense : `edexp` Edits the expense at the specified `INDEX` @@ -311,8 +326,41 @@ specified, otherwise the command will not go through. | `EXPENSE_NAME` | The new expense name of the expense to be changed to.

Optional parameter. | | `DATE` | The new date of the expense to be changed to.

Optional parameter. | | `PRICE` | The new price of the expense to be changed to.

Optional parameter. | -| `RECUR_PERIOD` | The new recurrence period of the expense to be changed to.

Optional parameter. | +Examples: +* `edexp 1 c/groceries` changes the category of the first expense in the expense tracker +* `edexp 2 p/20 n/movie night` changes the price and name of the second expense in the expense tracker + + +## Listing expenses : `list` + +Shows a list of expenses in the expense tracker with the option of applying filters based on the specified `CATEGORY_NAME`, `TIMEFRAME`. + +If `CATEGORY_NAME` filter is specified, only the expenses categorized under that specific category will be displayed. +If `TIMEFRAME` filter is specified, only the expenses that fall within that timeframe are displayed. + +If `CATEGORY_NAME` and `TIMEFRAME` are left unspecified, all expenses in the expense tracker will be listed by default. + +Format: `list [c/CATEGORY_NAME] [t/TIMEFRAME] [r/RECUR_PERIOD]` + +| Parameter | Description | +|-----------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| `CATEGORY_NAME` | The name of the category of which expenses are classed under.

Optional to specify. | +| `TIMEFRAME` | The timeframe of which expenses were added.

The timeframes available are:
1. week (alias: w)
2. month (alias: m)
3. year (alias: y)

Optional to specify. | + +Examples: +* `list` +* `list c/Groceries t/week` +* `list c/Entertainment t/month` +* `list c/Food` +* `list t/w` +* `list c/Entertainment t/year` + +
+**:information_source: Using both `CATEGORY_NAME` and `TIMEFRAME` filters:**
+* Using both the category and timeframe filters will only display expenses that satisfy both the filter conditions.
+ e.g. in `list c/food t/week`, only expenses with both the category name "Food" and date falling within the current week will be displayed. +
## Search for an expense by name: `find` @@ -338,6 +386,7 @@ Date: 2023-03-03, Category: Groceries, Name: Milk, Price: $4.00 * `find kfc milk` returns `Milk` and `KFC` * `find mcdonald's` returns `McDonald's`
+ ## Adding a Recurring Expense: `addrec` Adds a recurring expense to the expense tracker. Format: `addrec c/CATEGORY_NAME n/ITEM_NAME p/PRICE t/INTERVAL sd/START_DATE [ed/END_DATE]` @@ -351,6 +400,10 @@ Format: `addrec c/CATEGORY_NAME n/ITEM_NAME p/PRICE t/INTERVAL sd/START_DATE [ed | `START_DATE` | The starting date of the recurring expense | | `END_DATE` | The ending date of the recurring expense

Optional parameter. | +Examples: +* `addrec n/milk c/groceries p/4.50 sd/20/3/2023 t/month` +* `addrec n/milk c/groceries p/4.50 sd/20/3/2023 ed/15/5/2023 t/w` + ## Deleting a recurring expense: `delrec` Deletes an expense category at the specified `INDEX`. @@ -359,7 +412,7 @@ Format: `delrec INDEX` | Parameter | Description | |-----------|--------------------------------------------------------------------------------------------------------------------------| -| `INDEX` | The index number shown in the displayed recurring expense list.

It must be a positive integer i.e. 1, 2, 3, ... | +| `INDEX` | The index number shown in the displayed recurring expense list.

It must be a positive integer i.e. 1, 2, 3, ... | Examples: * `lrec` followed by `delrec 2` deletes the second recurring expense in the log @@ -374,22 +427,28 @@ Format: `edrec INDEX [c/CATEGORY_NAME] [n/EXPENSE_NAME] [p/PRICE] [t/INTERVAL] [ Every parameter except for `INDEX` is optional by themselves, but at least one of other parameters MUST be specified, otherwise the command will not go through. -| Parameter | Description | -|-----------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| `INDEX` | The index of the recurring expense to be edited.

It must be a positive integer i.e. 1, 2, 3, ... | -| `CATEGORY_NAME` | The new category name of the recurring expense to be changed to.

Optional parameter. | -| `EXPENSE_NAME` | The new expense name of the recurring expense to be changed to.

Optional parameter. | -| `PRICE` | The new price of the recurring expense to be changed to.

Optional parameter. | -| `INTERVAL` | The new recurrence period of the expense to be changed.
The timeframes available are:
1. day
2. week
3. month
4. year to.

Optional parameter. | -|`END_DATE`| The new ending date of recurring expense.

Optional parameter.| +| Parameter | Description | +|-----------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| `INDEX` | The index of the recurring expense to be edited.

It must be a positive integer i.e. 1, 2, 3, ... | +| `CATEGORY_NAME` | The new category name of the recurring expense to be changed to.

Optional parameter. | +| `EXPENSE_NAME` | The new expense name of the recurring expense to be changed to.

Optional parameter. | +| `PRICE` | The new price of the recurring expense to be changed to.

Optional parameter. | +| `INTERVAL` | The new recurrence period of the expense to be changed.
The timeframes available are:
1. day
2. week
3. month
4. year

Optional parameter. | +| `END_DATE` | The new ending date of recurring expense.

Optional parameter. | + +Examples: +* `edrec 1 c/groceries t/week` updates the category and recurrence period first recurring expense in the expense tracker. +* `edrec 2 p/4.50 ed/15/5/2023` updates the price and ending date of the second recurring expense in the expense tracker. ## Listing Recurring Expense: `lrec` Shows a list of recurring expense in the log. Format: `lrec` +# 3. General Features ## Setting Budget: `set` Sets the monthly budget of the expense tracker. +FastTrack derives the weekly budget from this monthly budget by dividing the monthly budget by 4. Format `set p/AMOUNT` @@ -397,6 +456,21 @@ Format `set p/AMOUNT` |-----------|-----------------------------------| | `AMOUNT` | The monthly budget amount to set. | +Examples: +* `set p/50` sets the monthly budget of the expense tracker to $50 + + +## Category Autocomplete +FastTrack will provide a list of suggested category names, displayed as a popup above the command box when `c/` is entered. + +### Select a Suggested Category from list +Press the "UP" arrow key on your keyboard to navigate into the suggestions list. From here, you can choose a suggested category name using both the "UP" and "DOWN" arrow keys. +To select the highlighted category, press the "ENTER" key on the keyboard. The command box will autocomplete the selected category name suggestion. +To navigate out of the suggestions list, press the "DOWN" arrow key until the bottom of the suggestions list has been reached, then press the "DOWN" arrow key once again to return the cursor to the command box. + +### Select the first Suggested Category +To select the first (bottom-most) suggested category option without having to navigate into the suggestions list, press the "TAB" key on your keyboard to trigger the autocompletion. + ## Clearing all entries : `CLEAR` @@ -410,6 +484,16 @@ Exits the program. Format: `exit` + +## Viewing help : `help` + +Shows a message explaining how to access the help page, as well as a quick rundown of what commands can be used. + +![help message](images/helpMessage.png) + +Format: `help` + + ## Saving the data All data are saved in the hard disk automatically after any command that changes the data. There is no need to save manually. @@ -426,6 +510,11 @@ If your changes to the data file makes its format invalid, FastTrack will discar _Details coming soon ..._ + +# 4. Expense Statistic Feature + +_Details coming soon ..._ + -------------------------------------------------------------------------------------------------------------------- ## FAQ @@ -434,36 +523,3 @@ _Details coming soon ..._ **A**: Install the app in the other computer and overwrite the empty data file it creates with the file that contains the data of your previous FastTrack home folder. -------------------------------------------------------------------------------------------------------------------- - -## Command summary - - -### Category Commands - -| Action | Format | Examples | -|----------------------------------------------------|---------------------------------------------|------------------------------------| -| [**Add Category**](#adding-a-category-addcat) | `addcat c/CATEGORY_NAME s/SUMMARY` | `addcat c/Groceries s/for living` | -| [**Delete Category**](#deleting-a-category-delcat) | `delcat INDEX` | `delcat 1` | -| [**Edit Category**](#editing-a-category--edcat) | `edcat INDEX [c/CATEGORY_NAME] [s/SUMMARY]` | `edcat 1 c/New Name s/New Summary` | -| [**List Categories**](#listing-categories-lcat) | `lcat` | `lcat` | - -### Expense Commands -| Action | Format | Examples | -|-----------------------------------------------------------------------|-------------------------------------------------------------------------------------|----------------------------------------------------------------| -| [**Add Expense**](#adding-an-expense-add) | `add c/CATEGORY_NAME n/ITEM_NAME p/PRICE [d/DATE]` | `add c/Food p/20 n/Mac d/14/2/23` | -| [**Delete Expense**](#deleting-an-expense--delete) | `delete INDEX` | `delete 1` | -| [**Edit Expense**](#editing-an-expense--edexp) | `edexp INDEX [c/CATEGORY_NAME] [n/EXPENSE_NAME] [d/DATE] [p/PRICE]` | `edexp 1 c/Food n/Mac d/20/4/23 p/10` | -| [**List Expenses**](#listing-expenses--list) | `list [c/CATEGORY_NAME] [t/TIMEFRAME]` | `list c/Food t/month` | -| [**Find Expense**](#search-for-an-expense-by-name-find) | `find KEYWORD [MORE_KEYWORDS]` | `find KFC chicken` | -| [**Add Recurring Expense**](#adding-a-recurring-expense--addrec) | `addrec c/CATEGORY_NAME n/ITEM_NAME p/PRICE t/INTERVAL sd/START_DATE [ed/END_DATE]` | `addrec c/Shows n/Netflix p/10 t/month sd/10/3/23 ed/10/03/24` | -| [**Delete Recurring Expense**](#deleting-a-recurring-expense--delrec) | `delrec INDEX` | `delrec 1` | -|[**Edit Recurring Expense**](#editing-a-recurring-expense--edrec)| `edrec INDEX [c/CATEGORY_NAME] [n/EXPENSE_NAME] [p/PRICE] [t/INTERVAL] [ed/END_DATE]` | `edrec 1 c/Show n/Disney Plus p/2 t/week ed/10/5/24`| -|[**List Recurring Expense**](#listing-recurring-expense--lrec)| `lrec` |`lrec`| - -### General Commands -| Action | Format | Examples | -|------------------------------------------------|---------|----------| -|[**Set Budget**](#setting-budget--set)| `set p/AMOUNT`| `set p/1000`| -| [**Help**](#viewing-help--help)| `help`| `help`| -| [**Exit program**](#exiting-the-program--exit)| `exit`| `exit`| -| [**Clear data**](#clearing-all-entries--clear)| `CLEAR`| `CLEAR`| diff --git a/docs/images/fasttrack_labeled_1.png b/docs/images/fasttrack_labeled_1.png index 0633c6b4c4a..32b1fb2d74c 100644 Binary files a/docs/images/fasttrack_labeled_1.png and b/docs/images/fasttrack_labeled_1.png differ diff --git a/docs/images/fasttrack_labeled_2.png b/docs/images/fasttrack_labeled_2.png index 923bbe44bd1..3db41f2ccd2 100644 Binary files a/docs/images/fasttrack_labeled_2.png and b/docs/images/fasttrack_labeled_2.png differ diff --git a/docs/images/fasttrack_labeled_3.png b/docs/images/fasttrack_labeled_3.png new file mode 100644 index 00000000000..f940344c829 Binary files /dev/null and b/docs/images/fasttrack_labeled_3.png differ