🎓 skillSYMS

QCTO Skills Ecosystem Management System

v1.0.0

A multi-tenant, cloud-native system for managing South African occupational qualifications, learner enrolments, assessments, and QCTO MIS reporting — built on Cloudflare Workers.

✨ Features

Multi-tenant isolated data per provider
POPIA-compliant SA ID hashing
Assessment & moderation tracking
Automated QCTO01/QCTO02 exports
Statement of Results generation
Background export processing
Role-based access (7 roles)
Audit trail with PII sanitization

🚀 Quick Start

1
Create your tenant
POST /tenants (public, no auth required)
2
Save your credentials
Store the API key and tenant ID securely (shown only once!)
3
Add authentication headers
Authorization: Bearer <api-key>
4
Include tenant context
X-Tenant-Id: <tenant-id>

📡 API Endpoints

Tenants

POST/tenants (public)
GET/tenants/:id

Programmes

POST/programmes
GET/programmes
GET/programmes/:id

Learners

POST/learners
POST/learners/bulk (CSV import)
GET/learners
GET/learners/:id

Enrolments & Assessments

POST/enrolments
GET/enrolments/:id
POST/assessments
GET/assessments/:id

QCTO Exports

POST/exports/:type (QCTO01, QCTO02)
GET/exports/:id
GET/exports/:id/link

Statement of Results

POST/sor/generate
GET/sor/:learnerId/render

🔐 Authentication

Method: Bearer token (API key)

Required Headers:

Authorization: Bearer <your-api-key>
X-Tenant-Id: <your-tenant-id>

Public Endpoints: GET /, GET /health, POST /tenants