Skip to content

A library for parsing eLearning module configuration files and packages

License

LGPL-3.0, LGPL-3.0 licenses found

Licenses found

LGPL-3.0
LICENSE
LGPL-3.0
COPYING.LESSER
Notifications You must be signed in to change notification settings

jcputney/elearning-module-parser

eLearning Module Parser

Build Status License: LGPL-3.0 Version

A robust, modular library for parsing and validating eLearning module manifests in industry-standard formats such as SCORM 1.2, SCORM 2004, AICC, and cmi5. This library is designed to help developers integrate eLearning content into Learning Management Systems (LMS) and other platforms.


Features

  • Manifest Parsing: Supports SCORM 1.2, SCORM 2004, AICC, and cmi5 manifest file parsing.
  • Validation: Detects missing or invalid files and ensures compliance with the specifications.
  • Lightweight: Minimal dependencies with optional support for AWS S3 (SDK v1 or v2) module handling.

Getting Started

Prerequisites

  • Java 17 or higher
  • Gradle 7.0+ (or Maven equivalent)

Installation

Gradle

implementation("dev.jcputney:elearning-module-parser:0.0.5")

Maven

<dependency>
  <groupId>dev.jcputney</groupId>
  <artifactId>elearning-module-parser</artifactId>
  <version>0.0.5</version>
</dependency>

Usage

Parsing SCORM 2004 Module

import dev.jcputney.elearning.parser.parsers.Scorm2004Parser;
import dev.jcputney.elearning.parser.api.LocalFileAccess;
import dev.jcputney.elearning.parser.output.ModuleMetadata;

public class Main {
  public static void main(String[] args) {
    String modulePath = "path/to/scorm2004/module";
    Scorm2004Parser parser = new Scorm2004Parser(new LocalFileAccess());
    ModuleMetadata metadata = parser.parse(modulePath);
    System.out.println("Title: " + metadata.getTitle());
    System.out.println("Version: " + metadata.getVersion());
  }
}

Parsing a cmi5 Module

import dev.jcputney.elearning.parser.parsers.Cmi5Parser;
import dev.jcputney.elearning.parser.api.ZipFileAccess;

public class Main {
  public static void main(String[] args) {
    String modulePath = "path/to/cmi5/";
    Cmi5Parser parser = new Cmi5Parser(new ZipFileAccess(modulePath + "module.zip"));
    ModuleMetadata metadata = parser.parse(modulePath);

    System.out.println("Course ID: " + metadata.getIdentifier());
  }
}

Supported Formats

Format Features Status
SCORM 1.2 Manifest parsing, resource validation 🚧 In Progress
SCORM 2004 Manifest parsing (all editions), sequencing, objectives 🚧 In Progress
AICC INI-based parsing for .crs, .des, .au, .cst, prerequisites, assignable units 🚧 In Progress
cmi5 XML-based manifest parsing, objectives, blocks, and assignable units 🚧 In Progress

Documentation


Development

Build & Test

Clone the repository:

git clone https://github.dev/jcputney/elearning-module-parser.git
cd elearning-module-parser

Build the project:

mvn clean compile

Run tests:

mvn test

Running Example Modules

You can find sample eLearning modules in the resources/modules directory for testing.


Contributing

We welcome contributions! Please read our Contributing Guidelines and Code of Conduct for details on how to participate in this project.


License

This project is licensed under the LGPL v3.0 License. See the LICENSE file for details.

About

A library for parsing eLearning module configuration files and packages

Resources

License

LGPL-3.0, LGPL-3.0 licenses found

Licenses found

LGPL-3.0
LICENSE
LGPL-3.0
COPYING.LESSER

Code of conduct

Stars

Watchers

Forks

Packages

 
 
 

Languages