Introduction: TAB Is More Than an App

There used to be a time for private 1-to-1 home tutors when administrative work meant opening up multiple apps and switching between them. It meant losing track of things because of a messy, decentralised workflow. However, this guide to using TAB will show you how to make the most of this all-in-one app, so you can say goodbye to all your other apps.

TAB enables you to keep track of your student and lesson information, schedule, and tuition fees – everything a private 1-to-1 home tutor needs – without needing to lift your hands off the keyboard. TAB is a Command-line Interface (CLI) app, meaning that you tell TAB what to do using commands in the form of lines of text.

If you can type fast, the CLI will enable you to accomplish your tasks much faster. For a new user, the commands will take some getting used to, compared to using forms and drop-down menus, but worry not as TAB has in-app help and suggestions to guide you along. Moreover, this guide will get you started and speeding through your administrative tasks in no time.


How to Read This Guide

This user guide is intended for any user and contains everything you need to know to make the best use out of TAB. If this is your first-time using TAB, we recommend reading this User Guide in order.

If there are any terms used in this user guide which you are unfamiliar with, their definitions may be found in the Glossary.

Navigation

You can click on the Table of Contents to get to the information relevant to you. To help you with this, there is a back to table of contents link at the end of every major section.

There will also be links in relevant places to help you navigate the document.

Conventions Used

As you read this user guide, you may also encounter these syntax and symbols.

Syntax Meaning
text A command to be entered into the command box in TAB.
text A keyboard input or a button to be clicked on.
text Links to other pages or other parts of the document.
text Caption for images.
:information_source:
An informative note that can help you understand how TAB works.
:bulb:
A tip that can help you to interact with TAB more effectively and efficiently.
:exclamation:
A cautionary note of things that you should be careful about.

Getting Started

  1. Ensure you have Java 11 or above installed on your computer. If you need help with installation, you can visit this website for more details.

  2. Download the latest TAB.jar here.

  3. Create a new folder in your computer and move TAB.jar inside. This will be the home folder for the application.

  4. Double-click TAB.jar to start the app. A window similar to the one below should appear in a few seconds. TAB starts up with some sample data to let you explore and see how the app will look like when it’s in use.

    start

    How TAB looks when you start it for the first time.
  5. Simply type a command in the command box and press ENTER to execute it. You can try opening the help window by typing help and pressing ENTER.

    Some other commands you can try:

    • view1 : Views the lessons of the first person in the list.

    • addn/John Doe p/98765432 e/johnd@example.com a/John street, block 123, #01-01 : Adds a student named John Doe to TAB.

    • delete3 : Deletes the 3rd student shown in the current list.

    • ladd7 date/20 Dec 2021 time/1100-1200 subject/History rates/35 : Adds a lesson that starts on 20 Dec 2021 for the 7th student shown in the current list.

  6. If you wish to clear the sample data and start using the app, simply type clear and press ENTER. However, if you’re a new user, we recommend that you read on and try out our features with the sample data to get yourself familiarised.


Overview of the Graphical User Interface (GUI)

The more you use TAB, the more useful it becomes. Our clean GUI allows you to see at a glance the information you need and browse through your list of students with ease.

layout

Basic layout of TAB's user interface.
Section Representation
Menu Bar The area where you can click to navigate and view some of TAB’s features (e.g. help, reminder, and calendar). See Menu Bar Shortcuts for more details.
Menu Item A button that you can click to view the stated feature, or to quit TAB (for Exit).
Command Box The text field where you key in commands that are meant to be processed by TAB. TAB will execute the command after you press ENTER.
Result Display The area that shows the result of the execution of commands typed in the Command Box. If the command entered has been executed successfully, it will display the relevant success message. Otherwise, it will show an error message indicating the cause of the error.
Student List The panel that shows the list of students you have in TAB.
Student Card The area that shows the details of a student. See Managing Students for more details.
Lesson List The panel that shows the name of the student you have selected together with a list of lessons that the student has.
Lesson Card The area that shows the details of a lesson. See Managing Lessons for more details.
Center Panel The region that displays the lists of students and lessons, calendar, or the list of tags depending on the command you have entered. See Features for more details.
Footer The area which shows where TAB saves your student details to.
e.g. ./data/addressbook.json means that TAB saves your data to the sub-folder data in the home folder (where TAB is located) with file name addressbook.json as shown in the following screenshot:
fileStorage
:bulb: Tip: The Command Box intelligently recognises when you’re typing a command even if your cursor is somewhere else in the main window. This means that after clicking any button in the main window, you do not have to click in the Command Box again to continue. Just type away!

Features

This section describes the available features in TAB. These features are categorized as follows:


Overview of the Command Format

Commands are text that you can enter into TAB’s command box to tell TAB which operation you would like to perform. Commands in TAB have several components and follow a general format as follows:

COMMAND_WORD PREAMBLE PARAMETER_PREFIX/PARAMETER…​

Component Description
Command word The word that specifies which action you want TAB to execute.
Preamble The text before the first valid parameter prefix in the command. The preamble is where you would specify the student and lesson indices for the commands that require them. The preamble may or may not be empty depending on the command.
Parameter prefix The specific prefix that identifies the start of the parameter. Each parameter has a unique prefix, but all prefixes end with a /.
Parameter An input provided by the user for the execution of the command.

:exclamation: Important

  • Prefixes are case-sensitive
    e.g. n/ is the prefix for student name but N/ is invalid.

  • Command words are case-insensitive
    e.g. LIST is equivalent to list.

An example of a command in TAB: Command format

Command format notation

  • Words in UPPER_CASE are the parameters to be supplied by the user.
    e.g. in add n/NAME, NAME is a parameter that can be substituted with John Doe.

  • Items in square brackets are optional. They can be left out, or left empty (e.g. t/)
    e.g. n/NAME [t/TAG] : n/John Doe t/ is equivalent to n/John Doe.

  • Items in curly brackets separated by the pipe character | indicates that only one parameter should be selected from the list of choices.
    e.g. cond/{all | any | none} is used as cond/all, cond/any, or cond/none.

  • Items with after them can be used any number of times, including zero times.
    e.g. [t/TAG]…​ can be used as   (i.e. 0 times), t/friend, t/friend t/family etc.

Notes about parameters

  • Parameters can be in any order.
    e.g. if the command specifies n/NAME p/PHONE_NUMBER, p/PHONE_NUMBER n/NAME is also acceptable.

  • Each parameter and its prefix are separated from the others with a space.

  • If a parameter is expected only once in the command, but you specified it multiple times, only the last occurrence of the parameter will be taken.
    e.g. if you specify p/12341234 p/56785678, only p/56785678 will be taken.

  • Extraneous parameters for commands that do not take in parameters (such as help, list, calendar, exit, clear, etc.) are not valid.
    e.g. help 123 is not a valid command.

  • Chaining commands is not supported.
    e.g. A chain of commands such as next next back next or list calendar day are not valid commands.

  • There are constraints in place to help TAB understand your inputs for commands and parameters. TAB will help you with these constraints by displaying relevant messages to you if you give an invalid input.


back to table of contents


Getting Help

Help is just a moment away when you use TAB.


Viewing the help window: help

This command pops open a help window that includes a summary of our commands, as well as a link to access the user guide page.

Format: help

  • You can select a cell and copy its value using CTRL + C on Windows or COMMAND + C on Mac.
  • You can click Copy URL button to copy the link to this user guide.
  • You can click the right end of each column header to sort rows alphabetically.
Help window interface.

back to table of contents


Managing Students

This section guides you on how to use the commands for managing students in TAB. Easily manage your student information with these commands and say goodbye to messy Excel sheets.


studentCard

Layout of a student card.

:information_source: Note:

  • A student can be identified by the student index number shown in the displayed list of students.
  • At least one of the contact fields must be present.
  • Fields that are empty will not be displayed.

Student parameters

Category Field Prefix Constraints Examples
Essential Name n/
  • Case-sensitive.
  • TAB does not allow adding students with the same case-sensitive name.
n/Jane Tan
Address a/ Not Applicable a/Blk 123A, Serangoon Ave 3, #04-56
Contact Phone p/ Minimum 3 numeric characters.
  • p/91234567
  • p/ sets the phone field to empty.
Email e/ Refer to Email Format for more details.
  • e/jane@gmail.com
  • e/ set the email field to empty.
Parent Phone pp/ Minimum 3 numeric characters.
  • pp/81234567
  • pp/ sets the parent phone field to empty.
Parent Email pe/ Refer to Email Format for more details.
  • pe/john@gmail.com
  • pe/ sets the parent email field to empty.
Optional School sch/ Not Applicable
  • sch/Serangoon JC
  • sch/ sets the school field to empty.
Academic Stream stream/ Not Applicable
  • stream/A-Level
  • stream/ sets the academic stream field to empty.
Academic Level lvl/ Maximum 15 characters, including space(s).
  • lvl/J1
  • lvl/ sets the academic level field to empty.
Remark r/ Not Applicable
  • r/She is weak at maclaurin series.
  • r/ sets the remark field to empty.
Tags t/
  • Must be alphanumeric characters.
  • Case-insensitive
  • To add multiple tags to a student, you need to add t/ before every tag name.
  • Duplicate tags for the same student will be considered as one tag.
  • t/unpaid is valid.
  • t/unpaid retained is invalid.
  • t/unpaid t/ replaces existing tags with the unpaid tag.
  • t/new t/new is equivalent to t/new.
  • t/ clears all tags.
View Only Student Index Not Applicable Changes according to the position of the student in the displayed list. Not Applicable
Outstanding Fees Not Applicable Can only be changed with valid executions of ladd, ledit, ldelete commands. See Managing Fees for more details. Not Applicable

:information_source: Email Format:

Emails should be of the format local-part@domain and adhere to the following constraints:

  1. The local-part should only contain alphanumeric characters and these special characters, +_.-. The local-part may not start or end with any special characters.
  2. This is followed by a @ and then a domain name.
  3. The domain name is made up of domain labels separated by periods.
  4. The domain name must:
    • end with a domain label at least 2 characters long
    • have each domain label start and end with alphanumeric characters
    • have each domain label consist of alphanumeric characters, separated only by hyphens, if any.

Adding a student: add

Adds a student to TAB.

Format: add n/NAME a/ADDRESS [p/PHONE_NUMBER] [e/EMAIL] [pp/PARENT_PHONE_NUMBER] [pe/PARENT_EMAIL] [sch/SCHOOL] [stream/ACAD_STREAM] [lvl/ACAD_LEVEL] [r/REMARK] [t/TAG]…​

Available fields are as described in Student parameters.

:bulb: Tip: A student can have any number of tags (including 0).
  • At least one contact field is required.
  • lvl/ACADEMIC_LEVEL field allows only a maximum of 15 characters (including spaces).

Example:

Suppose you have got a new student, Betsy Crowe, whose phone number is 91234567 and lives at Newgate. However, you forgot to ask for her school and academic level, so you decided to add a remark and label her with tags missinginfo and new.

Let’s see how you can record Betsy Crowe’s details into TAB!

  1. Type add n/Betsy Crowe p/91234567 a/Newgate r/Remember to get school and academic level! t/missinginfo t/new into the command box as shown.

    add1

    Command box with the add command.
  2. Press ENTER and you will see Betsy Crowe’s details in the student list in just an instant!

    add2

    TAB with the new student added.

Other example:

  • add n/John Doe p/98765432 a/Sengkang Ave 2, Blk 123, #02-01 pe/jackdoe@gmail.com sch/Sengkang Secondary lvl/S1 Adds a student named John Doe who lives at Sengkang Ave 2, Blk 123, #02-01 with phone 98765432, parent email jackdoe@gmail.com, currently studying S1 at Sengkang Secondary.

Editing a student: edit

Edits an existing student in TAB.

Format: edit INDEX [n/NAME] [a/ADDRESS] [p/PHONE] [e/EMAIL] [pp/PARENT_PHONE_NUMBER] [pe/PARENT_EMAIL] [sch/SCHOOL] [stream/ACAD_STREAM] [lvl/ACAD_LEVEL] [r/REMARK] [t/TAG]…​

Available fields are as described in Student parameters.

  • Edits the student at the specified INDEX.
    e.g. edit 2 means that you wish to edit the 2nd student in the displayed list.

  • You must provide at least one field.
    e.g. entering just edit 2 alone is not a valid command. You need to include the field you wish to edit.

  • Existing values will be updated to the entered values.
    e.g. edit 2 pp/81234567 will override the parent phone of the 2nd student in the displayed list to 81234567.

  • You can delete the data in optional fields by supplying a parameter with no arguments.
    e.g. edit 2 r/ will remove the remarks for the 2nd student in the displayed list.

  • You cannot remove all contact fields of a student.
    e.g. edit 2 pp/ will not work if the student does not have any PHONE_NUMBER, EMAIL, or PARENT_EMAIL.

  • When editing tags, all existing tags of the student will be removed and replaced with the tags specified.
    e.g. edit 2 t/SEC2 t/IP will erase the student’s original tags and replace it with the new tags SEC2 and IP.

Example:

Suppose that you want to update Betsy Crowe with her school and academic level, and remove her remarks and tags. Here’s how to do it:

  1. Look for Betsy Crowe in the list of students. In this example, she’s the seventh student in the list. Updated Betsy Crowe
    Betsy Crowe is at index 7.
  2. Type edit 7 sch/BC Example School lvl/Secondary 3 r/ t/ to set her school and academic level to BC Example School and Secondary 3 respectively and remove any remarks and tags. Now, Betsy Crowe’s data in TAB should look like this:

Updated Betsy Crowe

Editing Betsy Crowe.

Deleting a student: delete

Deletes the specified student from TAB.

Format: delete INDEX

  • Deletes the student at the specified INDEX.

Examples:

  • list followed by delete 2 deletes the 2nd student in TAB.
  • find n/Betsy followed by delete 1 deletes the 1st student in the results of the find command.

Listing all students: list

Shows a list of all students in TAB.

Format: list


back to table of contents


Managing Lessons

This section guides you on how to use the commands for managing the lessons of your students in TAB. Never lose track of your lessons ever again.


A lesson can be categorised into 2 types:

  1. A weekly recurring lesson
  2. A one-off makeup lesson.


lessonCard

Layout of a recurring lesson card.

lessonCard

Layout of a cancelled makeup lesson card.

:information_source: Note:

A lesson can be identified by the index number shown in the lesson list of the student. The lesson index specified for commands must be a valid index number shown in the lesson list of the student.

Lesson parameters

Category Field Prefix Constraints Examples
Essential Start Date date/
  • Case-insensitive
  • Formatted as dd MMM yyyy
date/12 jul 2020
Subject subject/ Should only contain alphanumeric characters and spaces subject/Social studies
Time Range time/
  • Formatted as HHmm-HHmm
  • Must be between 8am and 10pm, inclusive
time/1730-1830
Lesson Rates rates/
  • Fee of the lesson per hour
  • Used in the calculation of fees due after each lesson
  • Refer to Monetary fields for more details
rates/50
Optional Recurrence Flag recurring/
  • Indicates whether the lesson is recurring
  • Optional parameter: end date of the recurrence
  • recurring/
  • recurring/30 Nov 2100
Outstanding Fees f/ Refer to Monetary fields for more details. lvl/J1
Homework hw/
  • Case-sensitive
  • Add multiple pieces of homework with hw/ before each piece
  • Identical homework for the same lesson will be considered as one homework
  • Maximum of 50 characters
  • hw/Test 2 is valid
  • hw/ clears all existing pieces of homework.
  • hw/ hw/Worksheet 1 removes the existing pieces of homework and adds Worksheet 1 to the homework set.
  • Additional fields of a lesson aside from those stated in the table are used for recording cancelled dates of a lesson. More details can be found in Editing a lesson.

:information_source: Monetary Fields:

For all monetary fields (lesson rates and outstanding fees), we follow the Singapore convention of using a decimal point ‘.’ to separate dollars and cents, The values of these fields should only contain numbers, with at most one decimal point, and two decimal places and should not start or end with a decimal point.

TAB has features to help to prevent scheduling mistakes. For example, we help you avoid mistakes such as scheduling two lessons at the same slots by ensuring that lessons never overlap. Additionally, we help to avoid accidentally scheduling lessons outside working hours (before 0800 and after 2200 hours).

In the future, we intend to add some nice-to-have features that will allow you to customise your working hours, as well as specify minimum/maximum lesson durations so that accidents like mistyping a 10-minute lesson won’t happen. Additionally, we will allow you to toggle these checks on and off, just in case you don’t want them. You would also be able to customise your own recurrence rule for your recurring lessons. Do look forward to these features!


Adding a lesson: ladd

Adds a lesson to the specified student in TAB, provided you do not have any other lessons scheduled at that time.

Format: ladd INDEX [recurring/END_DATE] date/START_DATE time/TIME_RANGE subject/SUBJECT rates/LESSON_RATES [f/OUTSTANDING_FEES] [hw/HOMEWORK]…​

Available fields are as described in Lesson parameters.

:bulb: Tip: You can add multiple pieces of homework to a lesson in TAB.

Example:

Suppose you have a student named Betsy Crowe with index number 7. You have a history lesson with her every Sunday from 11am to 12pm, starting from 20 December 2021, and you want to add it in TAB. The end date is not known, and you are getting paid $35 per hour. For the first lesson, you want to assign assignment 1 as homework.

  1. Type the command ladd 7 recurring/ date/20 Dec 2021 time/1100-1200 subject/History rates/35 hw/Assignment 1 into the command box.
  2. Press ENTER and you should see that a lesson has been added to Betsy!

    ladd Example

    Adding a lesson to Betsy Crowe.

Other examples:

  • ladd 1 recurring/23 Nov 2022 date/30 jan 2022 time/0900-1100 subject/Math rates/37.50 adds a recurring lesson that starts on 30 Jan 2022 and ends on 23 Nov 2022 to the 1st student in the displayed student list.

  • list followed by ladd 4 date/16 Sep 2021 time/1530-1730 subject/Science hw/TYS p2 Q2 hw/Exercise 3 hw/Lab report rates/40 adds the makeup lesson to the 4th student in the displayed student list.

  • find n/john followed by ladd 1 date/30 MAR 2021 time/1630-1745 subject/Physics hw/Worksheet 1 rates/25.00 adds the makeup lesson to the 1st student in the results of the find command.

Editing a lesson: ledit

Edits the specified lesson of the specified student in TAB with the indicated changes for specified fields.

Format: ledit INDEX LESSON_INDEX [recurring/END_DATE] [date/START_DATE] [time/TIME_RANGE] [subject/SUBJECT] [rates/LESSON_RATES] [f/OUTSTANDING_FEES] [hw/HOMEWORK]… [cancel/CANCEL_DATE]… [uncancel/UNCANCEL_DATE]…​

Additional fields to the ones in Lesson parameters are listed below.

Field Prefix Constraints Examples
Cancelled Date cancel/ Follows the Date format.
The date to be cancelled must be a valid lesson date, that has not already been cancelled, and cannot be left blank.
e.g. If the start date of a recurring lesson is 1 Oct 2021, you can cancel 8 Oct 2021 but not 2 Oct 2021.
cancel/20 jan 2022
Uncancelled Date uncancel/ Follows the Date format.
The date to be uncancelled must be a date that has already been cancelled and cannot be left blank.
uncancel/20 jan 2022
  • Edits the lesson of specified LESSON_INDEX for the student at the specified INDEX.

  • Editing the homework set of a lesson will clear all existing pieces of homework and add the newly specified pieces of homework.
    e.g. ledit 2 1 hw/As2 will erase the lesson’s original pieces of homework and replace it with the new homework As2.

  • You cannot change the lesson’s type (i.e. recurring and makeup).

:exclamation: Caution: If you change the start date of the lesson, the cancelled dates that become invalid will be removed.

Example:

Suppose you have a student named Betsy Crowe with index number 7. You mistakenly added the wrong start and end date for her lesson with index number 1. The lesson should start on 2 December 2021 and end on 30 December 2021. Furthermore, she has a school event on the third lesson (16 Dec 2021) for this recurring lesson which means the third lesson has to be cancelled.

  1. Type the command ledit 7 1 recurring/30 Dec 2021 date/2 Dec 2021 cancel/16 dec 2021 into the command box.
  2. Press ENTER and you should see the first lesson of Betsy being edited to start on 2 Dec 2021 and to end on 30 Dec 2021. The lesson happening on 16 Dec 2021 will also be cancelled! ledit Example
    Editing a lesson of Betsy Crowe.

Other examples:

  • ledit 1 1 time/1100-1200 Edits the time range of the 1st lesson of the 1st student to be 1100-1200.
  • ledit 2 3 rates/35.85 subject/Chinese hw/ Edits the subject of the 3rd lesson of the 2nd student to be Chinese and clears all existing homework.
  • ledit 1 2 date/1 Oct 2021 cancel/15 Oct 2021 cancel/03 Dec 2021. Cancels the specific lessons on 15 Oct 2021 and 03 Dec 2021 for the 2nd lesson (recurring) of the 1st student.

Deleting a lesson: ldelete

Deletes the specified lesson of the specified student in TAB.

Format: ldelete INDEX LESSON_INDEX

  • Deletes the lesson of specified LESSON_INDEX for the student at the specified INDEX.

Examples:

  • list followed by ldelete 2 1 deletes the 1st lesson for the 2nd student in TAB.
  • find n/Betsy followed by ldelete 1 1 deletes the 1st lesson for the 1st student in the results of the find command.

Viewing a student’s lessons: view

Views all the lessons for the specified student in TAB.

Format: view INDEX

  • Views the list of lessons belonging to the student of the specified INDEX.

Examples:

  • view 1 displays the list of lessons for the 1st student in the displayed student list.

viewLessons

A list of lessons for the 1st student is shown on the lesson panel.
  • find n/Betsy followed by view 1 displays the list of lessons for the 1st student in the results of the find command.

Viewing upcoming lessons: remind

Displays a list of upcoming lessons that ends within the next 48 hours.

  • Lesson cards in the reminder list do not display the date range and the cancelled dates, if any.

Format: remind

Reminder window interface.

Example: Suppose the date today is 1 Nov 2021 and current time is 1500h,

  • lessons with the following dates and time are considered upcoming:
    • 1 Nov 2021 with end time at or after 1500h,
    • 2 Nov 2021 with any valid time range,
    • 3 Nov 2021 with start time before or at 1500h.
  • lessons with the following dates and time are not considered upcoming:
    • dates before 1 Nov 2021 (has passed),
    • 1 Nov 2021 with end time before 1500h (has passed),
    • 3 Nov 2021 with start time after 1500h (beyond 48 hours).

:information_source: Note:

  • Reminder does not refresh the list of upcoming lessons automatically.
  • Type remind, click Reminder on the menu bar or press F5 (see Menu Bar Shortcuts for more available shortcuts) to refresh the list of upcoming lessons.
  • Reminder also updates when valid ladd, ledit, ldelete commands are executed.


back to table of contents


Managing Lesson Fees

This section guides you on how to use the commands for managing the lesson fees of your students in TAB and the behaviour of the Fees Calculator feature of TAB. Easily keep track of the students that haven’t paid for their lessons yet.

:information_source: Note:

  • Outstanding fees can only be added and edited using Lesson Commands.
  • Outstanding fee displayed in Student details is the sum of all the student’s lessons’ outstanding fees.

Adding a lesson’s outstanding fees: ladd

Adds outstanding fees to a specific lesson. Uses the Lesson Add command as seen in Adding a lesson.

In the event that you have an existing outstanding fees for the lesson prior to adding the lesson, you can add outstanding fees as a field when adding the lesson. Outstanding fee is an optional field and if not added with lesson, TAB will assume the outstanding fees for the newly added lesson as $0.00.

Format: ladd 1 COMPULSORY_FIELDS f/OUTSTANDING_AMOUNT

Examples:

  • ladd 1 recurring/23 Nov 2022 date/30 jan 2022 time/0900-1100 subject/Math rates/37.50 adds the recurring lesson with the specified details and outstanding fees is assumed to be $0.00.

  • ladd 1 recurring/ date/30 jan 2022 time/0900-1100 subject/Math rates/37.50 f/250 adds the recurring lesson with an outstanding fee of $250.00.

Editing a lesson’s outstanding fees: ledit

Edits the outstanding fees for a specific lesson. Uses the Lesson Edit command as seen in Editing a lesson.

In the event that you disagree with the outcomes of the Fees Calculator, you can edit the outstanding fees using ledit command. Refer to Behaviour of the Fees Calculator for cases the Fees Calculator will not account for.

Format: ledit INDEX LESSON_INDEX OTHER_FIELDS_TO_EDIT f/OUTSTANDING_AMOUNT

Examples:

  • ledit 2 1 f/250 Edits the outstanding fees to $250.00.
  • ledit 1 1 time/1100-1200 f/100 Edits the time range to 1100-1200 and outstanding fees to $100.00.
  • ledit 1 1 rates/50 f/0 Edits the rates to be $50.00 and outstanding fees to be $0.00.

Paying a lesson’s outstanding fees: paid

Pays for a specific lesson.

The amount paid should be greater than 0 and should not be greater than the current outstanding fees. After the paid command is executed, the amount paid would be deducted from the outstanding fees field.

Format: paid INDEX LESSON_INDEX amt/AMOUNT_PAID

Example:

Suppose you have a student named Betsy Crowe with index number 7. For Betsy Crowe, 4 lessons have passed since she last paid her lesson fees, hence the current outstanding fees is $140. You have just received payment recently from Betsy for her lessons, and you want to record the amount paid.

Let’s take a look at how you can record the payment for Betsy Crowe’s lesson in TAB!

  1. Type the command paid 7 1 amt/140 into the command box.
  2. Press ENTER and you should see the outstanding fees of the lesson being deducted by the paid amount accordingly! The updated fee is now $0. paidExample
TAB displays the updated fees after the paid command.

Other Examples:

  • paid 1 1 amt/70 The 1st student has paid $70.00 for his or her 1st lesson.
  • paid 3 2 amt/480.50 The 3rd student has paid $480.50 for his or her 2nd lesson.

Behaviour of the Fees Calculator

TAB will update all your lessons’ outstanding fees accordingly upon launching TAB using the Fees Calculator feature. Fees will not be updated while TAB is open, it will only update fees upon launch. The Fees Calculator will account for cancelled dates in the future and ensure that lesson fees on these dates will not be added.

However, the Fees Calculator will not account for any changes to lessons that have passed.

Note that outstanding fees will not change with the following cases:

  • Changing the lesson’s rates. The change in lesson rates will only take effect from the date and time of change.
  • Cancelling or uncancelling a lesson date that has passed.
  • Changing the start or end date of the lesson.
  • Changing the lesson’s timing.

Upcoming features for Fees Calculator

  1. Flag out overdue lesson fees. In the future, we would like to allow users to specify the number of lessons per payment, and if not specified the default would be 4 lessons per payment. This value would be used to calculate and flag out which lesson’s fees are due by automatically tagging a red DUE tag to that lesson.
  2. Account for cancelled and uncancelled lessons. In the future, we would also like to make the Fees Calculator smarter such that when lessons in the past has been cancelled, fees will be deducted accordingly. Vice versa for uncancelled dates in the past.


back to table of contents


Managing Your Schedule

This section guides you on how to use TAB’s calendar interface. Typing any of the commands in this section will bring you to the calendar interface. Any command from other sections, such as list or tag, will bring you right out. Arrange your schedule and plan ahead with our powerful in-built calendar!


Switching to the calendar interface: calendar

Brings you to TAB’s calendar interface for you to see all your scheduled lessons.

Format: calendar

:bulb: Tip: All the other commands in this Managing Your Schedule section act as a shortcut that opens the calendar as well! For example, the day command below opens the calendar, and goes to the day page. You can skip typing calendar!

Viewing your daily calendar: day

Displays the daily calendar.

Format: day

day

Day view for calendar interface.

Viewing your weekly calendar: week

Shows the weekly calendar.

Format: week

week

Week view for calendar interface.

Viewing your monthly calendar: month

Displays the monthly calendar.

Format: month

month

Month view for calendar interface.

Viewing your yearly calendar: year

Shows the yearly calendar.

Format: year

year

Year view for calendar interface.

Goes to the next day/week/month/year in the calendar interface.

Format: next

Goes to the previous day/week/month/year in the calendar.

Format: back

Jumps to the current day in the calendar.

Format: today


back to table of contents


Miscellaneous Commands

This section describes the other miscellaneous commands available in TAB.


Finding students: find

Finds all students whose fields match the given keyword(s), based on the specified match condition. You can find students by tags, student fields and lesson fields.

Format: find [cond/{all | any | none}] [t/TAG_KEYWORD]…​ [n/NAME_KEYWORDS] [a/ADDRESS_KEYWORDS] [p/PHONE_KEYWORDS] [e/EMAIL_KEYWORDS] [pp/PARENT_PHONE_KEYWORDS] [pe/PARENT_EMAIL_KEYWORDS] [sch/SCHOOL_KEYWORDS] [stream/ACAD_STREAM_KEYWORDS] [lvl/ACAD_LEVEL_KEYWORDS] [r/REMARK_KEYWORDS] [subject/SUBJECT_KEYWORDS] [date/START_DATE] [time/TIME_RANGE] [cancel/CANCELLED_DATE] [rates/LESSON_RATES_KEYWORDS] [hw/HOMEWORK_KEYWORDS]

Available fields are as described in Student parameters and Lesson parameters.

  • You must specify at least one field to search for, and provide at least one keyword.
    e.g. find cond/any or find n/ are invalid commands.
Search by tags
  • You can search by multiple tags. e.g. t/paid t/new.
  • One tag parameter can only have one keyword. e.g. t/paid new is invalid.
  • Only whole words will be matched. e.g. keyword paid will not match unpaid.
  • The search is case-insensitive. e.g. keyword new will match NEW.

Example:

  • find t/unpaid t/New will return all students with both of the tags UNPAID and NEW.
Search by other student fields
  • You can specify one or more keywords for each parameter. e.g. find n/Amad Ali.
  • A field needs to contain all specified keywords to be matched.
    e.g. keywords Amad Ali will not match Amad, but it will match Amad bin Ali.
  • If you specify multiple keywords with the same prefix, only the last prefix will be used to search that field.
  • A keyword can match a word partially. e.g. keyword uni will match university.
  • The search is case-insensitive.

Example:

  • find n/John a/west coast will return students with name that contains John, and address that contains west and coast.
Search by lesson fields
  • Finds all students with at least one lesson that matches the lesson parameters.
  • The find behaviour of lesson fields are specified in the table below.
Fields Find behaviour
Subject,
Lesson Rates
  • The same constraints for student fields apply.
Homework
  • Finds students with lessons that have at least one piece of homework matching all the keywords.
  • The same constraints for student fields apply.
Start Date
  • Accepts one keyword that must follow the Date format
  • Finds students with lessons that fall on the specified date.
Cancelled Date
  • Accepts one keyword that must follow the Date format
  • Finds students with lessons that are cancelled on the specified date.
Time Range
  • Accepts one keyword that must follow the Time Range format
  • Finds students with lessons that overlaps with the time range, excluding the start and end time. e.g. time/1200-1400 matches a lesson with time 1300-1500, but not 1400-1500

Example:

  • find date/12 Oct 2021 time/1200-1400 subject/Math will match a student with lesson on 12 OCT 2021, at 1130-1230, with the subject Mathematics.
Search with match condition
  • You can specify an optional match condition which indicates the type of matching to be applied. A student is considered a match only when all, any or none of the fields which you are searching for match the student.
  • The match condition is optional and defaults to all if not specified.

Example:

Suppose you want to find students with the tag new or with lessons between 1100-1300.

  1. Type the command find cond/any t/new time/1100-1300 into the command box.
  2. Press ENTER and you should see that the list now displays only students matching the given keywords.

find

TAB displays two students after the find command.

Other examples:

  • find n/John t/zoom cond/all returns students with both the name John and the tag zoom.
  • find n/John t/zoom cond/none returns students without the name John and the tag zoom.

Viewing all tags: tag

Shows all the tags that you have created together with the number of students labelled with each tag.

Format: tag

tag

The text on the left shows the tag names created and the number on the right indicates the number of students labelled with each tag.

Clearing all entries: clear

Clears all entries from TAB.

Format: clear

Undoing previous commands: undo

Undo the previous command that modified the data.

Format: undo

Redoing undone commands: redo

Redo the previous command that has been undone. The undone command can only be redone if

  1. redo is executed immediately after undo
  2. Between the execution of undo and redo, only commands that do not modify any data were executed.
    e.g. view, day, calendar, tags etc.

Format: redo

Example:

  1. Valid Redo command
    1. edit 1 n/Joe Doe modifies name of the first student.
    2. undo undoes the modification. The name of the first student returns to the original name before edit command.
    3. day displays the calendar for today. This command does not modify any data.
    4. redo redoes the edit command. The name of the first student will be Joe Doe now.
  2. Invalid Redo command
    1. edit 1 n/Joe Doe modifies name of the first student.
    2. undo undoes the modification. The name of the first student returns to the original name before edit command.
    3. ledit 2 1 date/3 Nov 2021 modifies the start date of the first lesson of the second student. This command modifies data.
    4. redo is invalid. TAB shows that there are no commands to be redone.

Exiting the program: exit

Exits the program.

Format: exit


back to table of contents


Managing Data

This section informs you on how data is handled in TAB.


Saving the data

TAB data are saved in the hard disk automatically after any command that changes the data. There is no need to save manually.

Editing the data file

TAB data are saved as a JSON file [JAR file location]/data/addressbook.json. Advanced users are welcome to update data directly by editing that data file.

:exclamation: Caution: If your changes to the data file makes its format invalid, TAB will discard all data and start with an empty data file at the next run.


back to table of contents


TAB has a menu bar which you can click to easily navigate between its various views. Additionally, TAB provides keyboard shortcuts for these menu items to help you stay more productive by keeping your hands on the keyboard.

Menu Item Shortcut Action Description
Help F1 View Help Opens the help window.
ViewStudents F2 View Students Brings you to the last displayed list of students.
e.g. if you used find to filter the list of students, and then switched to the calendar view, clicking ViewStudents or pressing F2 brings you back to the filtered list (and refreshes the student lessons).
ViewCalendar F3 View Calendar Brings you to the calendar interface.
ViewTags F4 View Tags Brings you to your list of tags.
Reminder F5 View Reminder Opens or updates the reminder window with the list of upcoming lessons that ends within the next 48 hours.
FileExit N.A. Exit Quits TAB.


back to table of contents


FAQ

This section records frequently asked questions from users of TAB.

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 Tuition Address Book.

Q: I am using a Mac and when I tried to open TAB.jar, Mac shows “TAB.jar cannot be opened because it is from an unidentified developer”. How do I resolve this issue?
A: Go to System PreferencesSecurity & PrivacyGeneral and click Open Anyway at the bottom as shown in the following screenshot.

The arrow indicates where you should click to open the app.


back to table of contents


Glossary

This section shows a list of technical and TAB-related terms used in this user guide with their respective definitions.

Term Meaning
Academic level Mainstream academic years from primary to tertiary education in Singapore (i.e. Primary 1-6, Secondary 1-5, Junior College 1-2 and Year 1-6).
Academic stream Mainstream tracks in Singapore (i.e. Express, NA, NT, IP, IB) as well as other common exam streams (e.g. IELTS, SAT, ACT).
CLI Command Line Interface - a type of user interface through which users interact with the app in the form of text inputs only. New users may find it difficult to use but fast typist may find it faster to use upon familiarization.
GUI Graphical User Interface - a type of user interface through which users interact with the app via visual representations.
JAR Java Archive - a file format used for aggregating multiple Java class files and their associated components (e.g. images) into a single file for distribution.
Lesson rates Amount charged per hour for lessons.
Makeup lesson A lesson that occurs only once, for a student who has missed a previous lesson.
Mainstream OS Windows, Linux, Unix, OS-X.
Parameter User input required to specify the data to be saved into the application.
Recurring lesson A lesson that will occur more than once in patterned intervals.
UI User Interface - the means by which the user and the app interact.
UX User Experience - The experience a user has when using the app.

back to table of contents


Command Summary

This section lists all the available commands in TAB, along with examples on how you can use them. The commands are categorised into 4 different categories:

Students

Action Format & Examples
Add Student add n/NAME a/ADDRESS [p/PHONE_NUMBER] [e/EMAIL] [pp/PARENT_PHONE_NUMBER] [pe/PARENT_EMAIL] [sch/SCHOOL] [stream/ACAD_STREAM] [lvl/ACAD_LEVEL] [r/REMARKS] [t/TAG]…

e.g. add n/James Ho a/123, Clementi Rd, 1234665 p/22224444 e/jamesho@example.com pp/33335555 pe/danielho@example.com sch/DHS lvl/Y1 r/retainee t/cousin
Edit Student edit INDEX [n/NAME] [a/ADDRESS] [p/PHONE] [e/EMAIL] [pp/PARENT_PHONE_NUMBER] [pe/PARENT_EMAIL] [sch/SCHOOL] [stream/ACAD_STREAM] [lvl/ACAD_LEVEL] [r/REMARK] [t/TAG]…

e.g. edit 2 n/James Lee e/jameslee@example.com
Delete Student delete INDEX

e.g. delete 3
Find Students find [cond/{all | any | none}] [t/TAG_KEYWORD]…​ [n/NAME_KEYWORDS] [a/ADDRESS_KEYWORDS] [p/PHONE_KEYWORDS] [e/EMAIL_KEYWORDS] [pp/PARENT_PHONE_KEYWORDS] [pe/PARENT_EMAIL_KEYWORDS] [sch/SCHOOL_KEYWORDS] [stream/ACAD_STREAM_KEYWORDS] [lvl/ACAD_LEVEL_KEYWORDS] [subject/SUBJECT_KEYWORDS] [time/TIME_RANGE] [date/START_DATE] [cancel/CANCELLED_DATE] [rates/LESSON_RATES_KEYWORDS] [hw/HOMEWORK_KEYWORDS]

e.g. find cond/any n/Alex Yeo t/unpaid time/1500-1600

Lessons

Action Format & Examples
Add Lesson ladd INDEX [recurring/[END_DATE]] date/dd MMM yyyy time/HHmm-HHmm subject/SUBJECT rates/LESSON_RATES [f/OUTSTANDING_FEES] [hw/HOMEWORK]…​

e.g. ladd 1 recurring/ date/10 Nov 2021 time/1000-1200 subject/Math rates/50
Edit Lesson ledit INDEX LESSON_INDEX [recurring/[END_DATE]] [date/dd MMM yyyy] [time/HHmm-HHmm] [subject/SUBJECT] [rates/LESSON_RATES] [f/OUTSTANDING_FEES] [hw/HOMEWORK]… [cancel/CANCEL_DATE]… [uncancel/UNCANCEL_DATE]…​

e.g. ledit 2 1 cancel/10 Nov 2021
Delete Lesson ldelete INDEX LESSON_INDEX

e.g.ldelete 2 1
Pay Lesson paid INDEX LESSON_INDEX amt/AMOUNT_PAID

e.g. paid 2 1 amt/10
View Lessons view INDEX

e.g. view 1
Action Format
List Students list
View Tags tag
View Calendar calendar
View Daily Calendar day
View Weekly Calendar week
View Monthly Calendar month
View Yearly Calendar year
Navigate to Today in Calendar today
Navigate Forward in Calendar next
Navigate Backward in Calendar back
View Reminders remind

General

Action Format
Help help
Clear clear
Undo undo
Redo redo
Exit exit


back to table of contents