---
layout: page
title: User Guide
---
TAsker is a **desktop app for Teaching Assistants (TAs) to manage student administration, optimized for use via a Command Line Interface (CLI)**. It still has the benefits of a Graphical User Interface (GUI). If you can type fast, TAsker can get your administrative tasks done faster than traditional GUI apps.
* Table of Contents
[TOC]
--------------------------------------------------------------------------------------------------------------------
## Quick start
1. Ensure you have Java `11` or above installed in your Computer.
1. Download the latest `TAsker.jar` from [here](https://github.com/AY2021S1-CS2103T-F11-1/tp/releases).
1. Copy the file to the folder you want to use as the _home folder_ for your AddressBook.
1. Double-click the file to start the app. The GUI similar to the below should appear in a few seconds. Note how the app contains some sample data.<br>

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>
Some example commands you can try:
* **`list`** : Lists all student.
* **`add`**`n/John Doe p/98765432 e/johnd@example.com a/John street, block 123, #01-01` : Adds a student named `John Doe` to the Address Book.
* **`delete`**`3` : Deletes the 3rd student shown in the current list.
* **`clear`** : Deletes all students.
* **`exit`** : Exits the app.
1. Refer to the [Features](#features) below for details of each command.
--------------------------------------------------------------------------------------------------------------------
## Features
<div markdown="block" class="alert alert-info">
**:information_source: Notes about the command format:**<br>
* Words in `UPPER_CASE` are the parameters to be supplied by the user.<br>
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.
* 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.
</div>
### Viewing help : `help`
Shows a message explaining how to access the help page.
Format: `help`
### Adding a student: `add`
Adds a student to the address book.
Format: `add n/NAME p/PHONE_NUMBER e/EMAIL a/ADDRESS [t/TAG]…`
<div markdown="span" class="alert alert-primary">:bulb: **Tip:**
A student can have any number of tags (including 0)
</div>
Examples:
* `add n/John Doe p/98765432 e/johnd@example.com a/John street, block 123, #01-01`
* `add n/Betsy Crowe t/friend e/betsycrowe@example.com a/Newgate Prison p/1234567 t/criminal`
### Listing all students : `list`
Shows a list of all students in charge by the TA.
Format: `list`
### Editing a student : `edit`
Edits an existing student's information.
Format: `edit INDEX [n/NAME] [p/PHONE] [e/EMAIL] [t/TAG]…`
* Edits the student at the specified `INDEX`. The index refers to the index number shown in the displayed student list. The index **must be a positive integer** 1, 2, 3, …
* At least one of the optional fields must be provided.
* Existing values will be updated to the input values.
* When editing tags, the existing tags of the student will be removed i.e adding of tags is not cumulative.
* You can remove all the student’s tags by typing `t/` without
specifying any tags after it.
Examples:
* `edit 1 p/91234567 e/johndoe@example.com` Edits the phone number and email address of the 1st student to be `91234567` and `johndoe@example.com` respectively.
* `edit 2 n/Betsy Crower t/` Edits the name of the 2nd students to be `Betsy Crower` and clears all existing tags.
### Locating students by name: `find`
Finds students whose names contain any of the given keywords.
Format: `find KEYWORD [MORE_KEYWORDS]`
* The search is case-insensitive. e.g `hans` will match `Hans`
* The order of the keywords does not matter. e.g. `Hans Bo` will match `Bo Hans`
* Only the name is searched.
* Only full words will be matched e.g. `Han` will not match `Hans`
* Students matching at least one keyword will be returned (i.e. `OR` search).
e.g. `Hans Bo` will return `Hans Gruber`, `Bo Yang`
Examples:
* `find John` returns `john` and `John Doe`
* `find alex david` returns `Alex Yeoh`, `David Li`<br>

### Deleting a student : `delete`
Deletes the specified student from the address book.
Format: `delete INDEX`
* Deletes the student at the specified `INDEX`.
* The index refers to the index number shown in the displayed student list.
* The index **must be a positive integer** 1, 2, 3, …
Examples:
* `list` followed by `delete 2` deletes the 2nd student in the address book.
* `find Betsy` followed by `delete 1` deletes the 1st student in the results of the `find` command.
### Clearing all entries : `clear`
Clears all entries from the list of students.
Format: `clear`
### Show Attendance : `showatt`
Shows the attendance for tutorial on all dates / a specified date.
Format: `showatt [INDEX] [d/DATE]`
### Marking Attendance : `attend`
Marks the student as present for tutorial on a specified date.
Format: `attend [INDEX] d/DATE`
### Unmarking Attendance : `unattend`
Marks the student as absent (default) for tutorial on a specified date.
Format: `unattend INDEX d/DATE`
### Exiting the program : `exit`
Exits the program.
Format: `exit`
### Saving the data
TAsker data are saved in the hard disk automatically after any command that changes the data. There is no need to save manually.
### Archiving data files [coming in v2.0] : `archive`
Creates a copy of all current data, tagged with the current date and time.
e.g. running this command will create a file called `tasker_20200913_1041` containing all your saved data, in your `/data` folder.
Format: `archive`
--------------------------------------------------------------------------------------------------------------------
## FAQ
**Q**: How do I start using TAsker?
<br>
**A**: Refer to our [Quick Start Guide](https://hackmd.io/@chrisgzf/TAskerUG#Quick-start) here.
<br>
**Q**: How do I transfer my data to another Computer?<br>
**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 TAsker home folder.
<br>
**Q**: Can I import existing spreadsheets of my students?
<br>
**A**: This is not supported at the moment.
<br>
**Q**: How many students can I store?
<br>
**A**: More than you will ever teach in a lifetime.
<br>
**Q**: How do I submit a bug report?
<br>
**A**: [Open an issue on our github repository](https://github.com/AY2021S1-CS2103T-F11-1/tp/issues).
<br>
--------------------------------------------------------------------------------------------------------------------
## Command summary
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`
**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`
**Find** | `find KEYWORD [MORE_KEYWORDS]`<br> e.g., `find James Jake`
**Show Attendance** | `showatt [INDEX] [d/DATE]`
**Marking Attendance** | `attend [INDEX] d/DATE`
**Unmarking Attendance** | `unattend INDEX d/DATE`
**Archive** | `archive`
**List** | `list`
**Help** | `help`
**Exit** | `exit`