Browse the manual
Overview
Manual/Guides
How-to guide

Certificates & templates

Design and print every document — certificates, receipts, admit cards, seat plans and more.

A task-focused guide: follow the steps when you need to get something done.

Every printed document in ApexityEdu is driven by a template — an HTML document with {{placeholders}} that ApexityEdu fills in at print time. This page explains how to use and customise them.

The document kinds

KindPrinted from
Admit cardBulk Print → Admit cards; People drawer (per student)
Exam routineBulk Print → Exam routines (or inside admit cards)
Result certificateBulk Print → Results; Exams → marksheet
Position / achievement certificateExams → Certificates
Attestation paperPeople → Essential certificates; Bulk Print
Transfer certificatePeople → Essential certificates
TestimonialPeople → Essential certificates
Payment receiptAuto-printed after a payment; ledger download
Seat planBulk Print → Seat plans
Student profileBuilt-in document (not a template)

The student profile sheet is a built-in document — it needs no template, so profile printing never fails with “no template found”.

Managing templates

Open Templates (Admin → Templates) to manage admit-card, result, attestation, transfer, testimonial, receipt and seat-plan templates. You can also reach certificates via Exams → Certificates (which adds a Position / achievement kind).

For each template you can:

  • Create — give it a name and a unique short code; a sensible default HTML is pre-filled for every kind.
  • Edit — change the HTML.
  • Duplicate — copy a template to start a variant.
  • Deactivate / activate — only active templates are eligible for use.
  • Preview — render it with sample data to check the layout.

Default templates ship with every school (only inserted if the school hasn’t customised them), so you can print right away and customise later.

Placeholders

Templates use {{variable}} placeholders. Common ones include:

{{student_name}}, {{local_name}}, {{student_id}}, {{roll_no}}, {{class_name}}, {{section_name}}, {{class}}, {{guardian_name}}, {{guardian_phone}}, {{school_name}}, {{school_address}}, {{term_name}}, {{gpa}}, {{grade}}, {{position}}, {{class_position}}, {{section_position}}, {{total_obtained}}, {{total_full}}, {{date}}, {{year}}.

  • A default can be supplied: {{gpa|—}}.
  • Guardians are read from the database when the certificate prints. The {{guardian_*}} fields always describe the first guardian added to that student in People — so Father and Mother both linked means whichever was linked first. Available: {{guardian_name}}, {{guardian_local_name}}, {{guardian_relation}}, {{guardian_phone}}, {{guardian_email}}, {{guardian_occupation}}, {{guardian_address}}, {{guardian_nid_number}}, {{guardian_photo_url}}. To print every guardian instead, loop {{#guardians}}…{{/guardians}} (same field names without the guardian_ prefix, plus {{guardians_count}}). If a student has no guardian linked, these render empty — wrap guardian lines in a conditional block such as {{#guardian_name}}…{{/guardian_name}} so nothing is printed as a blank gap.
  • Loop over subjects with {{#subjects}}…{{/subjects}} (fields name, full, obtained, grade, gpa).
  • Conditional blocks render only when a value exists: {{#student_photo_url}}…{{/student_photo_url}}.
  • For seat plans, loop {{#students}}…{{/students}} (each has index, full_name, local_name, roll_no, student_id, class_name, section_name), plus {{count}}, {{room_name}}.

Unknown placeholders become empty (no error), so a template won’t break if a field is missing.

No room from exam terms

Rooms exist only on the weekly class routine and on seat plans (, typed at print time in Bulk Print → Seat plans). An admit card’s rows carry date, subject, time, marks and class only.

Photos in templates

  • Student photo: {{student_photo_url}} — render with your own size, e.g. <img src="{{student_photo_url}}" style="width:120px;height:120px;object-fit:cover">.
  • School logo: {{school_logo_url}} (set in Settings → School logo).

Both are private, time-limited URLs that the print document loads automatically.

Admit cards and routines

Admit-card templates have a routine mode:

  • Inline — print the exam routine inside the admit card.
  • Separate — print the routine as its own page right after the admit card.
  • None — no routine.

Position / achievement certificates

A position certificate states a person’s position in an event (e.g. “1st — Annual Science Olympiad”). Issue it from Exams → Certificates → Issue certificate:

  1. Pick a template (a Position / achievement kind shows event + position fields).
  2. Pick the recipient — an enrolled student (search) or type a name (for anyone without a student record).
  3. Type the event and position (optionally an event date and remarks).
  4. Save (persist) or Save & print.

Issued certificates are listed in Issued certificates, where you can view and re-print any of them. The certificate is re-rendered from the live template each time, so fixing a typo in the template fixes every certificate ever issued from it — only the issue date is pinned.

There’s also Issue bulk to issue one certificate per student of a class with a shared event/position (e.g. “Participant”).

Auto-picking a template (the library method)

When printing results, ApexityEdu can pick the right template automatically based on a template’s logic field (e.g. { "term_type": "final", "class_level": "secondary" }). The first active template whose logic fully matches wins; otherwise the first active template is used. This lets a school keep one template for term exams and another for finals, and the right one is chosen automatically.

Printing flow

  • Single documents (a receipt, one profile, one admit card) render instantly and open the print dialog.
  • Bulk batches (Bulk Print, Essential Certificates, Seat Plans, quiz certificate batches) show a “Rendering documents…” overlay while the batch is prepared, then open one print dialog with each document on its own page.

Tips

  • Duplicate a default template and tweak it rather than starting from scratch.
  • Use Preview before printing a class set to catch layout issues.
  • Keep a logic field per template if you want different certificates for different term types.
  • Fix typos in the template itself — issued certificates re-render from it.