Welcome to ibmarker documentation
ibmarker helps IB schools deliver consistent, rubric-aligned grading, real-time feedback, analytics, and GDPR-level policy governance—built as one unified ecosystem.
At a glance
- ✅ Official IB rubric mapping
- 🎮 Gaming-based learning (quizzes, multiplayer)
- 🔐 Policy governance & audit logs
- 📈 Unified dashboards & analytics
Quickstart in 3 steps
- Create a school and invite teachers.
- Connect classes (e.g., Biology HL, Math AA).
- Start grading with rubric-aligned criteria.
$ npx ibmarker init
✔ School: ProgressionAI High
✔ Region: EU (GDPR)
✔ Create roles now? Yes
$ npx ibmarker invite teacher alice@school.edu
$ npx ibmarker class create "Biology HL"
$ npx ibmarker rubric sync --subject "Biology HL"
Environment keys
Create a programmatic key for integrations (secure, scope-limited).
# .env
IBM_API_KEY=sk_live_***redacted***
IBM_WEBHOOK_SECRET=whsec_***redacted***
IBM_REGION=eu
Schools
Centralized policies, access control, audit logs, and pricing per cohort.
Teachers
AI-assisted rubric application, inline feedback, and shared analytics.
Students
Task inbox, rubric transparency, progress tracking, and game modes.
AI Policy & Security
ibmarker is designed for GDPR-level compliance with policy templates, role-based permissions, single-region data residency, and 24/7 audit readiness.
Data Regions
- EU (default)
- US
- AU
SDK
Use the lightweight SDK to manage classes, tasks, and rubric criteria.
// npm i @ibmarker/sdk
import { IbMarker } from "@ibmarker/sdk"
const ib = new IbMarker({ apiKey: process.env.IBM_API_KEY })
const cls = await ib.class.create({ name: "Biology HL" })
await ib.rubric.sync({ classId: cls.id, subject: "Biology HL" })
const task = await ib.tasks.create({
classId: cls.id,
title: "HL2 Enzymes",
rubric: "IB Biology HL - IA"
})
console.log("Assigned:", task.id)
Webhooks
Receive events for submissions, rubric scores, and feedback updates.
// Express example
import crypto from "crypto"
import express from "express"
const app = express()
app.post("/webhooks/ibmarker", express.raw({type:"application/json"}), (req,res)=>{
const sig = req.headers["x-ibm-signature"]
const computed = crypto.createHmac("sha256", process.env.IBM_WEBHOOK_SECRET)
.update(req.body).digest("hex")
if (sig !== computed) return res.status(400).send("Invalid signature")
const event = JSON.parse(req.body)
// handle event.type: "submission.created", "rubric.scored", "feedback.updated"
res.sendStatus(200)
})
REST API
| Endpoint | Method | Description |
|---|---|---|
| /v1/classes | POST | Create a class |
| /v1/rubrics/sync | POST | Sync IB rubric by subject |
| /v1/tasks | POST | Create a task/assessment |
| /v1/submissions/{id} | GET | Fetch a submission |
| /v1/scores | POST | Create rubric score |
| /v1/webhooks | POST | Register webhook |
https://api.ibmarker.example (region-specific)
Rubric-aligned grading
Attach the correct IB rubric to each task; the assistant guides marking and aggregates criterion-level analytics.
Moderation
Scale moderation across departments with role-gated approvals and evidence trails.
Gaming & learning
Run competitive quizzes mapped to IB outcomes. Results feed the same analytics teachers use.
University pathways
Track coursework, scores, and references against university entrance requirements.
Analytics
{
"classId": "bio-hl-1",
"cohort": "2025",
"rubric": "IB Biology HL - IA",
"metrics": {
"criterionA_mean": 5.1,
"criterionB_mean": 4.6,
"std_dev": 0.8,
"consistency_index": 0.92
}
}
FAQ
Is data stored in my region?
Yes. Choose EU/US/AU; data residency and processing follow that region.
Do you support all IB subjects?
Core groups are mapped (Sciences, Math, Arts, I&S, Language & Lit, Language Acquisition).
How do I pilot?
Start with the Essential plan (100 students, 20 teachers).
Support
Email info@progressionai.io or open a ticket.
Changelog
- 1.0.0 – Public docs launch; SDK seed; webhooks; rubric sync.
- 0.9.0 – Private beta for early IB schools.