Metadata-Version: 2.4
Name: iil-learnfw
Version: 0.4.0
Summary: Django Learning Platform Framework — Courses, Quizzes, Certificates, Gamification, SCORM
Author-email: Achim Dehnert <achim@dehnert.com>
License: MIT
Keywords: certificates,courses,django,gamification,learning,lms,multi-tenant,quiz,scorm
Classifier: Development Status :: 3 - Alpha
Classifier: Framework :: Django :: 5.0
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Topic :: Education
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Requires-Python: >=3.11
Requires-Dist: django<6.0,>=5.0
Provides-Extra: all
Requires-Dist: django-tenancy>=0.2; extra == 'all'
Requires-Dist: djangorestframework>=3.15; extra == 'all'
Requires-Dist: drf-spectacular>=0.27; extra == 'all'
Requires-Dist: httpx>=0.27; extra == 'all'
Requires-Dist: lxml>=5.0; extra == 'all'
Requires-Dist: markdown>=3.6; extra == 'all'
Requires-Dist: pymdown-extensions>=10; extra == 'all'
Requires-Dist: python-pptx>=1.0; extra == 'all'
Requires-Dist: qrcode>=7; extra == 'all'
Requires-Dist: weasyprint>=62; extra == 'all'
Provides-Extra: api
Requires-Dist: djangorestframework>=3.15; extra == 'api'
Requires-Dist: drf-spectacular>=0.27; extra == 'api'
Provides-Extra: certificates
Requires-Dist: qrcode>=7; extra == 'certificates'
Requires-Dist: weasyprint>=62; extra == 'certificates'
Provides-Extra: dev
Requires-Dist: bandit; extra == 'dev'
Requires-Dist: djangorestframework>=3.15; extra == 'dev'
Requires-Dist: hatch; extra == 'dev'
Requires-Dist: iil-testkit>=0.1; extra == 'dev'
Requires-Dist: pytest-asyncio>=0.23; extra == 'dev'
Requires-Dist: pytest-django>=4.8; extra == 'dev'
Requires-Dist: pytest>=8.0; extra == 'dev'
Requires-Dist: ruff; extra == 'dev'
Provides-Extra: grading
Requires-Dist: httpx>=0.27; extra == 'grading'
Provides-Extra: markdown
Requires-Dist: markdown>=3.6; extra == 'markdown'
Requires-Dist: pymdown-extensions>=10; extra == 'markdown'
Provides-Extra: pptx
Requires-Dist: python-pptx>=1.0; extra == 'pptx'
Provides-Extra: scorm
Requires-Dist: lxml>=5.0; extra == 'scorm'
Provides-Extra: tenancy
Requires-Dist: django-tenancy>=0.2; extra == 'tenancy'
Description-Content-Type: text/markdown

# iil-learnfw

Django Learning Platform Framework — Courses, Quizzes, Certificates, Gamification, SCORM.

Part of the [IIL Platform](https://github.com/achimdehnert/platform) ecosystem.

## Architecture Decision

- **ADR-139**: Package design, models, services, API
- **ADR-140**: Learn-Hub (central deployment using this package)
- **ADR-137**: Multi-Tenancy (TenantManager, RLS)

## Installation

```bash
# Minimal
pip install iil-learnfw

# All extras
pip install "iil-learnfw[all]"

# Specific extras
pip install "iil-learnfw[api,tenancy,certificates]"
```

## Quick Start

```python
# settings.py
INSTALLED_APPS = [
    "iil_learnfw",
    ...
]

IIL_LEARNFW = {
    "TENANT_AWARE": True,
    "AUTHORING_ENABLED": True,
    "ENROLLMENT_MODE": "self_enroll",
}
```

```python
# urls.py
from django.urls import include, path

urlpatterns = [
    path("schulungen/", include("iil_learnfw.urls")),
]
```

## Extras

| Extra | Dependencies | Features |
|---|---|---|
| `api` | djangorestframework, drf-spectacular | REST API + OpenAPI docs |
| `tenancy` | django-tenancy | Multi-tenant support (ADR-137) |
| `certificates` | weasyprint, qrcode | PDF certificates with QR verification |
| `pptx` | python-pptx | PPTX slide import, auto-split |
| `scorm` | lxml | SCORM 1.2/2004 import/export |
| `markdown` | markdown, pymdown-extensions | Markdown content rendering |
| `all` | All of the above | Full feature set |

## Modules

| Module | Responsibility |
|---|---|
| `iil_learnfw.courses` | Course → Chapter → Lesson, Categories, Enrollment |
| `iil_learnfw.content` | Content backends: Markdown, PDF, PPTX |
| `iil_learnfw.progress` | User progress tracking, completion |
| `iil_learnfw.assessments` | Quizzes, questions, attempts, scoring |
| `iil_learnfw.certificates` | PDF generation, verification URLs |
| `iil_learnfw.onboarding` | Mandatory courses, checklists |
| `iil_learnfw.gamification` | Points, badges, streaks, leaderboards |
| `iil_learnfw.scorm` | SCORM import/export |

## License

MIT
