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.1.0.tar.gz (130.4 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.1.0-py3-none-any.whl (109.6 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: abet_syllabus-1.1.0.tar.gz
  • Upload date:
  • Size: 130.4 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.1.0.tar.gz
Algorithm Hash digest
SHA256 81ea9c1434bd3c861449aba875be0507f225cdbff6a153347d091cf3174d728a
MD5 4f570856fca36e0c1531127ffe5bca7b
BLAKE2b-256 0a2c62cdf1a5cfc2510fe73d772ce96bca73829b4e7da7728f97108856f81ca6

See more details on using hashes here.

File details

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

File metadata

  • Download URL: abet_syllabus-1.1.0-py3-none-any.whl
  • Upload date:
  • Size: 109.6 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.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 7f232b67767ad53691c5d2bf9107c20206063893497f42f1834a8fc4a71f8a81
MD5 1bade157acde159c0df5ef1fae56a0c1
BLAKE2b-256 fc3db953e7d47790197ecea68e47a512af11085635ab0ee4890c466dbbfb77c9

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