v1.0 • Public /to focus search
Get started

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

  1. Create a school and invite teachers.
  2. Connect classes (e.g., Biology HL, Math AA).
  3. Start grading with rubric-aligned criteria.
Tip: Use the Essential plan to pilot with 100 students, then scale.
$ 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
Security: Keys never leave your region; all access is audit-logged.

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.

Note: Enable “Strict” AI policy to route prompts through your school policy pack.

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

EndpointMethodDescription
/v1/classesPOSTCreate a class
/v1/rubrics/syncPOSTSync IB rubric by subject
/v1/tasksPOSTCreate a task/assessment
/v1/submissions/{id}GETFetch a submission
/v1/scoresPOSTCreate rubric score
/v1/webhooksPOSTRegister webhook
Base URL: 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

Outcome: reduce monthly teacher workload; improve rubric consistency.
{
  "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.

Incident? Attach event IDs from your audit log to speed up triage.

Changelog

  • 1.0.0 – Public docs launch; SDK seed; webhooks; rubric sync.
  • 0.9.0 – Private beta for early IB schools.