Family portal
Parents see lessons, notes, progress, term reports and invoices, pay by card and message the school from their phone.
See how family portal worksSecurity and sign-in
Sign in with a password, a passkey (Face ID, Touch ID, Windows Hello) or Google. Every school’s data is separated by Postgres row-level security; every sensitive change is in the audit log; card details never touch the app.
A password, a passkey or a Google account — any of them can be the only one. Passkeys are discoverable credentials with user verification required, so sign-in is something you have plus the device’s biometric or PIN; losing every passkey never locks anyone out while a password remains. Google sign-in links only to a confirmed account, so nobody can pre-register your address. Forgot password e-mails a single-use link valid for an hour and signs the account out everywhere else.
Owner and admin see everything, including settings, Stripe, policies, team access and the audit log. Managers run day-to-day operations, with finance only if the school enables it. Billing sees invoices, payments, teacher pay and financial reports. Teachers see their own schedule, only their assigned students and own groups. Parents see their linked children. Hidden buttons are never the security boundary: every request runs as an unprivileged database role chosen from the person’s membership.
Each request-scoped query runs in a transaction that sets the user and school and switches to a trust-tier role. Row-level security policies decide which rows each person sees, column grants decide which fields (internal notes are staff-only, contact details office-or-self), and composite foreign keys make a reference across schools impossible. The same rules hold for every page, export, calendar feed and e-mail.
Sensitive changes — a calendar conflict overridden, a refund, a role change, a Google account linked, a password reset — are written to an audit log the owner and admins can read. Nobody joins a school because an e-mail address matches: a new person gets a single-use invite link and chooses a password; someone who already has an account confirms with the password they already use.
Stripe Checkout hosts the card form; only brand, last four and expiry are stored. Webhooks are signature-verified and idempotent. Password-reset and invite tokens are stored hashed. Sign-in and recovery are throttled per address.
In the catalogue
One line each here; the full list, by group, is Everything Muzeqo provides. Each name opens its group there.
Every Muzeqo AI feature runs only when Muzeqo’s AI key is on the server and the school has turned on Drafts with Muzeqo AI; otherwise the app uses its own rule-based words or says that AI is unavailable, and nothing is sent anywhere.
Changing where pay goes needs a separate passcode; repeated wrong tries lock it for a while and an e-mailed reset takes effect only after a cooling-off freeze, and Stripe pays only a passcode-confirmed bank.
Invite admin, manager and billing staff, change roles, suspend or restore access, revoke or reissue pending invites (the invitee is reminded while it waits), all audit-logged.
A person who belongs to several schools switches between them from the header, files them into named groups on My workplaces with unread counts per school, and an owner creates another school from there.
Every query runs as the person’s database role; policies limit rows to their active school, composite foreign keys make a cross-school reference impossible to save, and staff-only columns are granted only to the tier allowed to read them.
Owner, admin, manager, billing, teacher, parent and student roles each hold a fixed permission set with per-member overrides, and a switch lets managers see finances.
A teacher reads a student only with an active assignment or a recent or upcoming lesson, and guardian contact details only when the school allows; families see names and avatars only, never other people’s contact details.
Sensitive changes (settings, access, payouts, invoices, imports, logins, exports and more) are recorded with actor and time, filterable by date and record type, exportable as CSV, and every export is itself logged.
Hashed passwords, WebAuthn passkeys (Face ID, Touch ID, Windows Hello), Google sign-in once the Google client is configured (linking only verified addresses), and throttled login attempts.
Forgot-password and e-mail confirmation use single-use, expiring links sent only to the account’s own address, and a security e-mail confirms every password change.
One-time codes by text confirm a mobile number, hashed at rest, short-lived, with few attempts and rate-limited.
Staff and family invitations are hashed single-use tokens with an expiry, accepted with a new password, Google or one click when signed in.
A signed-in person with no active school lands on a page pointing to their invite e-mail and My schools, a dead session cookie is cleared so the landing page stays reachable, and every e-mail and push link opens in the right school and portal for the reader’s role.
Every response carries HSTS, nosniff, a strict referrer policy, camera and microphone for the site only and frame-ancestors self; only the enrolment embed may be framed.
Uploads are capped in size, executable types are refused, and files count against the plan’s storage without anything ever being deleted.
Guardians are the route for minors, there are no private teacher-to-minor chats, a child never sees the family’s money, and wherever children appear on a board it is first names only.
Built, not yet switched on: a teacher records their Working with Children Check, registration and qualifications with consent; Muzeqo staff check them against the official register by hand and record exactly what it showed (only the ABN is looked up automatically on the ABR), numbers sit in a sealed encrypted vault and are deleted on a schedule, and the teacher chooses which schools see status and expiry and reads who looked.
The office suspends a membership (closing their conversations), reinstates it or changes a role, each change audited.
A privacy policy written to the Australian Privacy Principles that names its processors, says what is collected and for how long and how to complain, and terms that say school records belong to the school, the agreement can be ended by either side and consumer law applies; both await legal review and are kept out of search until then.
School records belong to the school; we process them only to provide the service, keep them separated from other schools’ data, and provide an export on request, and either side may end the agreement at any time.
What schools notice first
Questions
In a PostgreSQL database. Ask us for the current hosting provider and region through the contact page before you sign up; we will also tell you how backups and encryption at rest are handled.
Yes. Every report exports as CSV, and on request we provide a full export of your school’s records. We do not lock data in.
A passkey is stronger than a one-time code: it is bound to the site and needs your device and its biometric or PIN. Use it instead of, or alongside, your password.
Create your school in a few minutes. 30-day free trial, no card needed.