Product/Operations

The physical school. Transport gets students to school. The library supports learning. The hostel houses boarders. The canteen feeds everyone. Assets track physical property. ID cards open doors. Seven daily operations, each generating fees, each requiring communication, each visible in one dashboard.

What this cluster carries

8 signature capabilities

Transport as a safety system

Routes drawn on the map (PostGIS polylines that the parent live tracker follows down real streets). Pre-trip inspections block defective vehicles from the driver's app. Per-student boarder-safety trigger fires within the check-in transaction — pre-declared absences excuse the student, missing authorization alarms the parent + warden + admin before the driver can move on. Field-trip requests run a five-state lifecycle (pending → confirmed → in-progress → completed); the actual cost auto-posts a journal entry the moment ops marks complete.

Library as a circulation engine

Members with persistent QR cards (replacement chain preserves history). Penalty rules schools configure themselves — flat, per-day, or tiered, with grace days + category targeting + per-member-type rates. Nightly fine cron upserts overdue rows using the configured rule (no client-side fine drift). Returns fire a trigger that promotes the next reservation in the queue inside the same transaction. Paying a fine posts to the ledger atomically. Acquisition receipts auto-create a journal entry (DR 1400 / CR 1100).

Hostel — the residential side as a system

Morning roll-call writes student_attendance for every absent boarder (form tutor sees the gap before first period). Gender-match enforced at the database — assigning a girl to the boys' wing raises an exception before the row commits. Leave-request approvals fan a parent notification within the transaction. Curfew breaches ping every parent's phone (was silently broken from 2024 → fixed May 2026 in migration 00653). Complaint escalation routes to every staff with hostel.manage permission. Maintenance resolved auto-posts to the ledger (DR 5500 / CR 1100). Visitor pre-approvals give the guard a list of who's allowed in.

Canteen — dietary safety as a database trigger

Daily menu, POS via ID scan, inventory tracking. Dietary cross-check is a BEFORE INSERT trigger that walks every order line, intersects canteen_menu_items.allergens with student_health_profile.food_allergens (set intersection), computes dietary_restrictions vs item.dietary_tags (set except), and stamps a flag on the order if any conflict. Parent gets notified within the same transaction. Operator sees the flagged badge before serving. Was marketed but not wired until migration 00656; now actually fires. Hostel boarders auto-enrolled into the meal plan via the auto_enrol_boarder_meal_plan trigger from 00568.

Assets + inventory with five atomic finance fanouts

200 tablets, 30 projectors, 50 desks per classroom — each tagged + located + assigned. Every state transition writes the journal entry in the same transaction. Acquisition posts (DR 1400 / CR 1100). Breakage approval posts the write-off. Wastage event posts the loss. Transfer is atomic across both locations. Monthly depreciation auto-posts (DR 5900 / CR 1800) since migration 00657 — was unposted from launch, the bursar reconciled by hand; now correct.

ID cards with QR for attendance

Student + staff ID generator, QR code scannable for attendance. Designer studio for custom layouts. Bulk PDF for printing.

Multi-campus geofences

GPS coordinates per campus, configurable radii. Staff opt-in to geofence-based clock-in/out.

Cross-cluster auto-billing

Every operations subscription auto-bills through Finance. Fuel logs auto-post to the ledger (DR 5400 / CR 1100) on INSERT. Trip-request complete auto-posts (DR 5410 / CR 1100). The CFO never reconciles a transport spreadsheet — the journal is already correct.

Real-world use case

Monday morning, 7:15 AM. Bus 3 pulls into the gate. Twenty-eight parents simultaneously get the push: « Adèle est arrivée à l'école. » The bus's GPS log shows ten stops, on time at eight of them, two-minute delays at two. The transport manager sees the late stops, schedules an earlier pickup for tomorrow. Maintenance alert flags Bus 3 for a 50,000 km service. A backup bus is auto-assigned for Friday. Twenty-eight parents on the route receive the change at 5 PM.

What makes Operations elite

The receipts

  1. Asset depreciation auto-posts to the ledger (DR 5900 / CR 1800) — was unposted from launch; fixed in migration 00657.

  2. Shop two-status state machine (payment + fulfilment) — revenue journal posts only when both reach paid + delivered, idempotently.

  3. Cashier shift reconcile gate — open / close / reconcile each on a different permission so the cashier can't sign off their own variance.

  4. Canteen dietary cross-check is a BEFORE INSERT trigger — order flagged + parent notified within the operator's tap.

  5. Hostel morning roll-call writes student_attendance for absent boarders — form tutor sees them before first period.

  6. Hostel curfew late/absent → parent notification within the warden's tap-transaction (silently broken 2024–2026; now fixed).

  7. Hostel maintenance resolve auto-posts journal entry (DR 5500 / CR 1100) — bursar never reconciles.

  8. Boarder-safety trigger fans an alarm to parent + warden + admin within the same transaction the driver tapped.

  9. Trip incidents auto-create infirmary visits — the nurse sees an inbound case before the bus arrives.

  10. Trip-request complete posts to the finance ledger atomically — no manual reconciliation.

  11. Hostel roll call feeds attendance — boarders never go missing.

  12. Canteen dietary cross-check — allergies and religious diets respected.

  13. Every operations subscription auto-bills through Finance.