Spteca
πŸ—‚οΈ Admin β€” Daily Operations

The Admin Guide

You run the school day-to-day: teachers, students, the schedule, payments and communication. This guide follows the exact order that gets a school running β€” Teachers β†’ Availability β†’ Students β†’ Schedule β€” then covers every tool you'll use daily.

The setup order (why it matters)

#StepWhy it can't be skipped
0Super Admin created a pricing planEnrollment requires a plan. If none exists, ask your Super Admin β€” see the Super Admin guide.
1Configure subjects & roomsTeachers and enrollments are organised by subject; lessons can be assigned to rooms.
2Add teachersA lesson always belongs to a teacher.
3Teachers set availabilityYou cannot book a slot the system doesn't know is free.
4Enroll studentsEnrollment = student + subject + teacher + slot + plan. Everything downstream (schedule, payments, attendance) flows from it.
Admin dashboard
πŸ“Έ Screenshot pending β€” run capture-screenshots.mjs
The Admin dashboard β€” your daily control room.

1 Β· Settings: subjects & policies

Sidebar β†’ Academy β†’ Settings

The Subjects Offered list β€” the subjects your school teaches (Piano, Ballet, Karate, English…) β€” appears everywhere: teacher profiles, enrollment forms, the curriculum, the public join page. It starts empty for a new school, and it's managed by the school owner under Super Admin β†’ School Settings β†’ Subjects tab. If the owner enables "Allow Admins to Manage Subjects" in their Preferences, you can add and edit subjects right here in Settings too. This page also holds your studio rooms and school policies.

Admin settings
πŸ“Έ Screenshot pending β€” run capture-screenshots.mjs
Settings β€” subjects list and school policies.

2 Β· Rooms

Sidebar β†’ Academy β†’ Rooms

Add each physical room with a name and the subjects it's compatible with (the drum room isn't for violin lessons). Mark rooms that allow group classes and set their capacity. When scheduling, Spoteca only offers compatible, free rooms β€” and guarantees no two lessons ever share a room at the same time.

Rooms
πŸ“Έ Screenshot pending β€” run capture-screenshots.mjs
Rooms β€” subject compatibility and group capacity.

3 Β· Add teachers

Sidebar β†’ Teachers β†’ Teachers β†’ + Add Teacher

1

Identity & login β€” all required

Full name, a username (what the teacher signs in with), a password (min. 6 characters β€” the teacher can change it later), email, phone number and whether that number has WhatsApp. A profile photo is required too (JPG/PNG, max 600Γ—600) β€” it appears on schedules and the student's "My Teacher" page.

2

Subjects β€” at least one

Tap every subject the teacher covers. This filters which teachers appear when you enroll a student for that subject.

3

Bio & CV (optional)

A short bio (visible to students) and a CV file.

Add teacher
πŸ“Έ Screenshot pending β€” run capture-screenshots.mjs
The Add Teacher form.

Hand the teacher their username + password and point them to the Teacher guide. Their first job is the next section.

4 Β· Teacher availability β€” the critical step

⚠️ Nothing can be scheduled without thisSpoteca will only offer lesson slots inside a teacher's marked availability. A new teacher has none, so they are unbookable until availability exists. This is the single most common reason a new school feels "stuck".

There are three ways to get availability into the system β€” pick per teacher:

Option A β€” You set it for them (fastest)

Sidebar β†’ Teachers β†’ the green Availability button on a teacher's card. The same weekly grid the teacher sees opens in a window: click or drag to paint the hours they can work, then Save availability. No waiting for anyone to log in.

  • Lessons already booked show red and can't be unpainted β€” cancel or reschedule the lesson first.
  • The teacher is notified every time you change their hours, so nothing moves under them silently.
  • If your school runs fixed hours, hit Import school hours first and adjust from there instead of painting a whole week.
ℹ️ Don't see the Availability button?Your school owner has turned it off. It lives under Super Admin β†’ School Settings β†’ Preferences β†’ Allow Admins to Set Teacher Availability and is on by default.

Option B β€” Teachers set their own hours (freelance-style)

Each teacher logs in with the credentials you created, opens My Schedule β†’ My Availability, and paints the hours they can teach (click or drag on the weekly grid, 15-minute precision, then Save availability). They have the same Import school hours button. Full walkthrough with screenshots in the Teacher guide.

Option C β€” Bulk import from a spreadsheet

For a whole roster at once, the Super Admin imports an Excel availability sheet β€” one row per teacher / day / 15-minute slot. See Import Data for the exact format. Teachers can still refine their grid afterwards.

🏫 School hours vs teacher availabilityThese are two different things. School hours (Super Admin β†’ School Settings β†’ School Hours) are just when the building is open β€” nothing is ever scheduled against them. They exist so you or a teacher can press Import school hours and start from a sensible week instead of a blank one. Importing merges: whatever is already painted stays. Once saved, that teacher's own grid is the only thing the scheduler reads, so a teacher's own hours always win. Changing school hours later never rewrites anyone's existing availability.
πŸ’‘ Verify at a glanceOpen Academy β†’ Schedule and switch to the availability view β€” every teacher's free (green) and booked (red) slots side by side. If a teacher shows no green, they haven't set availability yet.

5 Β· Add & enroll students

Sidebar β†’ Students β†’ Students

Two buttons, two purposes:

  • + Add Student β€” creates a student profile only (no lessons yet). Use for waitlisted kids or imports.
  • + Enroll β€” the full flow: creates the student (or picks an existing one) and their enrollment with teacher, weekly slot and pricing plan. This is your everyday button.

The Enroll flow, step by step

1

Student details

Name, username + temporary password (their login) and phone number are required; date of birth, email and address are optional. Existing student? Search by name instead. Enrolling a minor? At least one guardian (parent) must be added in the Guardians section of the same form.

2

Subject

Choose from your school's subject list. A student can hold several enrollments (piano and guitar), each with its own teacher, slot and plan.

3

Teacher & slot

Spoteca lists only teachers who teach that subject, then only their free, available slots (teacher availability minus existing bookings). Pick the weekly day + time. A compatible free room can be assigned in the same breath. If the chosen plan includes 2+ lessons per week (intensive), the form asks you to pick each additional weekly slot with the same teacher.

4

Pricing plan

Choose one of your school's plans. The plan drives everything financial: invoice amount and cycle, teacher pay, reschedule allowance.

5

Confirm

Click Enroll Student. Spoteca instantly creates the weekly recurring lesson, generates the first payment, and (if enabled) notifies the teacher.

Enroll student β€” details
πŸ“Έ Screenshot pending β€” run capture-screenshots.mjs
Enroll β€” student details.
Enroll student β€” slot & plan
πŸ“Έ Screenshot pending β€” run capture-screenshots.mjs
Enroll β€” subject, teacher, slot and plan.

Student profiles

Open any student for the full picture: enrollments, lessons, attendance, payments, notes, guardians, and extended fields (emergency contact, medical notes, referral source, tags…). Your school can even define custom fields that appear on every student form.

πŸ”’ Private staff notes. The student page has a confidential Private staff notes section, visible to school staff only β€” never the student or guardians. You see every note any teacher has written about the student, and can add your own. Teachers see only their own notes; super-admins can remove any note.

Students list
πŸ“Έ Screenshot pending β€” run capture-screenshots.mjs
The students list after enrollment.

6 Β· The public enrollment link

First, the Super Admin enables it: School Settings β†’ Self-Enrollment (Public Signup) β€” the toggle reveals your copyable join link and a ready-made QR code. Then share spoteca.com/join/yourschool on WhatsApp, Instagram or your website. Prospects create their own student account (name, email, password, phone, subject of interest, message) and land in your pending students β€” you complete the enrollment when they're ready. It's your always-on lead-capture page, branded with your logo.

Join page
πŸ“Έ Screenshot pending β€” run capture-screenshots.mjs
The public join page for your school.

7 Β· Schedule & calendar

Sidebar β†’ Academy β†’ Schedule β€” the weekly grid across all teachers. It shows every teacher's availability and bookings side by side:

Available (free to book) Booked lesson Not available

Click any green slot to enroll a student straight into it β€” the enroll form opens with teacher, day and time pre-filled. This is the fastest way to fill your week.

Schedule
πŸ“Έ Screenshot pending β€” run capture-screenshots.mjs
The schedule grid β€” all teachers, availability and bookings.

Sidebar β†’ Academy β†’ Calendar β€” the date-based view: every lesson occurrence on real dates, including one-time events, group sessions and reschedules. Rooms can be assigned from here too.

Calendar
πŸ“Έ Screenshot pending β€” run capture-screenshots.mjs
The calendar β€” occurrences by date.
ℹ️ Weekly lesson vs occurrenceAn enrollment creates a weekly recurring lesson ("Monday 16:00 with Nadia"). Spoteca then generates dated occurrences (Mon 12 Jan, Mon 19 Jan…). Attendance, reschedules and cancellations act on occurrences β€” the weekly pattern stays intact.

8 Β· Reschedules, absences & closures

Student reschedules

Each pricing plan allows N reschedules per month. Move a single occurrence to another free slot of the same teacher; the system enforces the monthly allowance and records the chain (original β†’ new). Permanent slot changes are supported too.

ℹ️ Moving one lesson vs. moving the slotA one-off reschedule moves a single date β€” the weekly slot stays where it was. So a lesson moved to Wednesday 16:00 occupies that time on that date only, and Wednesday 16:00 still shows as free for new enrollments. That's deliberate: one date shouldn't block an ongoing booking. When you pick a slot that a moved lesson lands on, Spoteca marks it ⚠ moved lesson and names the student and date β€” you can still enrol, then move that one date from the calendar. If you meant to change the student's time for good, use permanent reschedule instead: it rewrites the weekly slot, freeing the old time and properly occupying the new one.

Teacher absences

Sidebar β†’ Teachers β†’ Absences β€” log sick days, vacation or personal leave for a date range. Spoteca finds every affected lesson and walks you through rescheduling each one into a free slot. If no slot works, issue a refund β€” cash, or credit automatically applied against the student's next invoice.

Academy closures

Holidays close the whole school for a date: every teacher is marked absent and all lessons that day are handled the same way (reschedule or credit).

Absences
πŸ“Έ Screenshot pending β€” run capture-screenshots.mjs
Absences & closures management.

9 Β· Group classes & events

Sidebar β†’ Academy β†’ Group Classes

Theory circles, ensembles, workshops: pick a teacher, room, weekly day/time (or a one-time date for events/recitals), a group pricing plan, and enroll multiple students. Group extras:

  • Capacity β€” cap the class size; full classes can feed the waitlist.
  • Minimum students to start billing β€” don't charge anyone until the class is viable (you can override and start billing manually).
  • Per-session attendance β€” each session tracks attendance per student.
  • Session packs on your own dates β€” choose Schedule N sessions when a prepaid pack does not run weekly. Pick a prepaid (bundle) plan and the picker shows exactly as many rows as the plan sells: one date and time per session, so a pack can run Fri 4pm, then Wed 5pm, then skip a month. Fill weekly from the first date sets a weekly pattern in one click if that is what you want, and you then change only the sessions that differ. Each time is picked from the teacher's availability on that date, with their existing lessons greyed out and school closures flagged. A pack on your own dates does not auto-renew β€” when the sessions run out, you set up the next pack yourself.
  • One-time events β€” set a date instead of a weekly day for recitals, masterclasses, open days. Pick the date first, then choose the time from the teacher's availability on that date: times they are already teaching are greyed out, and closure days are flagged, so you see a clash before you save.
πŸ’Έ Closing a group β€” refunds & teacher payWhen you Deactivate a group, a window lets you refund each enrolled student β€” the amount they paid is pre-filled, and you can lower it, refund fully, or set it to zero per student. If the group is closing because the teacher can't run it, tick the box to cancel the teacher's unpaid bill for that group in the same step. Refunds are recorded on each student's invoice (they see them under Payments) and are subtracted as a "Refunds" line in your Financial Reports, lowering net revenue. Already-paid teacher payments aren't touched.
Group classes
πŸ“Έ Screenshot pending β€” run capture-screenshots.mjs
Group classes.

10 Β· Payments & promo codes

🚫 Waiving an invoice you won't collectOn any unpaid invoice, Cancel marks it as no longer owed β€” most often when a student's trial fee is folded into the plan they signed up for. The invoice stays on the record (so you can still see the trial happened), but it drops out of both revenue and outstanding in Financial Reports. Changed your mind? Restore puts it back to unpaid. If a teacher is owed for the same lesson, you'll be asked whether to cancel their bill as well β€” untick it when the teacher should still be paid for teaching it.

Sidebar β†’ Students β†’ Payments

πŸ’š You never create invoices by handEvery active enrollment generates its payments automatically according to its plan (recurring, per-term, per-pack…). Your job is simply to mark them paid as money arrives.
  • Statuses β€” Paid, Unpaid, Partial, Overdue, Cancelled. Overdue students are flagged automatically and can receive payment reminders.
  • Documents β€” every payment produces a numbered invoice and, once paid, a numbered receipt (PDF, branded with your logo). Refund receipts exist too.
  • Promo codes Students β†’ Promo Codes β€” percentage or fixed discounts; school-wide, per-plan, or for one student; usage caps and expiry dates. Applied at payment time, the discount trail is kept.
  • Credit β€” refunds issued as credit sit on the enrollment and get deducted from the next invoice.
🧾 Invoices paid in instalmentsWhen a plan is set to be paid in parts, the term or period is still one invoice for the full amount β€” that is the debt, and that is what the PDF is for. Its instalments appear indented underneath it, each with its own due date and its own Mark Paid button. Settling parts moves the invoice to Partial and shows the remaining balance; the last one settles it. Marking the invoice itself paid settles every part at once, and cancelling it withdraws the parts still owed while leaving anything already paid untouched. The dates are spread equally across the period to start with β€” that is arithmetic, not an agreement, so click the ✏️ beside any date to move it to whatever you actually agreed with the family. A moved date stays put: the nightly billing run never rewrites one you set by hand. Families see the same schedule, read-only, under Payments β€” and are reminded before each instalment falls due, not just the first.
Payments
πŸ“Έ Screenshot pending β€” run capture-screenshots.mjs
Payments β€” auto-generated, tracked by status.

11 Β· Teacher payments

Sidebar β†’ Teachers β†’ Teacher Payments

Teacher pay is calculated automatically each month from delivered lessons Γ— the plan's teacher rate (with per-teacher overrides where set). Plans marked pay-per-attendance count only sessions marked Present. Apply deductions with a note when needed, mark payouts as paid, and export a PDF pay statement per teacher. Teachers see the same numbers in their own portal β€” no more spreadsheet disputes.

Teacher payments
πŸ“Έ Screenshot pending β€” run capture-screenshots.mjs
Teacher payroll, calculated for you.

12 Β· Attendance & lesson notes

Sidebar β†’ Academy β†’ Attendance (admins can mark it; teachers usually do). Statuses: Present, Absent, Late, Excused. Attendance links to payments where relevant (pay-per-attendance plans) and feeds the student flags system.

Sidebar β†’ Students β†’ Lesson Notes gives you oversight of every note teachers write β€” content, homework, rating and attachments β€” so you always know teaching is happening and parents are getting feedback. Two tabs: Notes written, and Needs notes β€” every lesson marked Present in the last 90 days that still has no note, with the student, date and teacher, so you can see at a glance who is behind on write-ups. The student, teacher and date filters apply to both.

πŸ“ Writing a note from the calendarOn Academy β†’ Calendar, once a lesson is marked Present a + Note button appears on it. That opens the same lesson note the teacher writes β€” rating, topics, observations and homework β€” so you can fill one in on a teacher's behalf; it is always saved under the teacher who taught the lesson, not under your name. Lessons marked Absent or cancelled show + Remark instead: just a one-line note like "called in sick", since there is no lesson to grade. That remark is visible to the student and their parents on their calendar β€” for anything confidential use the private Student notes instead.
Attendance
πŸ“Έ Screenshot pending β€” run capture-screenshots.mjs
Attendance overview.

13 Β· Messages & announcements

Messages Academy β†’ Messages β€” direct chat with any teacher, student or guardian. Read receipts and reactions included; every conversation is logged in one place (goodbye, WhatsApp chaos).

Announcements Academy β†’ Announcements β€” one-to-many broadcasts: all students, all teachers, or everyone. Ideal for holiday closures, recital invitations, policy updates. Recipients get an in-app notification (and push, if they enabled it).

Announcements
πŸ“Έ Screenshot pending β€” run capture-screenshots.mjs
Announcements.

14 Β· Waitlist, guardians & reports

  • Waitlist Students β†’ Waitlist β€” park people who want a place before you have one; when a slot frees up, notify and enroll in two clicks. More below.
  • Guardians Students β†’ Guardians β€” link parents to students; optionally give them their own parent portal login.
  • Reports Students β†’ Reports β€” per-student progress reports and school-level summaries, exportable as branded PDFs.

The waiting list

A waiting list is mostly people who are not students yet β€” a parent who rang on Tuesday, someone who asked after a recital. So it does not ask you to create a student record first. Press Add to Waitlist and fill in:

  • Student name β€” required. Just type it; no account, no username, no password.
  • Phone number β€” optional but worth having. A prospect has no Spoteca login, so a phone number is how you reach them when a place opens.
  • Subject β€” required, chosen from your school's own subject list, the same one the teacher form and enrolment read.
  • Preferred teacher, days and notes β€” all optional.
πŸ’‘ "Other" is a market-research toolThe subject list ends with Other…, which opens a free-text box. Use it when someone asks for something you don't teach β€” cello, oud, music theory. Those entries quietly build a record of demand you're currently turning away, which is the best evidence you'll get for what to add next.

When a place opens, mark the entry Notified, then Enrolled once they've taken it. Entries that go cold can be marked Expired rather than deleted, so you keep the history.

Waitlist
πŸ“Έ Screenshot pending β€” run capture-screenshots.mjs
The waitlist.

FAQ

I can't pick a slot when enrolling β€” the list is empty.

The chosen teacher has no (remaining) availability. Check Section 4 β€” either the teacher hasn't painted their grid, or every available slot is already booked.

Can one student learn two subjects?

Yes β€” add a second enrollment on the same student. Each enrollment has its own teacher, slot, plan and invoices.

How do trials work?

Create a Trial pricing plan (one-time). Enroll the prospect on it; after the session, you're notified to either convert them to a full plan or archive.

A parent wants to move Thursday's lesson only.

That's a reschedule of one occurrence β€” the weekly slot is untouched. The plan's monthly reschedule allowance applies.

What if a teacher leaves?

Use the reassign tools on the teacher's page to move their students to another teacher, then deactivate the account. History is preserved.

Next β†’ The Teacher Guide: availability, lessons, notes & pay