> ## Documentation Index
> Fetch the complete documentation index at: https://help.zebrania.edu.pl/llms.txt
> Use this file to discover all available pages before exploring further.

# Joining a school and class

> Class codes, QR codes, the join poster, and every refusal you can hit.

There are two ways into Zebrania: an **invitation** issued to your
address (see [Invitations](/en/invitations)), or a **code** the school
shares more widely. This page is about codes.

There are two kinds of code, and they are easy to confuse:

|                    | School join code                       | Class code                         |
| ------------------ | -------------------------------------- | ---------------------------------- |
| **Who it's for**   | Teachers and school staff              | Parents enrolling a child          |
| **Where from**     | A QR poster, usually in the staff room | Your child's homeroom teacher      |
| **What it grants** | Membership of the school               | An enrolment request for one class |
| **Validity**       | **1 hour** from generation             | No expiry                          |

## For parents: enrolling a child with a class code

You get the class code from the homeroom teacher. The app walks you
through three steps: "Enter your child's details in the form below", "Add
the class code your teacher gave you", "The teacher will verify and
approve the enrollment".

Besides your child's name you enter a **PIN** — the **last 4 digits of
your child's PESEL number**. It isn't a password; it lets the homeroom
teacher confirm you're enrolling your own child: "PIN = last 4 digits of
child's PESEL. The teacher will verify identity."

### What happens after you submit

The enrolment is **not** approved instantly. It goes for review and holds
one of three states, visible in your **My children** list:

* **Pending** — awaiting a decision. That's all you'll see for now, and
  there's nothing further to do.
* **Approved** — your child is in the class and you can book meetings.
* **Rejected** — the request wasn't accepted. Contact the homeroom
  teacher.

The decision is made by that **class's homeroom teacher**, or by the
**secretary** or a **school administrator** — any of them can approve or
reject. There is no promised turnaround: a person does this by hand, so
it can take until the school's next working day. If it waits noticeably
longer, nudge the homeroom teacher.

### Refusals when enrolling a child

| Message                                                                                                                    | What happened                                       | What to do                                                                                                                              |
| -------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------- |
| "Class not found. Check the join link and try again."                                                                      | The class code is wrong, or the link was truncated. | Ask the homeroom teacher for the code again.                                                                                            |
| "Please enter a class code."                                                                                               | The field was left empty.                           | Enter the code.                                                                                                                         |
| "PIN must be 4 digits"                                                                                                     | The PIN is the wrong length.                        | Enter the last 4 digits of your child's PESEL.                                                                                          |
| "This child is already enrolled by another parent. Ask them to send you a guardian invitation instead of enrolling again." | The other parent already enrolled this child.       | Don't enrol again — ask for a [guardian invitation](/en/invitations#guardian-invitation). It's the same child record, not a second one. |

## For teachers and staff: joining a school

### The QR poster

The school generates a single-page **A4 poster** carrying a QR code and
puts it up in the staff room. You scan it with your phone, give your
email, and you're in — account creation and joining happen in one go.

**Anyone who already belongs to the school** can generate the poster, not
just an administrator. The **QR-code poster** wizard, reached from your
school's team page, has four steps: generate the code, add a message,
review the poster, print and put it up.

<Warning>
  The code is valid for **one hour** from generation: "Join codes are valid
  for one hour after they are generated." Print the poster immediately
  after generating the code — a poster printed in the evening and put up
  the next morning carries a code that already expired. Within that window
  the code is multi-use: any number of teachers can join with it.
</Warning>

The poster prints its expiry ("Code valid until …") — check it before you
put it up.

### The code expired

This is the most common thing to hit on this path, and it isn't a fault.
The app says so plainly: **"This code has expired — sorry!"**, and below
it: "Anyone at your school who already uses Zebrania can generate a new
code — ask for one and scan again."

You don't need to track down an administrator — any colleague already in
Zebrania will do. The poster's own footer says the same: "Code expired?
Anyone at your school already using Zebrania can generate a new one."

You can also **create your account right away** without waiting for a
fresh code — when one turns up, you join with a single click.

If the code was never read at all you'll see: "No join code found. Scan
the QR code again or ask for a new link."

### Ask to be added to the school

When you can't get a fresh code, use **Ask to be added to the school**.
The request goes to an administrator: "Request sent — a school admin will
review it." Only a **school administrator** can act on it.

If you see "Couldn't send the request. You may already be a member of
this school", check your list of schools before trying again.

### Refusals when joining a school

| Message                                                                  | What happened                                                    | What to do                            |
| ------------------------------------------------------------------------ | ---------------------------------------------------------------- | ------------------------------------- |
| "This code has expired — sorry!"                                         | More than an hour passed since generation.                       | Ask any school member for a new code. |
| "No join code found. Scan the QR code again or ask for a new link."      | The code never reached the app — usually a truncated link.       | Scan again rather than retyping.      |
| "Couldn't join. The code may be invalid or expired — ask for a new one." | The code is unknown or lapsed. The app doesn't separate the two. | Ask for a new code.                   |
| "Sign in or create an account to join this school."                      | Not a refusal — you're just not signed in.                       | Sign in and come back to this page.   |

Scanning a code again when you already belong to the school breaks
nothing and does not create a second membership.

## Joining a class as a teacher

Belonging to a school is not the same as being assigned to a class. You
join a class separately, choosing your role: **subject teacher** (then
you pick the subject) or **homeroom teacher**.

### Founders and school staff

This path used to hold a trap worth naming. Whoever creates a school gets
administrator and secretary permissions — but **not** a teacher role.
Joining a class once required the teacher role, so **a founder could not
join a class in their own school**.

That's no longer so: if you belong to the school, joining a class grants
you the teacher role along the way instead of turning you away. This
applies equally to founders, administrators and secretaries. Membership
of the school is still required.

### Refusals when joining a class

| Message                                                                                                     | What happened                                                                                     | What to do                                                                              |
| ----------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------- |
| "You are not a member of this school, so you cannot join its classes. Ask a school admin to add you first." | You hold a class code but aren't a school member. This is the only permission-based refusal left. | Join the school first — by QR code or by request.                                       |
| "You are already assigned to this class."                                                                   | The assignment already exists.                                                                    | Nothing to do; the class is on your list.                                               |
| "This class already has a homeroom teacher. A class can only have one homeroom teacher."                    | Someone else is the homeroom teacher.                                                             | Join as a subject teacher, and leave changing the homeroom teacher to an administrator. |
| "Please select a subject."                                                                                  | "Subject teacher" was chosen without naming a subject.                                            | Pick a subject from the list.                                                           |
| "This school has no subjects yet. Ask an admin to add one, or join as a homeroom teacher."                  | The school has no subjects defined.                                                               | Ask an administrator to add subjects.                                                   |
| "Class not found. Check the join link and try again."                                                       | The class code is unknown.                                                                        | Ask for a correct code.                                                                 |

Once you're in you'll see **"You joined the class"** and can set your
availability — see
[Events and availability](/en/teacher/events-and-availability).

## What next

* Holding an invitation instead of a code? [Invitations](/en/invitations).
* Can't sign in at all? [Getting started](/en/getting-started).
* Something else broken? [Troubleshooting](/en/troubleshooting).
