Skip to main content

CLI tool to generate ABET-compliant course syllabi from university course specifications

Project description

ABET Syllabus Generator

CLI tool that converts university course specification files (PDF/DOCX) into standardized ABET-compliant course syllabi. Designed for KFUPM but adaptable to any institution.

Features

  • Extract text and tables from PDF and DOCX course specifications
  • Parse two input formats: standard KFUPM PDF (sections A-H) and CRF2 DOCX
  • Store all extracted data in a central SQLite database
  • Map Course Learning Outcomes (CLOs) to Program Learning Outcomes (PLOs) using AI
  • Generate ABET syllabus documents (DOCX) from a template
  • Export data to CSV/JSON for reporting
  • Validate data quality before generation
  • Interactive mode with folder browsing and smart defaults

Installation

pip install abet-syllabus

With AI mapping support (Anthropic or OpenRouter):

pip install abet-syllabus[ai]

For development:

git clone https://github.com/yourusername/abet-syllabus.git
cd abet-syllabus
pip install -e ".[ai,dev]"

Quick Start

Full pipeline (one command)

abet-syllabus run resources/course-descriptions/math/ -p MATH -t T252 -o ./output/

Interactive mode

abet-syllabus run

Browses folders, asks for program and term interactively.

Step by step

# 1. Ingest course files
abet-syllabus ingest resources/course-descriptions/math/ -p MATH -r

# 2. Load PLO definitions
abet-syllabus ingest-plos resources/plos/plos.csv

# 3. (Optional) AI-powered CLO-PLO mapping
export OPENROUTER_API_KEY="your-key"  # or ANTHROPIC_API_KEY
abet-syllabus map --all -p MATH

# 4. Generate ABET syllabi
abet-syllabus generate --all -p MATH -t T252 -o ./output/

Commands

Command Description
run Full pipeline: ingest, (optionally map), generate
extract Raw text/table extraction from PDF/DOCX
parse Structured field extraction
ingest Extract, parse, and store in database
ingest-plos Load PLO definitions from CSV
map AI-powered CLO-PLO mapping
generate Produce ABET syllabus DOCX from database
query Inspect database (courses, CLOs, stats, coverage, SQL)
export Export to CSV/JSON
status Database overview
validate Data quality check

AI Mapping

Supports two AI providers for CLO-PLO mapping:

  • OpenRouter (multi-model gateway): export OPENROUTER_API_KEY="your-key"
  • Anthropic (direct): export ANTHROPIC_API_KEY="your-key"

The provider is auto-detected from available API keys. Use --provider and --model flags for control:

abet-syllabus map "MATH 101" -p MATH --provider openrouter --model google/gemini-2.5-flash

Input Formats

  • Format A (PDF) - Standard KFUPM "COURSE SPECIFICATIONS" with sections A-H
  • Format B (DOCX) - CRF2 "COURSE SPECIFICATIONS" with structured tables

Configuration

Optional YAML config file (abet_syllabus.yaml):

db_path: abet_syllabus.db
template_path: resources/templates/ABETSyllabusTemplate.docx
output_dir: ./output
log_file: abet_syllabus.log

Requirements

  • Python 3.11+
  • Dependencies: pdfplumber, python-docx, PyYAML, defusedxml
  • Optional: anthropic (for AI mapping), docx2pdf (for PDF output)

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

abet_syllabus-1.0.0.tar.gz (99.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

abet_syllabus-1.0.0-py3-none-any.whl (84.2 kB view details)

Uploaded Python 3

File details

Details for the file abet_syllabus-1.0.0.tar.gz.

File metadata

  • Download URL: abet_syllabus-1.0.0.tar.gz
  • Upload date:
  • Size: 99.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.14

File hashes

Hashes for abet_syllabus-1.0.0.tar.gz
Algorithm Hash digest
SHA256 cffc18da2948f41495e4070a7efa6c79580c5cf323406d78582ebd15e0fa1db6
MD5 6f18426e1e3d52f347402c1d60a8e5b2
BLAKE2b-256 b14018626efe9e34d18a62fa335fb49cb76afb360ceb98a0198496dc0197a3c4

See more details on using hashes here.

File details

Details for the file abet_syllabus-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: abet_syllabus-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 84.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.14

File hashes

Hashes for abet_syllabus-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 bb9bb73f45dc71c67c7ea9241061460db9e35c80fdc14db0ce7c4690a0ae8361
MD5 d08c98907ee6ec5c14caddc622fbbffd
BLAKE2b-256 4d72810fa7ea5cdc93b4dc95e2c0778d3d86ba8b2615ea77507fc2bc249d95d3

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page