Search by

adamjenkins / moodle-mod_confcheckin

wisecat

Conference Check-in - a Moodle activity module for selling/issuing conference tickets, generating QR-coded badges, and recording attendance.

Package info

github.com/adamjenkins/moodle-mod_confcheckin

Type:moodle-mod

pkg:composer/adamjenkins/moodle-mod_confcheckin

Statistics

Installs: 1

Dependents: 0

Suggesters: 0

Stars: 0

Open Issues: 0

v0.1.2 2026-10-04 11:48 UTC

This package is auto-updated.

Last update: 2026-10-04 13:25:00 UTC


README

Conference Check-in — a Moodle activity for issuing and selling conference tickets, printing QR-coded badges, recording attendance, and issuing certificates.

Documentation: English (this file) · 日本語

Part of the Conference Tools suite:

What it does

  • Ticket types — define any number per instance (e.g. 1-day/3-day, student, presenter), each with a price (defaults to JPY, any ISO 4217 currency — zero-decimal currencies such as JPY only accept whole-number prices), capacity, an optional availability window (when it can be purchased or claimed — e.g. an early-bird period — enforced server-side; a checkbox controls whether the actual dates are shown to users or just a generic "not currently available" message), and an optional cap on how many of that type a single user may hold (new types default to 1; blank means unlimited). The Manage ticket types page's Visible column is a switch, so a type can be shown/hidden instantly without opening the edit form. Deleting a ticket type also deletes its promo codes (issued tickets are unaffected). A type can be presenter only (checked against Conference Program — an accepted submission you speak on), or gated on membership of a course group or an enrolment method.
  • Purchase & free tickets — priced tickets are bought through Moodle's core_payment (any installed gateway). Price-zero types, promo codes, and group/enrolment auto-grants issue a ticket directly, with no payment or receipt.
  • Auto-grant — link a ticket type to a course group or enrolment method to issue a free ticket automatically on join/enrol, kept in sync. An Orphaned tickets report lists auto-granted tickets whose link no longer holds, for manual revocation.
  • Badges, tickets, receipts & certificates — organiser-edited templates (with placeholder fields drawn from the program, course, user profile and ticket cost) render to PDF, each badge carrying a unique QR code. PDFs embed a bundled Japanese-capable font so Japanese (and other non-Latin-script) template content renders correctly instead of as mojibake. Download per-attendee or as a bulk ZIP.
  • Check-in — a camera-only web QR scanner (native BarcodeDetector where supported, falling back to a vendored jsQR decoder elsewhere, e.g. Safari/Firefox) records attendance; it also works inside the Moodle app. A successful scan flashes the preview green with a checkmark and plays a short (mutable) beep; the scanned name auto-clears after 3 seconds for privacy. Attendance certificates unlock once a check-in is recorded.
  • Check-in report — a sortable list of every enrolled participant showing ticket-holding and check-in status/time, including who hasn't checked in yet and who holds no ticket at all, with a manual check-in/remove-check-in toggle. Visible to editing teachers and managers.

Requirements

  • Moodle 5.2 (2026042000) or later; supported on Moodle 5.2–5.3 ($plugin->supported = [502, 503]).
  • mod_confprogram installed in the same course (its only hard dependency, for presenter-ticket eligibility). It does not depend on mod_confsubmissions directly.

Installation

git clone https://github.com/adamjenkins/moodle-mod_confcheckin.git mod/confcheckin
php admin/cli/upgrade.php

Notes

  • Ticket QR tokens are cryptographically random and globally unique; a restored ticket always gets a fresh token, and each ticket type's sold count is recomputed from the tickets that actually exist.
  • The badge/ticket placeholder delimiter is a site-wide admin setting (default [[ ]]).
  • The Moodle-app view uses the <core-iframe> site-plugins pattern and has not been verified against a real app build in this environment.

License

GNU GPL v3 or later. See LICENSE.

Author

Adam Jenkins adam@wisecat.net