Skip to content

AY2223S1-CS2103T-T09-4/cs2101UG

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 

Repository files navigation

Error in user YAML: (<unknown>): did not find expected alphabetic or numeric character while scanning an alias at line 2 column 8
---
layout: page
title: **Teacher's Pet** User Guide
---

Teacher’s Pet is an all-in-one desktop application for private 1-to-1 tutors to manage the details of students, payment and scheduling of classes. Teacher's Pet combines the tasks you would typically need to do when you use Microsoft Excel, calendar, your phone contacts and your notes application into one application, reducing the need for context switching. With short commands and an intuitive design, Teacher's Pet reduces time needed for tedious administrative work, allowing you to focus on your students.

In order to help speed up your workflow, we have created commands for tasks you would usually need to do as a tutor.

Task Command
Add a new student add command
Edit a student's details (phone number, address for example) edit command
Mark a student's attendance and remind yourself to collect payment from the student. mark command
Receive money from a student pay command
Know the students you have list command
Search for student's information find command / sort command
Find next available class for student avail command
Set a student's next class edit command
Taking notes edit command
Remove a student as he is no longer a student delete command

Before you get started, you may want to know how to navigate this User Guide.

To get started with using the application, jump straight to the Quick Start section.

For a full list of commands and detailed instructions, head to the Features section.

💡 **Tip:** If you ever need clarification on certain terms, you can simplify head down to the bottom of the screen and refer to the glossary section, command summary for the summary of the commands and prefix summary for summary of prefixes!

Table of contents


Quick start

There are a couple of things that need to be set up first before you start using Teacher's Pet for the first time. This will ensure that the application works as expected and runs smoothly on your computer.

Step 1: Ensure you have Java 11 or above installed in your Computer

To check if you have Java 11 or above installed, follow the steps for your operating system

If you are using Windows:
  1. Press the Start button, type cmd and press Enter on your keyboard.
  2. Once you have Command Prompt running, type java --version and if you have Java installed properly, you should see an output like the following. UI introduction
If you are using Mac:
  1. Open up terminal by hitting Command + Space bar on your keyboard and typing terminal then press the return button on your keyboard.
  2. Once you have terminal running, type java --version and if you have Java installed properly, you should see an output like the following. UI introduction

If you do not see an output like the one above, it means that you do not have Java 11 installed

Follow the instructions in the video link below for your operating system for the installation of Java 11

Step 2: Install teacherspet.jar

  • Once you have completed step 1, download the latest teacherspet.jar from here.
  • Copy the file to the folder you want to use which will become the home folder for your application.
  • Double-click the file to start the app. The GUI as seen below should appear in a few seconds. In this case, Teacher's Pet contains some sample data.

UI introduction


UI Overview

Teacher's Pet is divided into 5 areas to maximise productivity:

  1. Command Input - The dialog box where you will input your desired commands.
  2. Command Result - A short answer whether Teacher's Pet has executed the command, or an error message if the Teacher's Pet did not understand the command.
  3. Student List - A window that will display the details of the student(s).
  4. Statistics Window - A window that shows all the statistics of the tutor, such as the number of students and the money collected/owed.
  5. Schedule List - A scroll window which shows the schedule for the day, sorted by time.

Partition

Basic Instructions:

  1. Type the following command in the Command Input section, and press Enter on your keyboard to execute it. For example, typing help and pressing Enter will open the help window. Below are some example commands you can start with:
    • list: Lists all students.
    • add n/John Doe p/98765432 np/81239090 e/[email protected] a/John street, block 123, #01-01: Adds a student named John Doe to the student list.
    • edit 1 dt/2022-11-30 0800-0900: Edit John to have a class on 2022-11-30 0800-0900
    • mark 1: Mark John's attendance
    • avail 0800-1500 60: Finds the first available slot in the range of 0800-1500 which has a duration of 60 minutes.
    • delete 3: Deletes the 3rd student shown in the current list.
    • exit: Exits the app.
  2. Refer to the Features section below for details of each command.

↑ Back to top


Reading the User Guide

💡 **Tip:** We recommend reading the features section of our application from top to bottom as the illustrations added follow a sequential order.

Notes about the command format:

Format Example
Words in UPPER_CASE are parameters supplied by you Given the following format, add n/NAME. In this case, NAME is a parameter which can be replaced by John Doe as add n/John Doe
Items in square brackets are optional Given n/NAME [t/TAG], since t/TAG is in square brackets, you can type either n/John Doe t/python or n/John Doe if no tag is required
Items with after them can be used 0 or more times Given [t/TAG]…, you can choose to not type anything, t/python for one tag, t/javascript t/react for two tags and etc.
Parameters with a prefix can be in any order n/NAME p/CONTACT_NUMBER or p/CONTACT_NUMBER n/NAME are acceptable
A parameter expected once will have only it's last occurrence taken despite being specified multiple times If you specify p/12341234 p/56785678, only p/56785678 will be accepted by Teacher's Pet.
Extraneous parameters for commands that do not take in parameters (such as help, list, exit and clear) will be ignored If the you type help 123, the command will be interpreted as help.
An index will be INDEX-S if the command requries information from the Schedule List and will be INDEX if it requires information from Student List Under mark command, mark 1 will mark the 1st student in the Schedule List. Under delete command, delete 1 will remove the first student from Student List

Callouts:

The callouts icons below will be useful when you are reading this user guide.

Icon Definition
ℹ️ Indicates additional information that can help you to gain a better understanding. They are good to know but not crucial.
💡 Indicates tips and solutions for potential problems you may encounter.
Indicates information that are important to know so as to minimise confusion.
⚠️ Indicates a warning to ensure you will proceed with care.

↑ Back to top


Features

These are the main features of Teacher's Pet:

Task Command
Add a new student add command
Edit a student's details (phone number, address for example) edit command
Mark a student's attendance and remind yourself to collect payment from the student. mark command
Receive money from a student pay command
Know the students you have list command
Search for student's information find command / sort command
Find next available class for student avail command
Set a student's next class edit command
Taking notes edit command
Remove a student as he is no longer a student delete command

Viewing help: help

If you need to gain access to this user guide, you can use this command which will provide a link to the website containing this user guide.

Format: help

Help

↑ Back to top


Adding a student: add

The add command adds a student to Teacher’s Pet.

The following are the fields accepted by the add command and their relevant conditions which need to be met for the command to work as expected.

Student’s Name:
- Student’s Name must not be empty.
- Student’s Name must only contain alphanumeric characters.
ℹ **Note:** Multiple students may share the same name.
Student’s Contact Number:
  • Student’s contact number must not be empty.
  • Student’s contact number must only contain numerical digits between 0 and 9.
  • Student's contact number must begin with 6, 8 or 9.
ℹ **Note:** Contact number must contain exactly 8 digits. Contact number must be unique.
Next of Kin’s Contact Number:
  • Next of Kin’s contact number must not be empty.
  • Next of Kin’s contact number must only contain numerical digits between 0 and 9.
  • Next of Kin’s contact number must begin with 6, 8 or 9.
ℹ **Note:** Next of Kin’s contact number must contain exactly 8 digits.
Address:
  • Address must not be empty.
  • Address may contain any kinds of character.
ℹ **Note:** Address cannot be empty. It must contain at least 1 character.
Email:
  • Email must not be empty.
  • Email should be in the format of local@domain, where:
    • Local address should only contain alphanumeric characters and these special characters +_.-.
    • Consecutive special characters are not supported.
    • The domain name must:
      1. End with a domain label at least 2 characters long.
      2. Have each domain label start and end with alphanumeric characters.
      3. Have each domain label consist of alphanumeric characters, separated only by hyphens, if any.
Tags:
  • Tags are optional.
  • A student can have any number of tags (including 0).
  • Tags must only contain alphanumeric characters.
ℹ **Note:** Tags must contain at least 1 alphanumeric character, cannot contain spacings and limited to `40` characters long.

Format:

  • add n/NAME p/CONTACT_NUMBER np/NEXT_OF_KIN_CONTACT_NUMBER e/EMAIL a/ADDRESS [t/TAG]…

Example: Type add n/Ben Tan p/87201223 np/90125012 e/[email protected] a/Avenue 712 in the Command Input, a student named Ben Tan will be added to the bottom of the Student List.

Add Add

ℹ **Note:** Amount paid, Amount owed, Rates per Class, and Additional notes fields are to be updated via `edit` command.

↑ Back to top


Editing student details: edit

The edit command edits an existing student under Student List. You can edit the following fields under a student.

  • Student’s Name
  • Student's Contact Number
  • Next of Kin’s Contact Number
  • Address
  • Email
  • Class Date
  • Amount Paid
  • Amount Owed
  • Rates per Class
  • Additional Notes
  • Tag

The following are the fields accepted by the edit command and their relevant conditions which need to be met for the command to work as expected.

Student's Name, Student's Contact Number, Next of Kin’s Contact Number, Email, Address and Tag follow the same convention as adding a student.
Class Date:
  • Class date can be left empty.
  • Formats: dt/ must be followed by either one of the below options.
    1. yyyy-MM-dd 0000-2359
    2. Day-of-Week 0000-2359
  • End time must be after the start time.
  • If the Day-of-Week is today, executing edit INDEX dt/Day-of-Week 0000-2359 will set the date to today only if the start time of the class is later than the current time. Else, the date will be set to the specified Day-of-Week in the following week.
  • Examples: 2022-10-09 1100-1230, MON 1100-1230, Mon 1100-1230
  • Invalid inputs: 2022-10-9 1100-1230, 2022-10-09 1100-1000
❗ **Caution:** If a chosen date is occupied by another student, a class conflict error will arise.
Amount Paid:
  • Amount Paid stands for the amount that has been paid by the Student.
  • Format: paid/ must be followed by an integer.
  • Amount paid can only be an integer.
  • Amount paid must be non-negative.
Amount Owed:
  • Amount Owed stands for the amount that has been owed by the Student.
  • Format: owed/ must be followed by an integer.
  • Amount owed can only be an integer.
  • Amount owed must be non-negative.
Rates per Class:
  • Rates per Class stands for the amount of charge per Class for the Student.
  • Format: rate/ must be followed by an integer.
  • Rates per Class can only be an integer.
  • Rates per Class must be non-negative.
Additional Notes:
  • Additional notes can be left empty.
  • Additional notes can take in any types of character.
  • Use nt/ to set the additional notes.
  • Use nt-a/ to append the additional notes.
❗ **Caution:** Using both nt/ and nt-a/ in a single command will set the content under Additional Notes to the content passed after the nt/ and nt-a/ prefixes.
❗ **Caution:** At least one of these fields must exist in order to make the edit command valid.

Format: edit INDEX [n/NAME] [p/CONTACT_NUMBER] [np/NEXT_OF_KIN_CONTACT_NUMBER] [e/EMAIL] [dt/CLASS_DATE] [a/ADDRESS] [paid/AMOUNT_PAID] [owed/AMOUNT_OWED] [rate/RATES_PER_CLASS] [nt/ADDITIONAL_NOTES] [nt-a/ADDITIONAL_NOTES_APPEND] [t/TAG]…

Examples:

UiEdit UiEdit

  • Type edit 7 dt/2022-11-07 1200-1300 in the Command Input. The index 1 student of the Student List will have his or her class date updated to 2022-10-30 1100-1200 in this case. Notice that the Schedule List has now been updated.

UiEdit2 UiEdit2

↑ Back to top


Marking a student: mark

The mark command marks an existing student under Schedule List as present for a class and track the money owed. You can do so by indicating INDEX-S, which refers to the index of the student under the Schedule List (the right panel of the screen).

When a student has been marked, a couple of things will happen.

  1. Teacher's Pet will increase the student's owed amount by the rates per class.
  2. A cross will be displayed beside the student's name indicating that the student has attended the class.

Format: mark INDEX-s

  • Marks the student as present based on INDEX-s which is the index on the right panel.
  • The index refers to the index number shown in Schedule List.
  • The index must be a positive integer. e.g., 1, 2, 3, ....

Example:

  • Type mark 1 in the Command Input. The index 1 student of the Schedule List will have his or her attendance marked. Notice that an X is now present between the [ ] and his name is highlighted red since he has yet to pay $40.

UiMark UiMark

↑ Back to top


Receiving money from a student: pay

The pay command indicates that a student has paid a certain amount of money.

Teacher's Pet will reduce the student's owed amount by the amount paid.

Format: pay INDEX-s AMOUNT_PAID

  • Indicates that the student at a specified INDEX-s has paid.
  • The index refers to the index number shown in the Schedule List (bottom right).
  • The index must be a positive integer. e.g., 1, 2, 3, ....
  • The amount paid must be an integer and cannot be negative. e.g., 0, 1, 2, ....

Example:

  • Type pay 1 40 in the Command Input. The index 1 student of the Schedule List now has paid his money and therefore his name is no longer highlighted in red as he no longer owes $40.

UiPay UiPay

ℹ **Note:** The student cannot pay more than what he/she owes. There is also a maximum cap of $2147483647 for every payment.

↑ Back to top


Viewing all students: list

The list command allows you to view your students and their information under Student List which includes the following:

  • Contact Number
  • Next of Kin’s Number
  • Address
  • Email
  • Class Date
  • Amount Paid
  • Amount Owed
  • Rates Per Class
  • Additional Notes
  • Tag

Format: list

UiUList

↑ Back to top


Finding a student: find

The find command allows you to find a student based on certain conditions. The following are fields supported by the find command and their corresponding prefixes (e.g. Name field has n/ prefix):

❗ **Caution:** Only one field can be searched at once.

Find by Name:

Finds all students with names matching the keywords.

Format: find n/KEYWORD [MORE_KEYWORDS]

  • The search is case-insensitive. e.g., alex will match Alex.
  • The order of the keywords does not matter. e.g. Yeoh Alex will match Alex Yeoh.
  • Only full words will be matched e.g., Han will not match Hans.
  • Students matching at least one keyword will be returned. e.g., Hans Bo will return Hans Gruber, Bo Yang.

Example:

find n/alex returns Alex Yeoh.

UiFindName UiFindName

Find by Email:

Finds all students with a particular email.

Format: find e/EMAIL

❗ **Caution:** Do not include more than one email such as find e/[email protected] [email protected] as the .

Example:

find e/[email protected] returns all students with email set as [email protected].

Find by Address:

Finds all students with addresses matching the keywords.

Format: find a/KEYWORD [MORE_KEYWORDS]

  • The search is case-insensitive. e.g., Labrador will match LABRADOR.
  • The order of the keywords does not matter. e.g., Bukit Timah will match Timah Bukit.
  • Students matching at least one keyword will be returned. e.g., Bukit Timah will return Bukit Batok, Timah Hill.
  • Only full words will be matched e.g., Labra will not match Labrador.

Example:

find a/street returns Bukit Timah Street 3 and Labrador Street 27.

Find by Student's Contact Number:

Finds student with the matching contact number.

Format: find p/CONTACT_NUMBER

  • Only full numbers will be matched e.g., 8123 will not match 81234567.

Example:

find p/81234567 returns the student with the contact number set as 81234567.

Find by Next of Kin's Contact Number:

Finds all students with a particular next of kin's contact number.

Format: find np/NEXT_OF_KIN_CONTACT_NUMBER

  • Only one contact number can be searched at each time.
❗ **Caution:** Do not include more than one contact number such as find np/91232323 81231232.

Example:

find np/91232323 returns all students with the next of kin's contact number set as 91232323.

↑ Back to top

Find by Class Date:

Finds all students with classes on a particular date.

Formats: 1. find dt/yyyy-MM-dd 2. find dt/Day-of-Week

  • Only the date is searched.
❗ **Caution:** Do not include class timing.

Examples:

find dt/2022-10-15 returns all students with classes on 15 October 2022. find dt/Mon returns all students with classes on the coming monday.

↑ Back to top

Find by Tag:

Finds all students with a particular tag.

Format: find t/TAG_NAME

  • Only one tag can be searched at each time.
❗ **Caution:** Do not include more than one tag such as find t/python java.

Examples:

find t/python returns all students who have python as a tag, including students who have other tags on top of the python tag. find dt/javascript returns all students with javascript as a tag and other tags besides javascript.

↑ Back to top


Next available class:

While there is no available command at the moment, you can find the next available class through a series of steps.

  1. Use find command, to find a specific day: find dt/2022-11-07 will find the students who have classes on 2022-11-07
  2. Use sort command, to sort by class: sort class asc.
  3. View each class for the student under the Student List until you find the slot you want.

↑ Back to top


Sort the displayed students: sort

The sort command sorts the list of students in the Student List by the specified TYPE and ORDER.

Format: sort TYPE [ORDER]

  • TYPE must be followed by either one of the below options:
    • NAME
    • CLASS
    • OWED
  • ORDER, if present, must be followed by either one of the below options:
    • ASC
    • DESC
    • If it is left as blank, it will follow the default order based on the specified TYPE.
  • The default order for NAME and CLASS is ASC while for OWED, the default order is DESC.
  • The parameters TYPE and ORDER are case-insensitive.
  • When two students are in a tie for the compared TYPE, they will be sorted according to their names in ascending order by default.

↑ Back to top

Sort by Name

Sorts the list of students in the Student List by name and given ORDER.

If ORDER is left blank, it will be asc by default.

Examples:

  • list followed by sort name will list all the students according to their names in ascending order.
  • list followed by sort name asc will list all the students according to their names in ascending order.
  • list followed by sort name desc will list all the students according to their names in descending order.

↑ Back to top

Sort by Class Date

Sorts the list of students in the Student List by CLASS and given ORDER.

If ORDER is left blank, it will be ASC by default.

Examples:

  • list followed by sort class will list all the students according to their upcoming classes in ascending order.
  • list followed by sort class asc will list all the students according to their upcoming classes in ascending order.
  • list followed by sort class desc will list all the students according to their upcoming classes in descending order.

↑ Back to top

Sort by Money Owed

Sorts the list of students in the Student List by OWED(Amount of Money Owed) and given ORDER.

If ORDER is left blank, it will be DESC by default.

Examples:

  • list followed by sort OWED will list all the students according to how much money they owe in descending order.
  • list followed by sort OWED ASC will list all the students according to how much money they owe in ascending order.
  • list followed by sort OWED DESC will list all the students according to how much money they owe in descending order.

↑ Back to top


Deleting student(s): delete

Deletes the specified student(s) from the student list.

⚠️ **Warning:** Proceed with care! The deletion is permanent the moment you exit the application. But you can always undo the deletion with the undo command.

Format: delete INDEX [MORE_INDEXES]

  • Deletes the student(s) at the specified INDEX(ES).
  • The index(es) refers to the index numbers shown in the Student List (bottom left section of the display).
  • The index(es) must be found on the displayed student list. e.g., 1, 2, 3, ....

Examples:

  • list followed by delete 1 2 deletes the 1st and 2nd student in the Student List.
  • find Betsy followed by delete 1 deletes the 1st student in the Student List.
💡 **Tip:** Deleting a student by mistake can be reversed by undo command!

↑ Back to top


Clearing all student: clear

The clear command clears all students and their details from Student List.

Format: clear

💡 **Tip:** Clearing all students by mistake can be reversed by undo command!

↑ Back to top


Undo the last command: undo

The undo command undoes the most recent command executed and restores the Teacher's Pet to the previous state.

💡 **Tip:** You can undo more than once!

Format: undo

↑ Back to top


Exiting the program: exit

The exit command exits the program.

Format: exit

↑ Back to top


Saving the data

Teacher’s Pet data is saved in the hard disk automatically after any command which changes the data is executed. There is no need to save manually.

↑ Back to top


Editing the data file

Students' data is saved as a JSON file [JAR file location]/data/teachersPet.json. Advanced users are welcome to edit the data file.

⚠️ **Warning:** Proceed with care! If your changes to the data file makes its format invalid, Teacher’s Pet will discard all data and start with an empty data file at the next run!

↑ Back to top


FAQ

Q: How do I transfer my data to another Computer?

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 Teacher's Pet home folder.

↑ Back to top


Glossary

Terms Definition
Class Date The 1-1 tutoring time slot of a student
Day-of-Week 3-letter Abbreviation; case-insensitive e.g., Mon, MON
INDEX The index number shown in the Student List
INDEX-s The index number shown in the Schedule List
Prefix e.g., n/, p/, np/
Parameter e.g., NAME, EMAIL, ADDRESS

↑ Back to top

Command Summary

Action Format, Examples
Get help help
Add a student add n/NAME p/CONTACT_NUMBER np/NEXT_OF_KIN_CONTACT_NUMBER a/ADDRESS e/EMAIL [t/TAG]... e.g., add n/John Doe p/98765432 np/90123291 a/Street ABC e/[email protected] t/python t/beginner
Edit a student edit INDEX [n/NAME] [p/CONTACT_NUMBER] [np/NEXT_OF_KIN_CONTACT_NUMBER] [a/ADDRESS] [e/EMAIL] [dt/CLASS_DATE] [paid/AMOUNT_PAID] [owed/AMOUNT_OWED] [rate/RATES_PER_CLASS] [nt/ADDITIONAL_NOTES] [nt-a/ADDITIONAL_NOTES_APPEND] e.g., edit 2 p/98765431
Mark a student mark INDEX-s e.g., mark 2
Receive money from a student pay INDEX-s AMOUNT_PAID e.g., pay 2 300
List all students list
Find a student find n/NAME e.g., find n/John Doe or other supported fields
Find available time slots refer to link under Action
Sort students in particular order sort TYPE [ORDER] e.g., sort NAME ASC
Delete a student delete INDEX e.g., delete 2
Clear all students clear
Undo a command undo
Exit Teacher's Pet exit

↑ Back to top

Prefix Summary

Prefix Meaning Examples
n/ Name of student n/Alice
p/ Phone number of student p/81234567
np/ Next of Kin Phone number np/65432109
e/ Email of student e/[email protected]
dt/ Date and time of student's class dt/2022-10-27 1300-1400
a/ Address of student a/15 Bukit Timah Road, Singapore 155203
paid/ Amount paid by student paid/300
owed/ Amount owed by student owed/200
rate/ Rates per Class rate/100
nt/ Additional notes of student (create new notes) nt/I have created new notes for Alice
nt-a/ Additional notes of student (append existing notes) nt-a/I have added more notes to the existing notes
t/ Tags of student t/python

↑ Back to top

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published