Admin User Guide

Complete reference for the middleware admin panel

← Admin Panel

Overview

The middleware connects Blackboard Learn Ultra (elearn.oc.edu.sa) to the NELC LRS using xAPI statements. Blackboard does not send xAPI natively — this service polls Blackboard, builds statements, queues them in an outbox, and dispatches to NELC.

Blackboard REST API → Poller → Outbox → Dispatcher → NELC LRS → integration.nelc.gov.sa

Authentication

When ADMIN_TOKEN is set in .env, enter it in the top bar and click Save. The token is stored in your browser local storage. Use a strong value in production — never commit .env to git.

Dashboard

Shows company summary, live stats, and system configuration.

StatMeaning
Outbox pendingStatements waiting to send
Outbox sentSuccessfully delivered to LRS
Dead letterFailed permanently (400/422) — needs review
JourneysLearner×course progress tracked
QuarantineLearners missing valid National ID
NELC / BlackboardCredentials configured
WorkerBackground poller + dispatcher running

The header badge shows the active LRS environment (e.g. STAGING).

Company Settings

Organization profile for branding and NELC metadata.

My Profile

Operator display name, email, role, and organization — shown in the sidebar.

LRS Endpoints

Manage NELC LRS connection targets. See Endpoints guide for details.

Worker

Automatic intervals: poll every 5 min, dispatch every 30 sec (configurable in .env).

Actions (Testing)

ActionPurpose
Test LRS ConnectionProbe active endpoint; updates health status
Send Validation JourneyQueue all 7 required verbs for one learner×course
Test BlackboardVerify REST API can list course users

Validation journey uses National ID in actor.name and course ID for object.id.

Outbox

Transactional queue with deduplication and retry.

StatusMeaning
PENDINGWaiting for dispatcher
RETRYFailed temporarily — exponential backoff
SENTAccepted by LRS (HTTP 200)
DEADPermanent failure — fix payload or credentials

Each row stores its Env column — dispatcher routes to the correct LRS even after switching active environment.

Journeys

State machine per learner and course URL:

registeredinitializedwatchedcompletedattemptedratedearned

Phase 2 automates registered, initialized, and attempted. Others need Phase 3 (Caliper/LTI).

Logs & Statements

Required xAPI rules (NELC)