Metadata-Version: 2.4
Name: curriculum-curator
Version: 0.2.1
Summary: An educational content workflow orchestration tool for LLM integration
Author-email: Curriculum Curator Team <example@example.com>
License-Expression: MIT
Project-URL: Homepage, https://github.com/teaching-repositories/curriculum-curator
Project-URL: Bug Tracker, https://github.com/teaching-repositories/curriculum-curator/issues
Project-URL: Documentation, https://github.com/teaching-repositories/curriculum-curator/blob/main/docs
Classifier: Programming Language :: Python :: 3
Classifier: Operating System :: OS Independent
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Education
Classifier: Topic :: Education
Classifier: Topic :: Text Processing
Requires-Python: >=3.9
Description-Content-Type: text/markdown
License-File: LICENSE
License-File: AUTHORS.md
Requires-Dist: python-frontmatter>=1.0.0
Requires-Dist: pyyaml>=6.0
Requires-Dist: structlog>=23.1.0
Requires-Dist: litellm>=1.0.0
Requires-Dist: backoff>=2.2.1
Requires-Dist: scikit-learn>=1.2.0
Requires-Dist: typer>=0.9.0
Requires-Dist: rich>=13.3.0
Requires-Dist: markdown>=3.4.0
Requires-Dist: beautifulsoup4>=4.12.0
Requires-Dist: pydantic>=2.5.0
Requires-Dist: sentence-transformers>=2.2.2
Requires-Dist: textstat>=0.7.3
Provides-Extra: dev
Requires-Dist: pytest>=7.3.1; extra == "dev"
Requires-Dist: pytest-asyncio>=0.21.0; extra == "dev"
Requires-Dist: pytest-cov>=4.1.0; extra == "dev"
Requires-Dist: ruff>=0.0.262; extra == "dev"
Requires-Dist: mypy>=1.8.0; extra == "dev"
Requires-Dist: pre-commit>=3.6.0; extra == "dev"
Requires-Dist: isort>=5.13.2; extra == "dev"
Requires-Dist: mkdocs>=1.4.3; extra == "dev"
Requires-Dist: mkdocs-material>=9.1.8; extra == "dev"
Requires-Dist: twine>=6.0.1; extra == "dev"
Requires-Dist: build>=0.10.0; extra == "dev"
Provides-Extra: web
Requires-Dist: fasthtml>=0.2.0; extra == "web"
Dynamic: license-file

# Curriculum Curator

An educational content workflow orchestration tool designed to streamline the creation of comprehensive curriculum materials through Large Language Model (LLM) integration.

## Core Philosophy

Curriculum Curator is designed around two fundamental principles:

1. **Prompt-centric Content Generation**: All content is derived from well-designed prompts managed within the system.
2. **Workflow-driven Process**: Content creation follows configurable, automated educational workflows.

## Features

- **Prompt Registry**: Manage a collection of prompts with metadata using YAML front matter
- **LLM Integration**: Support for multiple providers (Anthropic, OpenAI, Ollama, Groq, Gemini) via LiteLLM
- **Content Transformation**: Parse and structure raw LLM outputs in various formats
- **Workflow Engine**: Orchestrate the sequence of content generation, validation, and remediation steps
- **Interactive Mode**: Complete menu-driven interface for all operations
- **Interactive Workflow Builder**: Create and edit workflows through a menu-driven interface
- **Interactive Prompt Editor**: Create and edit prompts with templates and front matter validation
- **Validation Framework**: Ensure content quality and consistency through a suite of validators
- **Multiple Output Formats**: Generate HTML, PDF, DOCX, and presentation slide formats
- **Cost Tracking**: Monitor token usage and associated costs
- **Session Management**: Save, resume, and analyze workflow sessions

## Installation

```bash
pip install curriculum-curator
```

## Quick Start

```bash
# Initialize a new project with example prompts
curator init

# Run the minimal educational module workflow
curator run minimal_educational_module \
  --var course_title="Introduction to Python Programming" \
  --var course_slug="intro-python" \
  --var module_id="module1" \
  --var num_modules=4 \
  --var "learning_objectives=Understand Python basics;Write simple programs"

# Or run the standard course generation workflow
curator run standard_course --var course_title="Introduction to Python Programming"

# List available prompts
curator list-prompts

# List available workflows
curator list-workflows

# Create a new workflow with the interactive builder
curator build-workflow my-workflow.yaml

# Edit prompts interactively with templates
curator edit-prompt

# Launch the fully interactive mode for all operations
curator interactive

# List available validators and remediators
curator list-validators
curator list-remediators
```

## MVP Workflow Ready!

We've completed our first MVP workflow that generates a complete educational module with:

- Course overview
- Module outline
- Lecture content with validation and remediation
- Worksheet with practice activities
- Assessment with various question types
- Instructor guide with teaching suggestions and answer keys

This workflow is fully configuration-driven and validates against a robust schema to catch errors early. See our guides for more details:

- [MVP Workflow Guide](docs/guides/mvp-workflow.md) - Details on using and extending the workflow
- [Workflow Validation Guide](docs/guides/workflow-validation.md) - How to validate workflow configurations
- [Workflow Builder Guide](docs/guides/workflow-builder.md) - How to use the interactive workflow builder

## Development

### Setting up the development environment

```bash
# Clone the repository
git clone https://github.com/teaching-repositories/curriculum-curator.git
cd curriculum-curator

# Create and activate a virtual environment
python -m venv venv
source venv/bin/activate  # On Windows: venv\Scripts\activate

# Install development dependencies
pip install -e ".[dev]"

# Install pre-commit hooks
pip install pre-commit
pre-commit install
```

### Running tests

```bash
# Run all tests
pytest

# Run tests with coverage report
pytest --cov=curriculum_curator
```

## Documentation

For detailed documentation, visit the [Curriculum Curator Docs](https://example.com/docs).

## License

MIT License
