Sign inSign up

cassproject/cass

By cassproject

Updated 8 days ago

Competency and Skills System -- Learning Modeling, Learner Modeling, Competency Management

Image
Data science
4

50K+

cassproject/cass repository overview

CaSS

Competency and Skills System — Open-source competency framework management, assertion tracking, and learner profile computation.

Overview

CaSS enables organizations across education, training, and workforce development to author competency frameworks, record assertions of individual competency attainment, compute learner profiles, and exchange competency data with external systems via standards-based protocol adapters.

The system is composed of:

  • CaSS Server — A Node.js/Express application providing the REST API, data persistence (via Elasticsearch), and protocol adapters.
  • CaSS Library — A JavaScript SDK (cassproject) providing data models, cryptographic identity management, and an interoperability layer for web applications.
  • CaSS Editor — A Vue.js single-page application for framework authoring, crosswalks, import/export, and user management.
  • Protocol Adapters — Pluggable cartridges providing standards-based interoperability (xAPI, CTDL-ASN, IMS CASE, Open Badges 2.0, ASN, MCP, and more).

Quick Start

Docker images for standalone and distributed deployments are available on Docker Hub:

Use the provided Docker Compose files for common configurations:

docker compose up -d

See DEPLOYMENT.md for detailed Docker, Kubernetes, and production deployment guidance.

Local Development
git clone --recurse-submodules https://github.com/cassproject/CASS
cd CASS
npm install
npm run dev        # Starts server with auto-restart on save

Prerequisites: Docker (pulls and runs Elasticsearch on port 9200).

Running Tests
npm test           # Runs the full test suite (do not run alongside npm run dev)
Generating API Documentation
npm run docs       # Output deposited in /docs
Production

Use containerized builds. See the Docker Compose files in the repository root for examples.

Post-Installation

To support open linked data, objects created in CaSS should have public, reliable URLs:

  1. Assign the server a domain name.
  2. Enable HTTPS (see CONFIGURATION.md).
  3. (Optional) Use a reverse proxy to control the endpoint.

FIPS 140-3 Support

FIPS is supported both client-side and server-side. It is recommended to use the Docker container builds for FIPS compliance.

→ Server →Legacy (pre-FIPS)OpenSSL with --force-fipsOpenSSL with --force-fips and REJECT_SHA1=true
Client / Library
Legacy (pre-FIPS)SHA-1 (no FIPS)SHA-1 (verify only)Incompatible
Legacy + OpenSSL FIPS moduleSHA-1 (partial FIPS)SHA-1 (verify only)Incompatible
CurrentSHA-1 (no FIPS)SHA-1 (verify only*), SHA-256 (FIPS)SHA-256 (FIPS)
Current + FIPS=trueSHA-1 (partial FIPS)SHA-1 (verify only*), SHA-256 (FIPS)SHA-256 (FIPS)
Current + --force-fipsIncompatibleSHA-256 (FIPS)SHA-256 (FIPS)

Partial FIPS — SHA-1 hashing is still used; all other cryptographic operations use the FIPS module.
Verify only — Uses the exception permitting SHA-1 verification but not generation.
Verify only* — May fall back to SHA-1 verification if SHA-256 negotiation failed, but typically will not use SHA-1.

Source: OpenSSL FIPS 140-3 Announcement

Documentation

DocumentDescription
REQUIREMENTS.mdSoftware Requirements Specification (DI-IPSC-81433A)
DESIGN.mdSystem Design Document (DI-IPSC-81435A)
DATABASE.mdDatabase Design Description (DI-IPSC-81437A)
CONFIGURATION.mdServer configuration guide
DEPLOYMENT.mdDeployment guide (Docker, Kubernetes, bare metal)
ENVIRONMENT.mdEnvironment variable reference
FILE.mdRepository file structure reference
RELEASE.mdRelease process and automation
CONTRIBUTING.mdContribution guidelines
CODE_OF_CONDUCT.mdCode of conduct
CHANGELOG.mdVersion history and release notes
External Documentation

License

Apache License 2.0

Tag summary

Content type

Image

Digest

sha256:a4859d986

Size

176.1 MB

Last updated

8 days ago

docker pull cassproject/cass:dev-alpine