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.3.tar.gz (124.3 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.3-py3-none-any.whl (106.8 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: abet_syllabus-1.0.3.tar.gz
  • Upload date:
  • Size: 124.3 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.3.tar.gz
Algorithm Hash digest
SHA256 57a1cc6c778f3ca743a31956934d2d127e57372463a672d1e120829a85a7f164
MD5 04976786ab9cb7bfb7eed130d3e9aadc
BLAKE2b-256 dcd1faa12114d7f4ccd58c8e4a8f78a9b2e1ddbf6c61e4a889a661af1a3230bd

See more details on using hashes here.

File details

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

File metadata

  • Download URL: abet_syllabus-1.0.3-py3-none-any.whl
  • Upload date:
  • Size: 106.8 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.3-py3-none-any.whl
Algorithm Hash digest
SHA256 93d1c9545c02a8f475b38f7964821b74aad0abdbeea395b4c080f3d734e7ab88
MD5 6f3b7f8f1c5678d8ebf25f1aba9fa167
BLAKE2b-256 95bb3fd75e0a6c207e1be37a6b0b3e20910be9b63f5fd8adf05b32218a2efa3c

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