SchoolStack

For teachers

This page covers everything a teacher can do. Each section ends with the names of the actions for the command-line tool and AI agents (see the reference).

Your class

Create a class and share the code

On Classes, fill in Create a class and choose Create. The class's Stream shows its class code: give it to your students so they can join. (Command: class.create.)

Under the banner there's also the Class invite link (also in Settings ▸ Class code): copy it and send it by message or email. Students who open it see "Join Science?" and choose Join; without an account they sign in or create one first and come straight back. It's the class code in a link, so Reset code or Turn code off stops it too. (Commands: class.join; class.findByCode shows which class a link opens.)

Example: Ms. Sara creates "Science", section "Grade 8 – A". The banner on its Stream shows the class code w4x6ykf; she writes it on the board, and her students join with it. For the students who were absent she copies the Class invite link into the class's WhatsApp group.

Class settings

Open the class's Settings tab.

Example: A parent says a student posted something unkind and then deleted it. Sara ticks Show deleted items, chooses Save, and opens Deleted items at the bottom of the Stream to read what was posted and when.

Example: Sara renames the section to "Grade 8 – A (2026)", picks the Green class colour and chooses "Students can only comment", so the Stream stays tidy. One Save keeps all three.

People

The People tab lists teachers and students. Students see names only; teachers also see email addresses.

Example: Ali's mother asks how she can follow his work. Sara opens People, opens Guardians under Ali's name, types the mother's email and chooses Invite guardian. The mother accepts from the email and picks Weekly; every Sunday morning she gets a list of Ali's missing and upcoming work.

Example: Sara splits Science into three lab teams. On People she chooses Create group, names it "Lab team A" and ticks five students, then does the same for B and C. On Classwork she ticks "Group: Lab team A" under For, so only those five get "Microscope set-up".

Example: Sara is moving to another school in January. She invites her colleague Huda as a teacher in Science, then chooses Make class owner next to Huda's name. Huda chooses Accept on her Classes page; Science is now Huda's class, and Sara can still help until she leaves.

Example: During exam week Omar keeps posting jokes on the Stream. Sara chooses Mute next to his post; his posts stay (she deletes the worst one with Delete post) but he can't add new ones. A week later she opens People and chooses Unmute next to his name.

Example: A student, Ali, is absent on the first day. Sara opens People, types ali@school.org in Invite a student by email and adds him. Ali has no account yet, so Sara copies the Join link shown at the top of People and sends it to Ali's parents on WhatsApp. Later Ali forgets his password: Sara chooses Reset password next to his name and reads him the temporary password.

Archive, restore and delete

Example: At the end of the year Sara archives "Science – Grade 8". Students can still read old work and grades but nothing can change.

Copy a class

To teach the same course again, open the class's Settings and go to Copy class (or choose Copy on the class's card on the Classes page). The name, section, subject and description are filled in from the class: change them if you like, then choose Copy. You get a new class that only you teach, with a new class code. (Command: class.copy.)

Example: In August Sara opens last year's archived "Science – Grade 8", chooses Copy, types the section "Grade 8 – A (2027)" and gets a new class with all her worksheets as drafts. She assigns the first one and gives her new students the new class code.

The Stream

Example: Sara posts "Lab day on Sunday: bring your notebook". With Schedule she can write it on Thursday and have it appear on Saturday at 18:00.

Example: Sara writes "Trip to the science museum" with the permission form as a PDF and chooses Save draft while she waits for the date. On Monday she opens Saved announcements, fixes the date with Edit and chooses Post now; her students open the form from the Stream.

Classwork

The Classwork tab lists everything to do or read, grouped by topic. At the top are the Create cards: Create an assignment, Ask a short-answer question, Ask a multiple-choice question, Ask a checkbox question (choose all that apply), Create a quiz assignment (several questions), Add material and Create a topic.

Each item shows its type, points, due date and, for you, how many students turned it in.

Example: Sara's Classwork has topics "Unit 1: Cells" and "Unit 2: Plants". Each holds its assignments, questions and slides, so students find everything for a unit in one place.

Topics

Create a topic groups classwork under a heading (for example "Unit 1"). Choose a topic when you create or edit work. Under each topic's heading:

(Command: topic.create.)

Each piece of work also has Move under its title: it opens Move up, Move down and Move to top, to change its place within its topic, or within "No topic". New work always starts at the top. Students see the same order. (Command: work.move.)

Example: Sara makes the topic "Unit 1: Cells" and picks it as the Topic when she creates each piece of work for that unit. Later she renames it "Unit 1: Cell biology" and moves "Unit 2: Plants" above it while the class studies plants. Inside "Unit 1" she moves "Cell structure slides" up, so it sits above the worksheet that uses them.

Create an assignment

Fill in Create an assignment:

Then choose Assign to post it now, or Save draft to keep it from students. Open any item to see it, change it (Edit assignment), or delete it. (Commands: work.create, work.update, post.delete.)

A draft has an Assign now button and a Schedule form. (Commands: work.publish, post.schedule.)

Example: Sara creates "Label the parts of a plant cell": instructions "Use the diagram from class", Points 20, Due Thursday 23:59, topic "Unit 1: Cells", then Assign. It appears in every student's To-do.

Example: Sara teaches Science to Grade 8 – A and Grade 8 – B. In 8 – A she creates "Lab safety rules", ticks Grade 8 – B under Also post to and chooses Assign: both classes get it.

Assignments, questions, quizzes and materials can carry files and links.

(Commands: work.attach, work.detach; attachments when creating.)

Example: Sara attaches the worksheet plant-cell.pdf with Make a copy for each student, so every student gets their own copy to fill in, plus a YouTube video link about cells.

Questions

A question is a single question that students answer on its page. Answering turns the work in.

Grade and return questions like assignments. (Commands: question.create, question.reply, question.deleteReply; students use question.answer.)

Example: Sara asks the multiple-choice question "Which part of the cell makes food?" with the options Nucleus, Chloroplast and Cell wall. After answering, students see the class summary of how many chose each option.

Quiz assignments

A quiz assignment holds several questions of different kinds, each with its own points.

  1. Fill in Create a quiz assignment (title, instructions, due date, who it's for, settings) and choose Create quiz. It is saved as a draft. (Command: quiz.create.)

  2. On the quiz's page, Add a question:

    • Type: multiple choice (one answer), checkboxes (choose all that apply), short answer, or paragraph (a longer answer).
    • Question text and Points.
    • Options, one per line, for multiple choice and checkboxes. Put * before each correct option, for example *Paris, so it is marked automatically.
    • Accepted answers, one per line, for short answer (optional). An answer that matches one, ignoring capital letters, gets full marks.
    • Paragraph answers, and questions with no correct options or accepted answers, are marked by you.

    (Command: quiz.addQuestion.)

  3. Use Move up, Move down, Edit question and Delete to arrange the quiz. (Commands: quiz.moveQuestion, quiz.updateQuestion, quiz.removeQuestion.)

  4. Choose Assign now, or schedule it. A quiz needs at least one question first.

The quiz is worth the total of its questions' points. Once a student has started, the questions are locked so that every student answers the same quiz.

Settings (in Edit quiz assignment):

Example: Sara makes "Cells quiz" with three questions: multiple choice "3 × 3?" with *9 marked correct (2 points), checkboxes "Which are organelles?" (2 points) and a paragraph "Explain photosynthesis" (5 points). The quiz is worth 9 points.

Marking a quiz

When a student turns in a quiz, every question that has correct options or accepted answers is marked automatically. A checkbox question gets its points only when exactly the right boxes are ticked. The total becomes the student's draft grade.

Open Answers from (student) under Student work to see each answer, whether it was right, and the automatic mark. Type a Mark to mark a paragraph or to change a mark (leave it empty to keep the automatic one), then choose Save marks for (student). The draft grade follows. Students see marks only after you return the quiz. (Command: quiz.mark.)

The question list also shows, for each question, how many students chose each option and how many got it right.

Example: Ali turns in the quiz: he gets 4 automatic points for the first two questions. Sara reads his paragraph, types a Mark of 4 out of 5 and saves: his draft grade becomes 8. She returns it, and Ali sees 8 / 9.

Materials

Add material posts something to read or watch: a Title, a Description, links and files, a topic and who it's for. Materials have no points, due date or student work, and don't appear in students' To-do lists. (Command: material.create.)

Example: Sara adds the material "Cell structure slides" with the slides file and a link to a microscope simulation. Students can open it, but there is nothing to turn in.

Scheduling

Every Create card has Schedule (optional). Choose a date and time (in your time zone) and the item is posted then, by itself; until then students don't see it, and you see it marked "(scheduled)" (announcements: under Saved announcements on the Stream). On a scheduled item you can:

(Commands: post.schedule, post.publish, work.publish; schedule when creating.)

Example: On Thursday Sara schedules next week's homework for Sunday 07:00. Until then students don't see it; on Sunday morning it appears in their To-do by itself.

Reuse post

Gave this lesson last year, or to another section? On Classwork, open Reuse post, pick an earlier assignment, question, quiz or material from any class you teach (archived classes too), and choose Reuse. (Command: post.reuse.)

Example: Sara teaches two Grade 8 sections. She builds "Label the parts of a plant cell" in Science A, then in Science B chooses Reuse post, picks it, sets Thursday's due date and chooses Assign now: two minutes instead of twenty.

Student work and grading

Open a piece of work to see Student work: one card per student, with each student's status (Assigned, Missing, Turned in, Done late, Returned, Graded), when they turned it in, what they handed in (text, files, links and pictures, or quiz answers) and their grade.

Work turned in after the due date is marked Done late, even if an earlier version was on time.

Example: Ali turned in his diagram. Sara opens the assignment, types 18 in his Draft grade, ticks him and chooses Return to selected students. Only now does Ali see "Grade: 18 out of 20".

Rubrics

A rubric lists what you grade in an assignment (the criteria, such as Thesis or Evidence) and the levels of each (such as Strong, 5 points, or Developing, 3 points). Students see it on the assignment before they turn in. Rubrics are for assignments, not questions, quizzes or materials.

  1. Open the assignment and fill in Create rubric:

    • Use scoring (on by default): each level has Points, levels are sorted by points (Sort the order of points by descending or ascending), and the assignment becomes worth the rubric's total (each criterion's highest level, added up). Turn it off for feedback only: then each level needs a title instead.
    • For each criterion: a Criterion title, an optional Criterion description, and its levels (Points, Level title, Description). You start with one criterion and one level: choose + Add level for another level (they sit side by side on a computer) and + Add criterion for another criterion. Up to 50 criteria with up to 10 levels each. Clear all of a level's fields to remove it, and tick Delete criterion to remove a criterion.

    (Command: rubric.save.)

  2. Reuse rubric copies the rubric of another assignment in any of your classes. The copy is separate: changing it doesn't change the original. (Command: rubric.reuse.)

  3. Delete rubric removes it. (Command: rubric.delete.)

  4. Move up / Move down under a criterion change the order of the criteria (their levels and points stay as they are). (Command: rubric.moveCriterion.)

You can change or delete a rubric until you start grading (give a grade or choose a level); then it is locked, so every student is graded by the same rubric.

Grading with a rubric: under Student work, open Rubric for (student), choose a level for each criterion (or No level) and choose Save rubric for (student). With scoring, the levels' points become the draft grade, which you can still change in the table. Return the work as usual; the student then sees the levels you chose, next to the grade. Like the grade, levels you change later reach the student only when you return the work again (for example after they hand it in again). In an archived class, Rubric for (student) shows the levels you gave, read only. (Command: rubric.grade.)

Example: For "Persuasive essay" Sara makes a rubric with two criteria: "Thesis" (Clear 5, Unclear 2) and "Evidence" (Plenty 5, Little 1). The essay becomes worth 10 points. Grading Mona, she chooses Clear and Little: the draft grade becomes 6.

The Grades page

The Grades tab shows every student against every piece of graded work: returned grades, draft grades (marked "draft") or the status. It shows an Overall column when the class has an overall grade.

On a phone, the Grades page shows one card per student, listing each piece of work with its grade, instead of the wide table.

Example: Before parents' evening, Sara opens Grades to see every student's returned grades and spot missing work at a glance.

Download grades

Download these grades as CSV, under the table on the Grades page, saves every student's grades as a spreadsheet file (CSV) that Excel, Google Sheets, LibreOffice or a school system can open. The same button under a piece of work's Student work list saves just that work's grades, with each student's status. (Command: class.gradesCsv.)

Example: At the end of the term Sara chooses Download these grades as CSV and opens the file in Excel to copy the totals into the school's report system.

Grading settings

In Settings ▸ Grading (Command: class.setGrading):

Example: Sara sets Weighted by category with "Homework" 30% and "Tests" 70%, and turns on Show overall grade to students. A student with 80% on homework and 90% on tests sees an overall grade of 87%.

Grading periods

Split the year into terms, quarters or semesters: in Settings ▸ Grading periods, give each a Name, a Start date and an End date, and choose Save grading periods. Periods can't overlap and need different names. To remove one, clear its name. (Command: class.setGradingPeriods.)

Copy to other classes (under the grading periods, once you have some): tick the classes you teach that should use the same periods and choose Copy grading periods. This replaces the grading periods those classes have now, and work there that you had put in a period by hand goes back to "by due date", so check those classes afterwards. (Command: class.copyGradingPeriods.)

Example: Sara adds "Term 1" (1 September – 31 December) and "Term 2" (1 January – 31 March). At the end of December she chooses Term 1 on Grades, checks every student's Term 1 average, and downloads the CSV for the school's report cards. Then she chooses Copy to other classes, ticks her other two classes, and they get the same two terms.

Calendar

Calendar (top of every page) shows one week of classwork due across the classes you teach (and any you learn in), day by day: each piece of work with its class, due time and "N of M turned in". Drafts and scheduled work you've given a due date show too, marked "draft" or "scheduled" (only you see them). Your classes' live lessons are there too, with Join Zoom meeting (see Class settings ▸ Video meeting). Next / Back move a week, Today comes back to this week, and Class shows one class. Archived classes and work without a due date aren't on it. Students see their own work there with its status. (Command: calendar.week.)

Example: Before setting a test for Thursday, Sara opens Calendar and sees her Science class already has a project due that day, so she moves the test to the following Sunday.

To-do

Students' To-do lists their unfinished work across classes, soonest due first. There is nothing to set up: it fills itself from the work you assign.

Example: When Sara assigns "Label the parts of a plant cell", it shows up at the top of each student's To-do until they turn it in.

To review

Your own To-do shows To review: the work in all the classes you teach that has student work, with how many students turned it in and are waiting for a grade ("3 to grade · 5 assigned · 20 returned"). The work with the most waiting comes first. To see one class, choose it under Class at the top of To-do and choose Show (it narrows your own work too, if you learn in any class). When you've dealt with a piece of work, choose Mark as reviewed: it moves to Reviewed (for you only; your co-teachers keep their own lists). Move back to To review undoes it. (Command: work.markReviewed; review.list lists it.)

Example: On Thursday evening Sara opens To-do: "Lab report — 12 to grade" is at the top. She opens it, grades and returns the work, then chooses Mark as reviewed.