UGTeach is a desktop app for managing your students' contacts that aims to empower Singapore-based undergraduate private tutors to efficiently manage payments and organize schedules. It streamlines tutoring operations and ensures you stay organized.
Whether you're a Command Line Interface (CLI) pro or new to command lines, we've got you covered. Our app offers both a CLI interface for advanced users and a GUI for those who prefer a more visual experience. If you can type fast, UGTeach can get your contact management tasks done faster than traditional GUI apps.
Ensure you have Java 17
or above installed in your Computer.
To check if you have Java installed, open a command terminal:
cmd
.terminal
.In the terminal, type java -version
.
Look for a line that starts with java version
. You should see a number, like 17.0.2
. Ensure that this version number is 17 or higher.
If Java is not installed or the version is below 17, visit the official Java download page and install the latest version. Choose the appropriate download link for your operating system (Linux, or Windows).
For Mac users, you should install this specific Azul JDK 17
distribution by following this guide.
Download the latest .jar
File:
.jar
file from here.Copy the file to the folder you want to use as the home folder for UGTeach.
Before you run the application for the first time, ensure that your home folder does not contain a config.json
and preferences.json
file. If it does, delete them.
Open a command terminal, cd
into the folder that you put the .jar
file in.
.jar
file is still in the Downloads folder, type cd Downloads
Use the java -jar ugteach.jar
command to run the application.
A GUI similar to the image shown below should appear in a few seconds. Note how the app contains some sample data.
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.
Some example commands you can try:
list
: Lists all contacts.
add n/John Doe p/98765432 e/johnd@example.com a/John street, block 123, #01-01 t/Sunday-1000-1200 s/Geography r/100 paid/100 owed/0
: Adds a contact named John Doe
to the UGTeach data file.
delete 3
: Deletes the 3rd contact shown in the current list.
clear
: Deletes all contacts.
exit
: Exits the app.
Refer to the Features below for details of each command.
Action | Format, Examples |
---|---|
Help : opens up the Help window | help |
List : lists all students in UGTeach | list |
Add : adds a student to UGTeach | add n/NAME p/PHONE_NUMBER e/EMAIL a/ADDRESS t/SCHEDULE s/SUBJECT r/RATE [paid/PAID_AMOUNT] [owed/OWED_AMOUNT] e.g., add n/James Ho p/82224444 e/jamesho@example.com a/123, Clementi Rd, 1234665 t/Monday-0800-1000 s/GP r/300 paid/300 |
Edit : edits a student in UGTeach | edit INDEX [n/NAME] [p/PHONE_NUMBER] [e/EMAIL] [a/ADDRESS] [t/SCHEDULE] [s/SUBJECT] [r/RATE] [paid/PAID_AMOUNT] [owed/OWED_AMOUNT] e.g., edit 2 paid/1200.00 owed/0 |
Delete : deletes a student in UGTeach | delete INDEX e.g., delete 3 |
Find : finds students whose names contain any of the given keywords and their schedules contain any of the given days | find [n/KEYWORD [MORE_KEYWORDS]] [d/DAY [MORE_DAYS]] e.g., find n/Alex John d/Friday |
Pay : updates amount paid by a student | pay INDEX hr/HOURS_PAID e.g., pay 1 hr/2.5 |
Owe : updates amount owed by a student | owe INDEX hr/HOURS_OWED e.g., owe 1 hr/1.5 |
Settle : updates amount paid and owed by student (used when the student repays an amount owed to you) | settle INDEX amount/AMOUNT e.g., settle 1 amount/500.00 |
Income : shows total amount paid and owed by all students in UGTeach | income |
Remind : reminds you of all your lessons scheduled for today | remind |
Clear : clears all students from UGTeach | clear |
Exit : exits from UGTeach | exit |
Words in UPPER_CASE
are the parameters to be supplied by you.
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.
e.g n/NAME [owed/OWED_AMOUNT]
can be used as n/John Doe owed/100.00
or as n/John Doe
.
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.
There should be at least one space between any two parameters, or between the command word and its parameters.
e.g. edit 1 n/Sean
is acceptable, but edit 1n/Sean
or edit1 n/Sean
is not.
No two students can have both same NAME and PHONE_NUMBER, but different students may share a PHONE_NUMBER.
Reason: Siblings can use a parent's phone number as their PHONE_NUMBER.
For commands that do not take in parameters (such as help
, list
, remind
, income
, exit
and clear
), any extra text that comes after the command word will be ignored.
e.g. if the command specifies help 123
, it will be interpreted as help
.
e.g. if the command specifies list help
, it will be interpreted as list
, as the extra text help
is ignored.
If you are using a PDF version of this document, be careful when copying and pasting commands that span multiple lines as space characters surrounding line-breaks may be omitted when copied over to the application.
help
Shows a message explaining how to access the help page.
Format: help
list
Shows a list of all students in UGTeach.
Format: list
add
Adds a student to UGTeach.
Format: add n/NAME p/PHONE_NUMBER e/EMAIL a/ADDRESS t/SCHEDULE s/SUBJECT r/RATE [paid/PAID_AMOUNT] [owed/OWED_AMOUNT]
Example:
add n/John Doe p/98765432 e/johnd@example.com a/John street, block 123, #01-01 t/Sunday-1000-1200 s/Geography r/100 paid/100 owed/0
Before (using an empty UGTeach):
DAY_OF_THE_WEEK
-START_TIME
-END_TIME
(strictly no space in between).
Monday
Tuesday
Wednesday
Thursday
Friday
Saturday
Sunday
.HHmm
.Reason: This constraint follows the convention set by Singapore's National Numbering Plan.
Reason for the maximum value: It is unlikely for an undergraduate tutor to have an hourly rate higher than $1000.00.
12.00
, 0.0
or 7
.
-0
, -0.0
, -0.00
are not allowed! UGTeach will behave weirdly if you enter these values.Economics
Literature
Music
Biology
Chemistry
Science
English
Chinese
Malay
Tamil
Mathematics
History
Geography
Physics
or GP
.
S/O John
, you may work around it by replacing it with S O John
or Son Of John
, or any alternatives if you deem suitable.edit
command.
edit
Edits an existing student in UGTeach.
Format: edit INDEX [n/NAME] [p/PHONE_NUMBER] [e/EMAIL] [a/ADDRESS] [r/RATE] [paid/PAID_AMOUNT] [owed/OWED_AMOUNT]
Examples:
edit 1 p/87438808 e/alexyeoh100@example.com
edits the phone number and email address of the 1st student to be 87438808
and alexyeoh100@examnple.com
respectively.
edit 2 paid/1200.00 owed/0
edits the paid amount of the 2nd student to be $1200.00
and edits the owed amount to be $0.00
.
pay
command,
owe
command and settle
command
for convenient ways to update the paid amount and owed amount.S/O John
, you may work around it by replacing it with S O John
or Son Of John
, or any alternatives if you deem suitable.delete
Deletes the specified student from UGTeach.
Format: delete INDEX
Examples:
list
followed by delete 2
deletes the 2nd student stored in UGTeach.find n/Bernice
followed by delete 1
deletes the 1st student in the results of the find
command.find
Finds students whose names contain any of the given keywords and their schedules contain any of the given days.
Format: find [n/KEYWORD [MORE_KEYWORDS...]] [d/DAY [MORE_DAYS...]]
Examples:
find n/alex
returns Alex Yeoh
and Alex Tan
find n/Alex d/Friday
returns Alex Tan
find n/Alex Bernice d/Wednesday Friday
returns Bernice Yu
andAlex Tan
Output for find n/Alex Bernice d/Wednesday Friday
:
list
).
find
command will not be affected by the previous find
command.alex
will match Alex
alex
will not match Alexander
find d/Friday n/Alex
will return the same result as find n/Alex d/Friday
find n/Alex Bernice d/Wednesday Friday
returns Bernice Yu
andAlex Tan
because:
Alex Yeoh
, Alex Tan
and Bernice Yu
matches one of keywords Alex
or Bernice
,Alex Tan
and Bernice Yu
has a tuition on Wednesady
or Friday
.owe
Records the tuition fee that the student is unable to pay immediately after the lesson.
When he/she pays the outstanding fees at a later time, you should use the settle
command to settle the tuition fee owed by the student.
Format: owe INDEX hr/HOURS_OWED
Example:
owe 1 hr/1.5
updates the tuition fee owed by the 1st student in the list.owe
command, you can use the edit
command to fix the OWE_AMOUNT to your preference.settle
Settles the amount owed by the student and adds it to the paid amount. To record payment which is not related to the owed amount, you may use the pay
command.
Format: settle INDEX amount/AMOUNT
Example:
settle 1 amount/50.00
pay
Updates the amount of tuition fee paid by the specified student after a lesson.
Recording payment using the pay
command does not update the owed amount. You should use the settle
command to settle the tuition fee owed by the student after he/she pays the outstanding fees.
Format: pay INDEX hr/HOURS_PAID
Example:
pay 1 hr/2.5
updates the tuition amount paid by the 1st student in UGTeach.pay
command, you can use the edit
command to fix the PAID_AMOUNT to your preference.income
Shows the total amount of tuition fee that you have been paid, as well as the total amount that is owed.
Format: income
Examples:
income
when all entries are listed gives the total tuition fee paid, as well as the total amount that is owed.find n/Alex
followed by income
shows total tuition fee paid, as well as the total amount that is owed, from
students whose name contains Alex.remind
Reminds you of all your lessons scheduled for today
. UGTeach automatically reminds you when you launch it.
Format: remind
find
command
to find your schedule for a specific day of the week.clear
Clears all data from the data file of UGTeach.
Format: clear
exit
Exits the program.
Format: exit
UGTeach data are saved in the hard disk automatically after any command that changes the data. There is no need to save manually.
UGTeach data are saved automatically as a JSON file [JAR file location]/data/ugteach.json
. Advanced users can update data directly by editing that data file, although not recommended.
If you are not fully comfortable with JSON formatting or unsure about the data constraints specified in this guide, we strongly advise against directly editing the data file.
However, if you choose to proceed, we recommend creating a backup (e.g., by copying the file to another location) to safeguard against potential errors.
Please note:
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 UGTeach home folder.
preferences.json
file created by the application before running the application again.help
command (or use the Help
menu, or the keyboard shortcut F1
) again, the original Help Window will remain minimized, and no new Help Window will appear. The remedy is to manually restore the minimized Help Window.0
values (e.g. -0
, -0.0
, -0.00
). UGTeach behaves weirdly if you enter these values, which is unlikely in daily use case. Be assured that UGTeach will behave normally if you enter 0
, 0.0
or 0.00
.3000000000
, 4000000000
, 1500000000
). UGTeach behaves weirdly if you enter these values, which is unlikely in daily use case. Be assured that UGTeach will behave normally if you enter 1
, 2
, 3
, assuming there are that many students in UGTeach.Ravi S/O Ramasamy, Devi D/O Rajaratnam
. The workaround is to exclude the special characters. E.g. replace the S/O
with s o
or son of
, likewise for D/O
.a/
.edit 1 a/n/Next Door
will edit the first student's address to be n/Next Door
, but edit 1 a/ at n/Next Door
will edit the first student's address to be at
, and edit the student's name to be Next Door
.pay
and owe
commands can result in a minor difference of tuition fee based on the number of hours one session lasts. For example, with the rate of $100.01/hr, pay 1 hr/3
returns a payment $300.03, but typing pay 1 hr/1.5
twice returns $300.04 in total. However, this issue is less likely to impact tutors, as their hourly rates typically do not extend to two decimal places. Therefore, in most cases, the differences would be negligible.