How cerpus/edlib works
Edlib is a learning-content authoring and reuse platform. Authors create or edit interactive H5P resources, save them with publication, sharing, and licensing choices, and can version, copy, or translate resources. Learners and educators can discover and reuse published content in the Hub or insert it into an LMS through LTI. The README also documents broad H5P support and optional media/translation integrations. Hub discovery is documented, but its search implementation was not sampled; the graph therefore omits internal search wiring.
Main entry points: H5PController.php H5P workflows · ContentController.php Hub content use · H5PCerpusStorage.php H5P storage · ContentVersion.php Versions and variants
Components 20
Authoring
- H5P workflows
sourcecode/apis/contentauthor/app/Http/Controllers/H5PController.php - Save validation
sourcecode/apis/contentauthor/app/Http/Requests/H5PStorageRequest.php
H5P Runtime
- H5P editor
sourcecode/apis/contentauthor/app/Libraries/H5P/EditorStorage.php - H5P storage
sourcecode/apis/contentauthor/app/Libraries/H5P/Storage/H5PCerpusStorage.php - H5P library database
sourcecode/apis/contentauthor/app/H5PLibrary.php
Content Lifecycle
- H5P resources
sourcecode/apis/contentauthor/app/H5PContent.php - Versions and variants
sourcecode/apis/contentauthor/app/ContentVersion.php - Version handling
sourcecode/apis/contentauthor/app/Listeners/H5P/HandleVersioning.php - License rules
sourcecode/apis/contentauthor/app/Rules/LicenseContent.php - Content database
sourcecode/apis/contentauthor/app/H5PContent.php
Hub and LTI
- Hub content use
sourcecode/hub/app/Http/Controllers/ContentController.php - Find and reuse
sourcecode/hub/app/Http/Controllers - Legacy LTI selection
sourcecode/hub/app/Http/Controllers/NdlaLegacy/SelectController.php
External Services
- Media adapters
sourcecode/apis/contentauthor/app/Libraries/H5P/Video/NDLAVideoAdapter.php - Translation adapters
sourcecode/apis/contentauthor/app/Libraries/H5P/TranslationServices/NynorobotAdapter.php
Other components
- Authors
- Learners and LMS
- Media APIs
- Translation API
- File storage
Connections 21
- Authors → H5P workflows: creates or edits
- H5P workflows → Save validation: validates saves
- H5P workflows → H5P editor: configures editor
- H5P workflows → H5P resources: persists resource
- H5P storage → Content database: stores resource data
- H5P storage → H5P library database: manages libraries
- H5P storage → File storage: reads and writes files
- H5P editor → H5P library database: loads library metadata
- H5P resources → Versions and variants: has versions
- Versions and variants → Version handling: dispatches lifecycle events
- H5P workflows → License rules: checks license
- H5P workflows → Media adapters: requests media
- Media adapters → Media APIs: calls media APIs
- H5P workflows → Translation adapters: requests translation
- Translation adapters → Translation API: calls translation API
- Learners and LMS → Find and reuse: finds content
- Authors → Hub content use: shares or copies
- Find and reuse → Hub content use: opens or reuses
- Hub content use → Legacy LTI selection: selects for LMS
- Legacy LTI selection → Learners and LMS: returns LTI link
- Hub content use → Versions and variants: creates linked version