Greetings Teaching Assistants (TAs)!

We are a team of 5 ex-TAs from the National University of Singapore majoring in Computer Science. We have taught classes and managed students and understand that administration can a burden. Perhaps you feel that the current student management systems are

  • Tedious?
  • Non-centralized?
  • Overly complicated?

Well, we had the same thoughts! Which is why we decided to come together to build ClassMonitor for you. We hope that you can try out our desktop application and experience the productivity boost yourself! 😊

About ClassMonitor

ClassMonitor is a Student Management System that empowers TAs and Professors to manage their student particulars and obtain insights about their students’ performance ratings. As a TA, you can easily view and edit your students’ particulars during your daily classes. Utilize ClassMonitor’s flexible tagging system to help you organize your students according to their modules and classes. Finally, streamline your performance grading decisions by deriving insights from your students’ performance indicators across time, through ClassMonitor’s statistics – you can allocate stars to students for good class participation and bolts for absenteeism!

For a more detailed view of ClassMonitor’s features, you can refer to the Features section below! With a focus on efficiency, you can interact with ClassMonitor without ever reaching for your mouse or moving away from your keyboard! With a focus on user-friendliness, ClassMonitor is easy to learn!

This User Guide provides an in-depth documentation, so you can easily use and integrate ClassMonitor into your day-to-day classes as a Professor or TA. It covers how to launch ClassMonitor, core ClassMonitor features and commands, common terms and definitions used in ClassMonitor, and some troubleshooting recommendations. Head over to How to Use The User Guide to get started!


Table of Contents

  1. About ClassMonitor
  2. Table of Contents
  3. Features
    1. Student Management System
    2. Student Analysis Tool
  4. Quick start
  5. How to Use The User Guide
    1. Admonition Boxes
  6. Reference Guide
    1. Key Definitions
      1. Student
      2. Tag
      3. Flags
  7. Commands
    1. Student Commands
      1. add - adds a student to ClassMonitor
      2. list - lists all students
      3. edit - edits a student’s information
      4. star - awards for good participation
      5. bolt - records absenteeism of student
      6. find - finds all students by a specified field
      7. sort - sorts all students by a specified field
      8. delete - deletes a student’s particulars
      9. clear - clears all students’ particulars
    2. General Commands
      1. help - view user guide for help
      2. exit - exits ClassMonitor
  8. Command summary
  9. Additional Information
    1. Saving the data
    2. Editing the data file
    3. Archiving data files [coming in v2.0]
  10. FAQ
  11. Known issues
  12. Acknowledgements
  13. Glossary

Features

ClassMonitor provides two core features:

  • Student Management System
  • Student Analysis Tool

Student Management System

ClassMonitor allows you to manage your classes and keep track of your student details.

  1. Efficiently create, view, edit and delete your students’ details.
  2. Sort your students by their name, phone number, email address, major, number of stars and number of bolts.
  3. Tag students in your current list using an efficient tagging system where you can create and edit existing tags.
  4. Filter your students by their name, major, tags, number of stars and number of bolts.

Student Analysis Tool

ClassMonitor collects and tracks the following data, allowing you to tailor your pedagogy for more effective teaching through statistical analysis:

  1. Track students’ level of participation in class.
  2. Record your students’ attendance.

Quick start

  1. Ensure you have Java 11 or above installed in your Computer. You can download it here.

  2. Please follow these steps to verify the version of Java installed on your system.

  3. Download the latest classmonitor.jar from here.

  4. Copy the file to the folder you want to use as the home folder for your ClassMonitor.

  5. Open a command terminal. You can do this by searching for “Command Prompt” (for Windows) or “Terminal” (for Mac) in your computer’s search bar.

  6. In the command terminal, navigate to the folder where you placed the classmonitor.jar file. You can do this by using the “cd” command followed by the folder path. For example, if your file is in the “Downloads” folder, you would type:
     cd Downloads
    
  7. After navigating to the correct folder, type the following command and press Enter:
    java -jar classmonitor.jar
    

    This command launches ClassMonitor. After a few seconds, a Graphical User Interface (GUI) similar to the one shown below should appear. You’ll see some sample data in the app. Ui

  8. 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/Damith p/98765432 e/damith@uml.com m/Computer Science : Adds a student named Damith to the list.

    • edit 1 n/Damith Dalegend : Edits the name of the first person in the student list to be Damith Dalegend.

    • delete 1 : Deletes the 1st student shown in the current list. Use this only after you have populated your student list.

    • star 1 s/3 : Adds 3 stars to the first student on the list. Use this only after you have populated your student list.

    • bolt 1 b/3 : Adds 3 bolts to the first student on the list. Use this only after you have populated your student list.

    • sort major asc : Sorts the student list based on the major field in ascending order.

    • find name Chitra : Finds all students who have the name Chitra.

    • clear : Deletes all students. Use this responsibly.

    • exit : Exits ClassMonitor.

  9. Refer to the Commands section for details of each command.

How to Use The User Guide

NOTE

We highly recommend that you read through the User Guide in sequential order.

If you have not installed ClassMonitor, head over to the Quick Start section.

If you are an experienced user, you can refer to the Command Summary for a quick overview of all of ClassMonitor’s commands.

If you are stuck, refer to the section on FAQ.

TIP

This User Guide is highly navigable; simply click on any item in the Table of Contents and be directed to it! Clicking on the respective headings will bring you back to the Table of Contents, so it’s easy to jump across sections!

Admonition Boxes

Throughout this guide, you may find coloured boxes containing highlighted pieces of text. These are known as admonition boxes, or simply, admonitions. Please take note of the content within.

Icon Meaning
Note Something you should keep in mind.
Tip Something you might find useful.
Info Something that provides information useful in that context.
Warning Something you should be cautious about.
Danger Something you should pay a lot of attention to.

Reference Guide

This section covers all you should know about ClassMonitor. Of special note is the Key Definitions section, which covers essential knowledge to using ClassMonitor’s features.

Key Definitions

Student

A student in ClassMonitor represents a student in one of your classes.

The following are the fields for each student:

  • Student’s Name
  • Student’s Major
  • Student’s Phone Number
  • Student’s Email
  • Student’s Stars (a measure of their class participation)
  • Student’s Bolts (a measure of the classes the student was absent for)
  • Student’s Tags

Students are unique by name, and this check is case-sensitive. This means that you cannot add two or more students with the same name and same case for this current version.

Tag

A Tag in ClassMonitor serves as a means to categorise students.

Each student can have multiple tags. These Tags are optional.

Feel free to add tags as you see fit to organize your students. Examples of how you may use a tag can include:

  • Labelling the tutorial group of the student, e.g. t18, t09, t6
  • Labelling the course code for the class the student is in, e.g. CS1101S, UTW1101A, HY2220
  • Noting important student particulars, e.g. Dyslexic

The tags assigned to a student can be edited and these changes would be reflected for the student immediately.

Flags

Flags are delimiters that enable ClassMonitor to distinguish different parameters without ambiguity.

Flag Corresponding Field
n/ NAME
p/ PHONE
e/ EMAIL
m/ MAJOR
s/ STAR
b/ BOLT
t/ TAG

Commands

This section guides you through the precise execution of each command.

NOTE

  • Words in UPPER_CASE are the parameters to be supplied by the user.
    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 [t/TAG] can be used as n/John Doe t/friend or as n/John Doe.

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

  • Command outputs with [...] refers to a truncated output for brevity in the User Guide. Within the app, additional details may be displayed.

  • 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.

  • 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 specifies help 123, it will be interpreted as help.

  • 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.

Student Commands

add - adds a student to ClassMonitor

Format: add n/NAME p/PHONE_NUMBER e/EMAIL m/MAJOR [t/TAG]…

INFO

  • Adds a new student to ClassMonitor using the provided details and sets the student’s initial star and bolt values to 0.

NOTE

  • NAME must ONLY contain alphanumeric characters and spaces
  • PHONE_NUMBER must ONLY consist of numbers and be at least 3 digits long
  • EMAIL must ONLY contain alphanumeric characters and follow the format of a valid email address, which is local-part@domain
  • MAJOR must ONLY contain alphabets and spaces
  • A student can have any number of tags (including 0)

WARNING

For the best user experience,

  • PHONE_NUMBER, MAJOR, EMAIL, TAG should be limited to 50 characters or fewer
  • NAME should be limited to 30 characters or fewer

to ensure that all fields are fully visible on the screen without being cut off or truncated.

Please also avoid specifying any additional flags besides the ones specified in the command format.

Example:

Command Input Box:

add n/John Doe p/98765432 e/johnd@u.nus.edu m/Computer Science

Assumption:

  1. A student by the name of John Doe (case-sensitive) does not already exist.

list - lists all students

Format: list

INFO

  • Displays all students, clearing existing filters on the student list.

edit - edits a student’s information

Format: edit INDEX [n/NAME] [p/PHONE_NUMBER] [e/EMAIL] [m/MAJOR] [s/STAR] [b/BOLT] [t/TAG]…​

INFO

  • Edits the student at the specified INDEX. The index refers to the index number shown in the displayed student list. ​
  • At least one of the optional fields must be provided.
  • Existing values will be updated to the input values.

NOTE

  • INDEX must be a positive integer (e.g. 1, 2, 3, …) ​
  • NAME must ONLY contain alphanumeric characters and spaces
  • PHONE_NUMBER must ONLY consist of numbers and be at least 3 digits long
  • EMAIL must ONLY contain alphanumeric characters and follow the format of a valid email address, which is local-part@domain
  • MAJOR must ONLY contain alphabets and spaces
  • STAR/BOLT must be an integer between 0 and 50,000 (e.g. 0, 1, 2, …, 50,000) ​

TIP

  • When editing tags, the existing tags of the student will be removed i.e adding of tags is not cumulative.
  • You can remove all the student’s tags by typing t/ without specifying any tags after it.
  • Editing the number of stars/bolts of a student replaces the existing value.

Examples:

  • edit 1 p/98765432 e/johndoe@u.nus.edu Edits the phone number and email address of the 1st student to be 98765432 and johndoe@u.nus.edu respectively.
  • edit 2 n/Betsy Crower t/ Edits the name of the 2nd student to be Betsy Crower and clears all existing tags.
  • edit 3 s/0 b/0 Edits both the total number of stars and the total number of bolts received by the 3rd student to be 0.

star - awards for good participation

Format: star INDEX s/STAR

INFO

  • Edits the student at the specified INDEX. The index refers to the index number shown in the displayed student list. ​
  • STAR refers to the number of stars to be awarded to the student. ​

NOTE

  • INDEX must be a positive integer (e.g. 1, 2, 3, …)
  • STAR must be a positive integer between 1 and 10 (e.g. 1, 2, …, 10)
  • The specified number of stars will be added to the student’s current star count.
  • A student can only accumulate a maximum of 50,000 stars and a minimum of 0 stars.

Example:

Command Input Box:

star 1 s/5

Assumption:

  1. Alex Yeoh is the student at index 1
  2. He currently has 0 stars

bolt - records absenteeism of student

Format: bolt INDEX b/BOLT

INFO

  • The number of bolts corresponds to the number of times the student is absent. ​
  • Edits the student at the specified INDEX. The index refers to the index number shown in the displayed student list. ​
  • BOLT refers to the number of bolts to be awarded to the student. ​

NOTE

  • INDEX must be a positive integer (e.g. 1, 2, 3, …) ​
  • BOLT must be a positive integer between 1 and 10 (e.g. 1, 2, …, 10) ​
  • The specified number of bolts will be added to the student’s current bolt count.
  • A student can only accumulate a maximum of 50,000 bolts and a minimum of 0 bolts.

Example:

Command Input Box:

bolt 1 b/5

Assumption:

  1. Alex Yeoh is the student at index 1
  2. He currently has 0 bolts

find - finds all students by a specified field

Format: find FIELD CRITERIA

NOTE

Accepted fields are name, major, star, bolt, and tag.

The parameters for CRITERIA depend on the FIELD specified.

Field Criteria Format, Examples
name KEYWORD [MORE_KEYWORDS]…​ find name KEYWORD [MORE_KEYWORDS]…​
e.g. find name Alex David
major SUBSTRING find major SUBSTRING
e.g. find major Science
star OPERATOR NUMBER find star OPERATOR NUMBER
e.g. find star = 0
bolt OPERATOR NUMBER find bolt OPERATOR NUMBER
e.g. find bolt > 5
tag SUBSTRING find tag SUBSTRING
e.g. find tag CS2103T

INFO

  • find name: Finds students with names that match any of the given keywords.
    • The order of the keywords does not matter. E.g. Hans Bo will match Bo Hans.
    • Only full words will be matched. E.g. Han will not match Hans.
    • Students matching at least one keyword will be returned (i.e. OR search).
  • find major/find tag: Finds students with majors/tags that contain the given keyword.
    • find major Science will return students with Computer Science majors and Science majors.
    • find tag CS will return students with CS2103T tags and CS2100 tags.
  • find star/find bolt: Finds students with stars/bolts within the bounds as specified by the given operator and number.
    • Accepted operators are:
      • < (strictly less than)
      • <= (less than or equal to)
      • > (strictly more than)
      • >= (more than or equal to)
      • = (equal to)
    • Accepted numbers are integers in range [0, 2147483647].

Example:

Command Input Box:

find name alex david

Assumption:

  1. Alex Yeoh is the only student whose name includes a word that matches alex.
  2. David Li is the only student whose name includes a word that matches david.

TIP

Use the list command to view all students again.

sort - sorts all students by a specified field

Format: sort FIELD ORDER

INFO

  • Accepted fields are name, phone, email, major, star, bolt.
  • Accepted orders are
    • asc for ascending order of the specific field
    • desc for descending order of the specific field
  • name and email are sorted in lexicographical order while phone,star, and bolt are sorted in numeric order.
  • The field and order can have combinations of capital and lower case letters.
    E.g. sort star asc, sort name ASc and sort Major desc are valid.
  • For tie breaking between students that have the same value for a given field, name will be used as a tiebreaker.

Example:

Command Input Box:

sort star desc

Assumption:

  1. Your current student lists consists of only 3 students, Alex Yeoh, Bernice Yu, and David Li.
  2. Alex Yeoh has 3 stars
  3. Bernice Yu has 2 stars
  4. David Li has 1 star

delete - deletes a student’s particulars

Format: delete INDEX

  • Deletes the student at the specified INDEX.
  • The index refers to the index number shown in the displayed students list.
  • The index must be a positive integer 1, 2, 3, …​

Examples:

  • delete 2 deletes the 2nd student in the displayed list.
  • find name Alex followed by delete 1 deletes the 1st student in the results of the find command.

clear - clears all students’ particulars

Format: clear

WARNING

This is NOT an undo-able process. Once you clear ClassMonitor, your data will be lost. So be careful and only use this once the semester is over and the previous semester’s student data is no longer needed.

General Commands

help - view user guide for help

Format: help

INFO

Shows a pop-up message like below explaining how to access the help page.

help message

exit - exits ClassMonitor

Format: exit

TIP

You can also close the program by using the x circle at the top left of the application’s GUI.

Command summary

Action Format, Examples
Add add n/NAME p/PHONE_NUMBER e/EMAIL m/MAJOR [t/TAG]…​
E.g., add n/James Ho p/83482048 e/jamesho@u.nus.edu m/Computer Science t/CS2103T t/G18
Clear clear
Delete delete INDEX
E.g., delete 3
Edit edit INDEX [n/NAME] [p/PHONE_NUMBER] [e/EMAIL] [m/MAJOR] [s/STAR] [b/BOLT] [t/TAG]…​
E.g.,edit 2 n/James Lee e/jameslee@u.nus.edu m/Psychology
Star star INDEX s/STAR
E.g., star 1 s/5
Bolt bolt INDEX b/BOLT
E.g., bolt 1 b/5
Find find FIELD CRITERIA
E.g., find name alex david
Sort sort FIELD ORDER
E.g., sort star asc
List list
Help help
Exit exit

Additional Information

Saving the data

ClassMonitor 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

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

DANGER

If your changes to the data file makes its format invalid, ClassMonitor will discard all data and start with an empty data file at the next run. Hence, it is recommended to save a backup of the file before editing it.
Furthermore, certain edits can cause the ClassMonitor to behave in unexpected ways (e.g. if a value entered is outside of the acceptable range). Therefore, edit the data file only if you are confident that you can update it correctly.

Archiving data files [coming in v2.0]

Details coming soon …

FAQ

Q: How do I transfer my data to another Computer?
A: First, install the app on the other computer. Then, replace the empty data file it creates with the file containing your data from the previous ClassMonitor home folder.

Q: How do I deduct stars from a student?
A: Currently, direct deduction of stars is not possible. However, you can achieve this by using the edit command temporarily. First, find the index of the student (INDEX). Next, determine the student’s updated star count (STAR). Finally, use the command edit INDEX s/STAR to ‘reduce’ the student’s star count.

Known issues

  1. When using 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 created by the application before running the application again.

Acknowledgements

ClassMonitor is a brownfield software project based off AddressBook Level-3, taken under the CS2103T Software Engineering module held by the School of Computing at the National University of Singapore.

Java dependencies:

Documentation dependencies:

Fonts used in ClassMonitor:

Other acknowledgments:

Glossary

Quick Reference
Admonitions Graphical User Interface Case-Sensitive local-part@domain

A

Admonitions

Colored boxes that feature highlighted text segments.

G

Graphical User Interface

A visual interface that uses pictures, menus, and a mouse (for clicking icons or using menus) to interact with a system.

C

Case-Sensitive

In a case-sensitive system, “A” is considered distinct from “a”, meaning they are treated as separate characters. This contrasts with a case-insensitive system, where uppercase and lowercase letters are treated as the same character.

l

local-part@domain

The local-part@domain format specifies the following constraints for email addresses:

  1. The local-part should only contain alphanumeric characters and these special characters, excluding the parentheses, (+_.-). The local-part may not start or end with any special characters.
  2. This local-part is followed by a ‘@’ and then a domain name. The domain name is made up of domain labels separated by periods. 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.