Skip to main content
All manual pages

Academic setup

Courses, batches and schedules

Create a course, open a batch with a fee and an optional teacher, and turn a weekly schedule into dated class sessions.

Last updated August 13, 2026

What you'll do

Build the academic backbone of your centre: a course is the subject you teach, a batch is one group of students taking it at a particular time, and a schedule turns that batch into dated class sessions you can actually mark attendance against.

Before you start

  • The courses you teach and a short code for each (HSC-PHY-1, SSC-MATH).
  • For each batch: its fee in taka, its capacity, and the weekday time slots it meets.
  • Reusable time slots. Batches attach existing schedule records rather than typing times, so create your slots on Configurations → Schedules first if you have not already.
  • Teachers are optional at this stage — you can open a batch and assign a teacher later.

Step 1 — Create the course

Go to Courses (Manage courses, curriculum, and course information.) and press Add Course.

FieldNotes
Course CodeRequired. The hint suggests the shape: Enter course code (e.g., CS101). Keep your codes consistent — they sort your lists.
Course NameRequired. What guardians will recognise, e.g. HSC Physics.
DescriptionOptional, shown on the public catalog if you sell online.
PrerequisitesOptional free text.
Incentive per enrollmentOptional. Flat amount earned by the staff user who creates each enrollment for this course. Leave blank if you do not run staff incentives.

Press Create. To add a Banner image you have to save the course first — the upload control only appears when you re-open it for editing, and takes PNG, JPEG or WebP up to 5 MB.

Step 2 — Open the batch

Go to Batches and press Add Batch. Use Filter by course (optional) above the list to narrow a long batch list later.

FieldRequiredNotes
Select CourseYesThe course from step 1.
Batch NameYese.g. Morning Batch, Friday Crash.
Batch CodeYesShort and unique, e.g. HSC-PHY-MORN.
Class LevelNoMarked optional. See Class levels and groups.
GroupNoMarked optional. Science, Business Studies, Humanities or General.
StatusYesPlanned, Ongoing, Completed or Cancelled.
TeacherNoThe hint says it plainly: optional — assign later. The field is clearable, and a batch with no teacher shows Unassigned in the list.
Max StudentsNoCapacity.
FeeNoIn BDT. Optional on the batch itself — but see the warning below.
LocationNoRoom or branch, free text.
Class ModeNoOffline, Online or Hybrid.
Class LinkNoOnly shown for Online/Hybrid. Used for every class of this batch. You can override it per session from the batch's Sessions tab.
Sell onlineNoRequires a fee; buyers submit a manual payment and the enrollment stays pending until staff verify it.
Description, NotesNoInternal.

Set the Fee even though the form does not force you to. The batch fee becomes the default enrollment total for every student you enroll into this batch. A batch with no fee produces enrollments with nothing to collect against, and you will have to type an amount for each student instead. See Enrollments and fees for how the number travels.

Notice that the batch form contains no dates and no class times. An info banner on the form says so, pointing you at a separate Configure Schedule screen. After you press Create you get the toast Batch created — Now set the date range and meeting days to generate class sessions. Do that next.

Step 3 — Configure the schedule and generate sessions

From the batch's row menu, choose Configure Schedule. This is where dated class sessions come from, and the screen states the rule outright: Set the date range and weekly meeting days. Class sessions are generated from the combination of these — one session per matching weekday per schedule.

  1. Set Start date and End date. Start date cannot be after end date.
  2. In Meeting days, pick one or more schedule records — Add one or more schedules. Each schedule already carries its weekday and its start and end time, which is why there are no time fields here. Missing a slot? Create it on Configurations → Schedules first.
  3. Watch the Impact preview below. Until you have filled in both dates and at least one meeting day it tells you so; once you have, it shows Will create, Will update, Will delete, Preserved and Makeups untouched, plus Sample new dates and Sample deleted dates. Read these numbers before saving — this is your dry run.
  4. Press Save Schedule and confirm.

Changing a schedule that already has attendance

CampusQ will not destroy attendance you have already taken. When the batch has marked sessions, the screen warns you and states the guarantee: This batch already has attendance recorded on N session(s). Those rows are inviolable — any change here preserves them, and only sessions without attendance will be moved or removed.

The Regeneration indicator tells you which situation you are in — Free to change — no attendance yet or Preserves attended sessions.

This is worth understanding rather than trusting blindly: attendance records are part of your audit trail. Sessions you have marked survive a schedule change; sessions you have not marked can be moved or deleted. If a rescheduled class was already marked, the old session stays where it was and you add the new date as a manual session instead.

The Class Sessions panel

Directly under the schedule form, Class Sessions lists All recurrence-generated and manual sessions for this batch, filterable by All, Upcoming, Past and Cancelled, with columns for Date, Day, Time, Teacher, Status, Link, Attendance and Type (Recurrence or Manual).

From here you can:

  • Add Manual Session — a one-off class outside the weekly pattern. Date, start time, end time and optional notes.
  • Regenerate — re-derive sessions from the schedule config. The confirmation spells out the rules: Sessions with recorded attendance are preserved and manual/makeup sessions are untouched; other sessions may be updated or removed. You get a count back: N created, N removed, N updated, N preserved (attendance).
  • Cancel session / Reactivate, and for online batches the per-session Meeting & recording links, Share class link with students and Copy link (for WhatsApp/Messenger).

Notes

  • Order of operations matters. Course → batch → schedule → enrollments → attendance. Skipping the schedule is the single most common reason attendance appears broken.
  • Reusable schedules, not per-batch times. The /schedules screen holds weekly slot definitions (day, start, end, location) that many batches share. Its Title field is read-only and auto-generated from the day and time.
  • A batch fee is not a monthly invoice. It is the amount that becomes each student's enrollment total. Monthly fee invoicing is not part of the product today.
  • Sell online needs a fee. The toggle will not do anything useful without one.
  • Some dialog titles and buttons are English-only. The create/edit dialogs read Create Courses / Update Batches and their buttons read Create / Update even in Bengali; the /schedules page heading and its first table header are English too. Session status values are shown as the raw server value.

Troubleshooting

Attendance says there are no sessions for this batch. The batch has no schedule, so no sessions were generated. Run step 4.

I added a meeting day but no new sessions appeared. Check that the batch's date range actually covers dates on that weekday, then look at the Impact preview. If Will create is 0, the range is the problem, not the day.

A batch has no teacher and I cannot save. You can. Teacher is optional — the hint reads optional — assign later. If the form is blocking you, the missing field is one of Course, Batch Name, Batch Code or Status.

Regenerate deleted a session I wanted to keep. Only sessions with no attendance can be removed. If a class genuinely happened, mark its attendance — that makes the session inviolable. For one-off classes, use Add Manual Session, which regeneration never touches.