To all CS2103/T Teaching Assistants,
We understand your struggles in managing your students' information. We know it is difficult to keep track of your students' contact information, attendance, class participation, and assignment grades. This is even more challenging when you teach multiple classes while juggling your schoolwork and other commitments.
This is why we are excited to introduce Class Manager 2023, an all-in-one application designed to streamline your class management duties. Class Manager 2023 will help you to save time, streamline your TA duties, and allow you to focus on what matters most - your students.
This user guide is your key to mastering Class Manager 2023, with step-by-step instructions on installing and using our application. It aims to provide a head start to new users, while serving as a point of reference for the advanced users. Class Manager 2023 is designed to be intuitive and easy to use, so you can get started immediately!
Refer to the sidebar if you are on the website.
Class Manager 2023 is an offline desktop application for CS2103/T: Software Engineering Teaching Assistants (TAs) in National University of Singapore (NUS) to manage their students' contacts and Class Information.
Class Manager 2023 allows users to:
Class Manager 2023 is optimized for use via a Command Line Interface (CLI) while still having the benefits of a Graphical User Interface (GUI). Since CS2103/T TAs have an adequate understanding of CLI, Class Manager 2023 will allow class management tasks to be completed faster than traditional GUI apps.
First time using Class Manager 2023? Fear not! This tutorial will guide you on how to maximise Class Manager 2023.
To get started with Class Manager 2023, refer to Quick Start, which will walk you through setting up Class Manager 2023.
Familiarise yourself with our GUI at GUI Overview, where the GUI is explained clearly.
Want to find a specific section of the User Guide? Check out the Table of Contents, where it will lead you to the relevant section.
You can also browse the Command Summary which provides an overview for the command format.
For any terms that you are unsure of, the Glossary might have an explanation for it.
If you have any burning questions, the answers may lie in the FAQ. If not, find us at our website.
Before reading our User Guide, here are some quick tips:
There are 3 different kinds of boxes that provide extra information.
Tip boxes provide helpful advise on how to use a certain feature in Class Manager 2023.
Tip: This is a tip box.
Notice boxes provide important information that you should to pay attention to.
Notice: This is a notice box.
Warning boxes provide warnings about certain erroneous outcomes that might occur.
Warning: This is a warning box.
Words that are in blue are hyperlinks. They will redirect you to a different part of the User Guide or an external link when you click on them. For example, this hyperlink will redirect you to the top of the User Guide.
Tip: Hover over the hyperlink to inspect where the hyperlink redirects you.
Ensure you have Java, version 11
or above, installed on your computer.
Download the latest release of class-manager-2023.jar
from here.
Copy the JAR file to a folder you wish to use as the home folder for Class Manager 2023.
Open the command terminal, cd
into the folder where you put the JAR file in, and enter the java -jar class-manager-2023.jar
command to run the application.
Note 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 students in Class Manager 2023.
add n/John Doe p/98765432 e/johnd@example.com s/A0245234A c/T11
: Adds a student named John Doe
to Class Manager 2023.
delete s/A0245234A
: Deletes the student with Student Number A0245234A from Class Manager 2023, who was added in the previous step.
exit
: Exits Class Manager 2023 by closing the application window.
To begin using Class Manager 2023, you are recommended to configure Class Manager 2023 with your module information using the config
command. For example:
config #t/10 #a/1
configures Class Manager 2023 to have 10 tutorials and 1 assignment.That's it! You can now explore Class Manager 2023! Refer to Commands for details of each command or the Command Summary for an overview of Class Manager's commands.
The blurred image below shows an annotated overview of Class Manager 2023's GUI:
The GUI has 6 notable sections:
Notes about the command format:
Words in UPPER_CASE
are parameters that follow a prefix.
e.g. in add n/NAME
, n/
is the name prefix while NAME
is a parameter. You need to provide the name parameter and the command can become add n/John Doe
.
Items in square brackets are optional.
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 zero or more times.
e.g. [t/TAG]…
can be used as (i.e. 0 times),
t/friend
, t/friend t/family
etc.
Parameters can be written in any order.
e.g. if the command you execute has parameters n/NAME c/CLASS_NUMBER
, c/CLASS_NUMBER n/NAME
is also treated as the same parameters.
Extraneous parameters for commands that do not take in parameters (such as help
, list
, exit
and clear
) will be ignored.
e.g. if the command you execute is help 123
, it will be interpreted as help
.
Extraneous parameters for commands that do take in parameters will invalidate the command.
e.g. if the input command is delete 123 s/A0249112A
or delete s/A0249112A c/T11
, the command will be invalid.
Please refrain from using prefixes as parameters for another prefix.
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.
Class Number refers to the unique alphanumeric string used to identify tutorial sessions in NUS. In Class Manager 2023:
T11
TG11
TG10B
Student Number refers to the unique matriculation number of a NUS student. Class Manager 2023 uniquely identifies each student in most commands using the Student Number. In Class Manager 2023:
A123V
and A123v
refer to the same student.A0123456X
A32g (Stored as A32G)
Names should only contain alphanumeric characters and spaces, and it should not be blank.
Data visualisation of student's Class Information is automatically generated in the Data Visualisation section of the GUI (within the card of a student in the Student List section).
Class Manager 2023 allows you to navigate to previously entered commands using the arrow keys. Navigate to earlier commands using the up arrow key and more recent commands using the down arrow key.
Class Manager 2023 data is automatically saved on your computer after any command modifies the data. There is no need to save manually.
Class Manager 2023's data is saved as a JSON file at [JAR file location]/data/classmanager.json
. Advanced users are welcome to update data directly by editing that data file. You can refer to a valid sample of the JSON file in the image below.
Before loading the edited data file, you can configure Class Manager 2023 using the config
command to ensure your data file matches the configuration of Class Manager 2023. The size of the attendanceTracker
and classParticipationTracker
arrays must match the configured tutorial count. Similarly, the size of the assignmentTracker
array must match the configured assignment count. In the image above, the data file can only be loaded if Class Manager 2023 has been configured to have 4 tutorials and 4 assignments, as deduced from the size of the relevant arrays. Class Manager 2023 is configured to have 13 tutorials and 6 assignments by default.
Warning: If your changes to the data file make its format invalid (missing value pairs or not matching the configured tutorial and assignment count), Class Manager 2023 will discard all data and start with an empty data file at the next run. Hence, creating a backup of the file before editing is recommended.
config
Warning:
Configuring Class Manager 2023 resets all students' Class Information, as well as the past states of Class Manager 2023. This cannot be undone using the undo
command. It is recommended to configure Class Manager 2023 before adding students.
Before you begin using Class Manager 2023, it is recommended that you configure the number of tutorials and assignments that your module has. This can be done using the config
command, which allows Class Manager 2023 to automatically generate the correct number of Class Information fields for each student.
Class Manager 2023 can be configured at any time, but do take note of the warning above regarding loss of student data and past Class Manager 2023 states. If you configure Class Manager 2023 after adding students, each student will have the correct number of tutorials and assignments. However, their Class Information data will be reset, and there will be no previous states of Class Manager 2023 you can return to via the undo
command.
Format: config #t/TUTORIAL_COUNT #a/ASSIGNMENT_COUNT
TUTORIAL_COUNT
and ASSIGNMENT_COUNT
must be a positive integer between 1 and 40 inclusive.TUTORIAL_COUNT
and ASSIGNMENT_COUNT
as the previous configuration will also reset the Class Information of all students.config
resets the state history of Class Manager 2023, preventing you from using the undo
command to reach a state of Class Manager 2023 before executing the config
command.Examples:
config #t/6 #a/5
Before config #t/6 #a/5
is executed:
After config #t/6 #a/5
is executed successfully and view s/A0247243A
is executed to view the first student's Class Information:
The number of tutorials and assignments of all students is updated to 6 and 5 respectively, while their Class Information is reset.
Possible errors and their corresponding error messages:
TUTORIAL_COUNT
or ASSIGNMENT_COUNT
is missing:
Invalid command format! config: Configures Class Manager with the module information. WARNING: Configuring Class Manager resets the grades, attendance and class participation details of all students. This cannot be undone. The default Class Manager is configured with 13 tutorials and 6 assignments. Parameters: #t/TUTORIAL_COUNT #a/ASSIGNMENT_COUNT Example: config #t/10 #a/4
TUTORIAL_COUNT
or ASSIGNMENT_COUNT
is less than 1:
Invalid count values! The count value of tutorials/assignments cannot be less than 1.
TUTORIAL_COUNT
or ASSIGNMENT_COUNT
is more than 40:
Invalid count values! The count value of tutorials/assignments cannot be more than 40.
help
Opens the help window that shows a summary of all commands and their parameters, with a Copy URL
button that provides access to this help page.
Format: help
After help
is executed successfully:
exit
Exits Class Manager 2023 immediately.
Format: exit
history
Shows a list of all previously entered inputs, with the most recent inputs at the top of the list.
Format: history
After history
is executed successfully: Result Display Box shows Entered commands (from most recent to earliest):
and lists all previously entered inputs.
load
Load student information from an existing JSON file.
To load a file, copy the JSON file to be loaded into the /data
folder. Next, the JSON file can be loaded into the app via the load
command. This file also becomes the new default save file. You can refer to this section for more information on the valid format of the data file.
Format: load f/FILE_NAME
/data
folder.config
command, you can reconfigure Class Manager 2023 to match the number of tutorials and assignments in the loaded file.load
resets the state history of Class Manager 2023, preventing you from using the undo
command to reach a state of Class Manager 2023 before executing the load
command.Example:
load f/sample
loads sample.json
file in the /data
folder.Before load f/sample
is executed:
After load f/sample
is executed successfully:
The file path at the bottom left of the application is updated to .\data\sample.json
.
Possible errors and their corresponding error messages:
sample.json
does not exist in the /data
folder.
The file sample.json cannot be found. Please make sure the file is in the /data folder.
The file sample.json cannot be loaded. Please make sure the file is formatted correctly.
random
Randomly select a specific number of students from all students displayed in Class Manager 2023.
Format: random NUMBER_OF_STUDENTS
NUMBER_OF_STUDENTS
must be a valid positive integer, smaller than or equal to the current number of students displayed in Class Manager 2023.Example:
random 1
The following image shows a successful execution of the random 1
command.
undo
Undo the previous command that modified the state of Class Manager 2023. Undo only works with the below commands that modify the state of Class Manager 2023, and does not work with commands such as load
and config
. Class Manager 2023 only stores up to 10 modified states, which resets after a load
or config
command. Undo can be used multiple times to undo multiple commands, or until Class Manager 2023 reaches its last stored state after a maximum of 9 undoes.
Format: undo
Here is the list of commands that can be undone/redone:
add
class-part
clear
comment
delete
edit
grade
present
absent
present-all
absent-all
tag
view
Displayed result if undo is successful: Undo success!
Displayed result if there are no more commands to undo: No more commands to undo!
redo
Redo a previously undone command that modified the state of Class Manager 2023. Redo only works with the below commands that can be undone. Class Manager 2023 only stores up to 10 modified states, which resets after a load
or config
command. Redo can be used multiple times to redo multiple undo commands, or until Class Manager 2023 reaches its most recent state after a maximum of 9 redoes.
Format: redo
Here is the list of commands that can be redone after they are undone (same list as undo):
add
class-part
clear
comment
delete
edit
grade
present
absent
present-all
absent-all
tag
view
Displayed result if redo is successful: Redo success!
Displayed result if there are no more commands to redo: No more commands to redo!
theme
Toggles between light and dark colour themes.
Format: theme
add
Creates and adds a student to Class Manager 2023.
Format: add n/NAME p/PHONE e/EMAIL s/STUDENT_NUMBER c/CLASS_NUMBER [t/TAG]…
NAME
field is case-sensitive.PHONE
must be a positive integer that contains 3 or more digits.STUDENT_NUMBER
needs to be unique, and must not be blank.0
, absent
and false
respectively, for all tutorials.Tip: A student can have zero or more of tags.
Examples:
add n/John Doe p/98765432 e/johnd@example.com s/A0245234A c/T11 t/friends t/owesMoney
add n/John Doe p/98765432 e/johnd@example.com s/A0245234A c/T11
The following image shows a successful execution of the add
command.
comment
Adds or replaces a comment of an existing student in Class Manager 2023. The comment of a student appears at the bottom of their contact information card.
Format: comment s/STUDENT_NUMBER cm/COMMENT
STUDENT_NUMBER
must be valid and exist in Class Manager 2023.COMMENT
must be a valid string.
COMMENT
string must not include any prefix or /
characters (space followed by '/').comment s/A0249112A cm/This student is very hardworking. t/Hardworking
is not allowed.comment
can only be performed after the student is created.COMMENT
.Examples:
comment s/A0249112A cm/This student is very hardworking.
comment s/A0249112A cm/This student is very hardworking and smart.
comment s/A0249112A cm/
(This deletes the comment)Displayed result if comment
is successful: Comment added successfully.
Possible errors and their corresponding error messages:
STUDENT_NUMBER
input is invalid.
Student Number can take any value starting with capital 'A', followed by numbers, and ending with a single alphabet.
STUDENT_NUMBER
does not belong to any student in Class Manager 2023.
There is no student with the given Student Number.
delete
Deletes an existing student in Class Manager 2023 by specifying their Student Number.
Format: delete s/STUDENT_NUMBER
STUDENT_NUMBER
must be valid and exist in Class Manager 2023.Example:
delete s/A0245234A
The following image shows a successful execution of the delete s/A0245234A
command.
clear
Deletes all existing students from Class Manager 2023. This command will not delete the data file. Use the undo
command to undo this change.
Format: clear
Displayed result if clear
is successful: Class Manager has been cleared!
edit
Edits an existing student's details in Class Manager 2023. One or more details can be edited at once.
Format: edit STUDENT_NUMBER [n/NAME] [p/PHONE] [e/EMAIL] [s/NEW_STUDENT_NUMBER] [c/CLASS_NUMBER]
Note:
The Student Number entered without the s/
prefix refers to the existing Student Number of the student to be edited.
STUDENT_NUMBER
must be valid and exist in Class Manager 2023.STUDENT_NUMBER
must be entered before the details to be modified.PHONE
must be a positive integer with 3 or more digits.NEW_STUDENT_NUMBER
must be valid and does not belong to any existing student in Class Manager 2023.Tip: Tags of a student can only be edited using the tag
command.
Examples:
edit A0245234A p/91234567 e/johndoe@example.com
Edits the phone number and email address of the student with STUDENT_NUMBER
A0245234A to be 91234567
and johndoe@example.com
respectively.edit A0223344A n/Betsy Crower
Edits the name of the student with STUDENT_NUMBER
A0223344A to be Betsy Crower
.The following image shows a successful execution of the edit
command.
list
Shows a list of all students in Class Manager 2023.
Format: list
The following image shows a successful execution of the list
command.
lookup
Search and display students satisfying all given fields (Only one keyword needs to match per field).
Format: lookup [c/CLASS_NUMBER] [p/PHONE] [n/NAME] [e/EMAIL] [s/STUDENT_NUMBER] [t/TAG]
Note:
lookup
alone is not allowed. lookup c/class 11
is allowed even though class 11
is not a valid class number.hans
will match Hans
Han
will not match Hans
lookup n/li c/T11
will return the same result as lookup c/T11 n/li
lookup n/ c/T11
will return the same result as lookup c/T11
.lookup c/T11 T12
will return all students in T11
or T12
.lookup n/alex david c/T11 T12
will return all students with the name alex
or david
and is in class T11
or T12
.Examples:
lookup n/alex david
returns Alex Yeoh
, David Li
lookup c/T11
returns all students in class number T11
tag
Tags the existing student in Class Manager 2023.
Format: tag s/STUDENT_NUMBER [/add] [/delete] t/[TAG]…
STUDENT_NUMBER
.Warning: When editing tags without /add
or /delete
, the existing tags of the student will be overwritten.
Tip: You can remove all the student’s tags by typing t/
without specifying any tags after it.
Examples:
tag s/A1234567N t/smart t/shy t/funny
replace all tags of the specified student with smart
, shy
and funny
.tag s/A1234567N /add t/Java
adds the Java
tag to the specified student.tag s/A1234567N /delete t/shy
removes the shy
tag from the specified student.tag s/A1234567N t/
clears all tags from the specified student.The following image shows a successful execution of the tag
command that replaces all the student's tags.
Note: Tags will appear below the names of the student and will be arranged in alphabetical order.
Other success messages of the tag
command:
Added following tags to Student...
Removed following tags from Student...
Removed all tags from Student...
Possible errors and their corresponding error messages:
STUDENT_NUMBER
input is invalid.
Student Number can take any value starting with capital 'A', followed by numbers, and ending with a single alphabet.
Tag
input is invalid.
Tag names should be alphanumeric
STUDENT_NUMBER
does not belong to any student in Class Manager 2023.
There is no student with the given Student Number.
present
Mark the tutorial attendance for an existing student as present in Class Manager 2023.
Format: present s/STUDENT_NUMBER tut/TUTORIAL_INDEX
STUDENT_NUMBER
must be valid and exist in Class Manager 2023.TUTORIAL_INDEX
must be a valid positive integer, within the configured tutorial count given in the config
command.Examples:
present s/A0245234A tut/1
The following image shows a successful execution of the present s/A0245234A tut/1
command.
Note: absent
, present-all
, and absent-all
have similar success messages.
absent
Mark the tutorial attendance for an existing student as absent in Class Manager 2023.
Format: absent s/STUDENT_NUMBER tut/TUTORIAL_INDEX
STUDENT_NUMBER
must be valid and exist in Class Manager 2023.TUTORIAL_INDEX
must be a valid positive integer, within the configured tutorial count given in the config
command.Examples:
absent s/A0245234A tut/1
present-all
Mark the tutorial attendance for all students in the current list displayed as present in Class Manager 2023.
Format: present-all tut/TUTORIAL_INDEX
TUTORIAL_INDEX
must be a valid positive integer, within the configured tutorial count given in the config
command.Examples:
present-all tut/1
absent-all
Mark the tutorial attendance for all students in the current list displayed as absent in Class Manager 2023.
Format: absent-all tut/TUTORIAL_INDEX
TUTORIAL_INDEX
must be a valid positive integer, within the configured tutorial count given in the config
command.Examples:
absent-all tut/1
class-part
Record the class participation for an existing student in Class Manager 2023.
Note: Currently, we allow an absent student to have their class participation recorded as true
. This will be changed in the future.
Format: class-part s/STUDENT_NUMBER tut/TUTORIAL_SESSION part/PARTICIPATION
STUDENT_NUMBER
must be valid and exist in Class Manager 2023.TUTORIAL_SESSION
must be a valid positive integer, within the configured tutorial count given in the config
command.PARTICIPATION
must be either true
or false
.
true
value indicates that the student has participated in the tutorial, while the false
value indicates that the student has not participated in the tutorial.PARTICIPATION
is case-insensitive.PARTICIPATION
will be replaced with various levels of participation.
None
, Minimal
, Sufficient
, Active
and Very Active
.Examples:
class-part s/A0245234A tut/1 part/true
grade
Setting an assignment grade for an existing student in Class Manager 2023.
Format: grade s/STUDENT_NUMBER a/ASSIGNMENT_NUMBER g/GRADE
STUDENT_NUMBER
must be valid and exist in Class Manager 2023.ASSIGNMENT_NUMBER
must be a valid positive integer, within the configured assignment count given in the config
command.GRADE
must be a valid integer between 0 and 100.Examples:
grade s/A0245234A a/1 g/100
view
View the Class Information of a student that will be displayed on the right side of the application.
Format: view s/STUDENT_NUMBER
STUDENT_NUMBER
must be valid and belong to a student in Class Manager 2023.Example:
view s/A0241243A
Possible error and their corresponding message:
STUDENT_NUMBER
does not belong to any student in Class Manager 2023.
Please check that the student exist in Class Manager.
Q: How do I transfer my data to another computer?
A: Install Class Manager 2023 on the other computer and overwrite the empty data file it creates with your saved data file.
Q: How do I save a file with a different name?
A: You can rename the file manually after saving it. Launch Class Manager 2023 and use the load
command to load the renamed file. Note that the renamed file will then become the new default save file.
Q: I am unable to load my save file. What should I do?
A: Ensure that the save file is located in the [JAR file location]/data
folder and that the file name is valid. In addition, make sure that the number of tutorials and assignments in the save file is the same as the current configuration of Class Manager 2023. Using the config
command, you can reconfigure Class Manager 2023 to match the number of tutorials and assignments in the save file.
Q: I am unable to load my save file after trying all the solutions above. What should I do?
A: The save file may be corrupted. You can try manually editing the save file to fix it. You can refer to this section for more information on the valid format of the data file.
Q: How do I change the save file location?
A: The save file is located at [JAR file location]/data
. We currently do not support changing the save file location.
Q: Why does the GUI open off-screen?
A: This is a known issue with JavaFX when you have multiple screens. If you move the application to a secondary screen and later switch to using only the primary screen, the GUI will open off-screen. The remedy is to delete the preferences.json
file before running Class Manager 2023 again.
Q: I have found a bug with Class Manager 2023. How can I report it?
A: Please report the bug by creating a new issue on the Class Manager 2023 issue tracker.
Action | Format, Examples |
---|---|
Configure Class Manager 2023 | config #t/TUTORIAL_COUNT #a/ASSIGNMENT_COUNT e.g. config #t/10 #a/3 |
Open help window | help |
Action | Format, Examples |
---|---|
Exit Class Manager 2023 | exit |
View command history | history |
Load a save file | load f/FILE_NAME e.g. load f/sample |
Randomly select students | random NUMBER_OF_STUDENTS e.g. random 1 |
Redo a command | redo |
Undo a command | undo |
Toggle UI theme | theme |
Action | Format, Examples |
---|---|
Add a student | add n/NAME p/PHONE e/EMAIL s/STUDENT_NUMBER c/CLASS_NUMBER [t/TAG]… e.g add n/James Ho p/22224444 e/jamesho@example.com s/A0245234A c/T11 t/friend |
Comment on a student | comment s/STUDENT_NUMBER cm/COMMENT e.g. comment s/A0249112A cm/This student is very hardworking. |
Delete a student | delete s/STUDENT_NUMBER e.g. delete s/A0245234A |
Delete all students | clear |
Edit a student's details | edit STUDENT_NUMBER [n/NAME] [p/PHONE] [e/EMAIL] [s/NEW_STUDENT_NUMBER] [c/CLASS_NUMBER] e.g. edit A0245234A n/John Doe p/98761234 e/johnd@example.com |
List all students | list |
Lookup students | lookup [c/CLASS_NUMBER] [n/NAME] [p/PHONE] [e/EMAIL] [s/STUDENT_NUMBER] [t/TAG] e.g. lookup c/T11 |
Tag a student | tag s/STUDENT_NUMBER [/add] [/delete] t/[TAG]… e.g. tag s/A0123456N t/smart t/shy |
Action | Format, Examples |
---|---|
Mark a student as present | present s/STUDENT_NUMBER tut/TUTORIAL_INDEX e.g. present s/A0245234A tut/1 |
Mark a student as absent | absent s/STUDENT_NUMBER tut/TUTORIAL_INDEX e.g. absent s/A0245234A tut/1 |
Mark all displayed students as present | present-all tut/TUTORIAL_INDEX e.g. present-all tut/1 |
Mark all displayed students as absent | absent-all tut/TUTORIAL_INDEX e.g. absent-all tut/1 |
Record class participation for a student | class-part s/STUDENT_NUMBER tut/TUTORIAL_SESSION part/PARTICIPATION e.g. class-part s/A0245234A tut/1 part/true |
Set assignment grade for a student | grade s/STUDENT_NUMBER a/ASSIGNMENT_NUMBER g/GRADE e.g. grade s/A0245234A a/1 g/100 |
View a student's Class Information | view s/STUDENT_NUMBER e.g. view s/A0245234A |
cd
takes folder name you want to navigate to as an argument. The full command is cd YOUR_DIRECTORY
.