Users, Roles, Batches & Access
6 min read
This guide covers who can do what in Academy & Exam OS, how accounts are created, and how streams, syllabus and batches organise your students.
Roles #
| Role | Default permissions |
|---|---|
| Institute owner | Everything, including changing roles and owner or administrator accounts |
| Administrator | Everything except the owner-only actions |
| Teacher | Create learning content and edit their own items; write, import and export questions; mark written answers; upload media; manage timetable, attendance and assignments for their own batches; view learning reports for their students |
| Student | Take tests, study content they have access to, and manage their own account |
By default, teachers cannot publish content or tests, approve questions, generate AI drafts, manage streams and syllabus, manage sales or manage people. Permissions apply only to accounts that are active and e-mail-verified.
How accounts are created #
Everyone — students and staff — first creates their own account on your website:
- The person opens your website’s registration page and signs up with their name, e-mail address and a password of 12–128 characters (or with Google, if enabled).
- New accounts get the Student role. An e-mail sign-up receives a verification e-mail; a Google sign-up is verified automatically.
- The person clicks the link in the e-mail to verify the address. Until then they are sent to their account page, which offers Resend verification email.
Password resets: on the sign-in page, Forgot password? leads to Send reset link. Reset links are valid for 30 minutes, and a reset signs the account out of all sessions.
Sign-in, registration and e-mail requests are rate-limited; after too many attempts the message “Too many attempts. Please try again later.” appears.
Note: Verification and reset e-mails require working SMTP. See E-mail & SMTP Settings.
Give someone a staff role #
There is no separate staff invitation. The staff member registers like a student; the owner then assigns the role.
- Ask the staff member to register and verify their e-mail address.
- Sign in as the owner and open People & Access → People & Permissions (
/staff/people). - Open the person and click Edit permissions.
- Choose the role (Administrator or Teacher) and the Permitted exam streams (administrators and teachers need at least one).
- Save. The account is signed out of all sessions so that the new role applies at the next sign-in.
- For teachers, add them to their batches (see Batches below).
Staff see only the streams they are permitted to work in.
Support an account #
On a person’s profile under People & Permissions, owners and administrators can:
- Mark email as verified — for example when a student cannot receive e-mail;
- Deactivate account — signs the account out and blocks sign-in;
- Activate account — restores a deactivated account.
Each action accepts an optional reason. Only the owner can change owner or administrator accounts, you cannot deactivate yourself, and at least one active owner must remain.
Exam streams #
Academic Structure → Exam Streams holds the exams or programmes you prepare students for (for example an engineering entrance or a medical entrance stream). Only owners and administrators manage streams. Questions, tests, materials, videos, courses and batches all belong to a stream.
Syllabus & Subjects #
Academic Structure → Syllabus & Subjects builds a category tree for each stream. Top-level entries are subjects; you can nest chapters and topics below them by choosing a Parent category in the same stream. The same tree is used to map questions, tests, PDFs and videos.
Batches #
Academic Structure → Batches & Enrollment groups students into batches (for example a year group or a class), each in one stream.
- Create a batch with its stream, name, status and start and end dates.
- Enter Student emails — one per line and Assigned teacher emails — one per line. The e-mail addresses must belong to active accounts with the matching role, and teachers must be permitted in the batch’s stream.
- Save.
Removing a student’s e-mail address marks them as having left the batch. Only owners and administrators can create batches or change their members.
What teachers see and can change: a teacher’s Overview lists the batches they are assigned to. The Batches & Enrollment list shows every batch in the teacher’s permitted exam streams. A teacher can save changes only to a batch they are assigned to (its name, status and dates — members are changed by owners and administrators); saving any other batch is refused with the message “You are not assigned to this batch.”
Batches are used as audiences: content and Mock Tests can be limited to Selected batches only, and Communication Hub announcements can be sent to selected batches (or to all eligible students).
Timetable and attendance #
- Academic Structure → Timetable: schedule sessions for a batch with a teacher assigned to that batch, an optional subject or topic, a title, start and end time (UTC), location and status (Scheduled, Completed or Cancelled). Students see upcoming scheduled sessions under Timetable on their My Learning page.
- Academic Structure → Attendance: record one entry per student per session with the status Present, Absent, Late or Excused and an optional reason. Saving again for the same student and session updates the entry.
Access to premium content #
A student can open premium tests and content when they have an active access grant, which comes from:
- buying a package online (Stripe, Razorpay or PayPal);
- an approved offline payment; or
- a manual grant by staff under Commerce → Access Grants.
See Payments & Orders.
Google sign-in (optional) #
Students and staff can sign in with Google using your institute’s own Google OAuth client.
- In the Google Cloud console, create a Web application OAuth client.
- In the staff area, open System / Integrations → Google Login / OAuth. The page shows the Authorized callback URL (
https://your-domain/auth/google/callback); add it to the OAuth client in Google Cloud as an authorised redirect URI. - Enter the Google Client ID (it ends with
.apps.googleusercontent.com) and the Google Client Secret. - Optional: enter Allowed email domains (comma separated) to restrict who can sign in.
- Tick Enable Google Login / OAuth and click Save settings, then Validate saved configuration.
Expected result: Continue with Google appears on the sign-in and registration pages. Google accounts are marked as verified automatically. An e-mail address that already has an account is not linked to Google automatically.
The client secret is stored encrypted on your server and never sent to browsers or the app. For the mobile app, see Flutter Mobile App — Setup & Configuration.
Related documents #
Watch the Video Tutorial #
Academy & Exam OS Video Tutorial 03: Institute, Users, Roles & Batches shows this topic step by step (5:11).