Metadata-Version: 2.4
Name: lunes-cms
Version: 2025.11.1
Summary: Content Management System for the Lunes App
Author-email: Tür an Tür – Digitalfabrik gGmbH <tech@integreat-app.de>
License-Expression: Apache-2.0
Project-URL: Homepage, https://lunes.app/
Project-URL: Source Code, https://github.com/digitalfabrik/lunes-cms
Project-URL: Issues, https://github.com/digitalfabrik/lunes-cms/issues
Project-URL: Release Notes, https://digitalfabrik.github.io/lunes-cms/release-notes.html
Project-URL: Documentation, https://digitalfabrik.github.io/lunes-cms/
Keywords: lunes,cms,django,e-learning,vocabulary,trainer,vocabulary-trainer,visual-vocabulary-trainer
Classifier: Development Status :: 5 - Production/Stable
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Framework :: Django
Classifier: Framework :: Django :: 5.1
Classifier: Operating System :: POSIX :: Linux
Classifier: Topic :: Internet :: WWW/HTTP :: Dynamic Content :: Content Management System
Classifier: Topic :: Internet :: WWW/HTTP :: WSGI :: Application
Classifier: Natural Language :: English
Classifier: Natural Language :: German
Requires-Python: >=3.11
Description-Content-Type: text/markdown
License-File: LICENSE
License-File: NOTICE.md
License-File: SECURITY.md
Requires-Dist: django
Requires-Dist: django-import-export
Requires-Dist: django-jazzmin
Requires-Dist: django-mptt
Requires-Dist: django-qr-code
Requires-Dist: djangorestframework
Requires-Dist: drf-spectacular
Requires-Dist: ipython
Requires-Dist: openai
Requires-Dist: pillow
Requires-Dist: psycopg2
Requires-Dist: pydub
Provides-Extra: dev
Requires-Dist: black; extra == "dev"
Requires-Dist: build; extra == "dev"
Requires-Dist: bumpver; extra == "dev"
Requires-Dist: pre-commit; extra == "dev"
Requires-Dist: pyjwt; extra == "dev"
Requires-Dist: pylint-django; extra == "dev"
Requires-Dist: pylint-runner; extra == "dev"
Requires-Dist: pytest-circleci-parallelized; extra == "dev"
Requires-Dist: pytest-cov; extra == "dev"
Requires-Dist: pytest-django; extra == "dev"
Requires-Dist: pytest-icdiff; extra == "dev"
Requires-Dist: pytest-xdist; extra == "dev"
Requires-Dist: shellcheck-py; extra == "dev"
Requires-Dist: sphinx; extra == "dev"
Requires-Dist: sphinx-rtd-theme; extra == "dev"
Requires-Dist: sphinx-last-updated-by-git; extra == "dev"
Requires-Dist: sphinxcontrib-django; extra == "dev"
Requires-Dist: twine; extra == "dev"
Requires-Dist: wheel; extra == "dev"
Provides-Extra: pinned
Requires-Dist: django==5.1.2; extra == "pinned"
Requires-Dist: django-import-export==4.3.13; extra == "pinned"
Requires-Dist: django-jazzmin==3.0.1; extra == "pinned"
Requires-Dist: django-mptt==0.18.0; extra == "pinned"
Requires-Dist: django-qr-code==4.2.0; extra == "pinned"
Requires-Dist: djangorestframework==3.16.1; extra == "pinned"
Requires-Dist: drf-spectacular==0.29.0; extra == "pinned"
Requires-Dist: ipython==9.6.0; extra == "pinned"
Requires-Dist: openai==2.6.1; extra == "pinned"
Requires-Dist: pillow==12.0.0; extra == "pinned"
Requires-Dist: psycopg2==2.9.11; extra == "pinned"
Requires-Dist: pydub==0.25.1; extra == "pinned"
Provides-Extra: dev-pinned
Requires-Dist: black==25.9.0; extra == "dev-pinned"
Requires-Dist: build<=1.3.0; extra == "dev-pinned"
Requires-Dist: bumpver==2025.1131; extra == "dev-pinned"
Requires-Dist: pre-commit==4.3.0; extra == "dev-pinned"
Requires-Dist: pyjwt==2.10.1; extra == "dev-pinned"
Requires-Dist: pylint-django==2.6.1; extra == "dev-pinned"
Requires-Dist: pylint-runner==0.7.0; extra == "dev-pinned"
Requires-Dist: pytest-circleci-parallelized==0.1.0; extra == "dev-pinned"
Requires-Dist: pytest-cov==7.0.0; extra == "dev-pinned"
Requires-Dist: pytest-django==4.11.1; extra == "dev-pinned"
Requires-Dist: pytest-icdiff==0.9; extra == "dev-pinned"
Requires-Dist: pytest-xdist==3.8.0; extra == "dev-pinned"
Requires-Dist: shellcheck-py==0.11.0.1; extra == "dev-pinned"
Requires-Dist: sphinx==8.2.3; extra == "dev-pinned"
Requires-Dist: sphinx-rtd-theme==3.0.2; extra == "dev-pinned"
Requires-Dist: sphinx-last-updated-by-git==0.3.8; extra == "dev-pinned"
Requires-Dist: sphinxcontrib-django==2.5; extra == "dev-pinned"
Requires-Dist: twine==6.2.0; extra == "dev-pinned"
Requires-Dist: wheel==0.45.1; extra == "dev-pinned"
Dynamic: license-file

[![CircleCI](https://circleci.com/gh/digitalfabrik/lunes-cms.svg?style=shield)](https://circleci.com/gh/digitalfabrik/lunes-cms)
![Coverage](https://img.shields.io/codeclimate/coverage/digitalfabrik/lunes-cms)
[![Documentation Status](https://readthedocs.org/projects/lunes-cms/badge/?version=latest)](https://lunes-cms.readthedocs.io/en/latest/?badge=latest)
[![License](https://img.shields.io/github/license/digitalfabrik/lunes-cms)](https://opensource.org/licenses/Apache-2.0)
[![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)
[![Pylint](https://img.shields.io/badge/pylint-10.00-brightgreen)](https://www.pylint.org/)

# Lunes CMS

[![Logo](https://lunes.tuerantuer.org/static/images/logo-lunes.svg)](https://www.lunes.app)

[Lunes - Vocabulary for your profession.](https://www.lunes.app)

This is the content management system for the vocabulary trainer app Lunes, which facilitates migrants to acquire technical and subject-specific vocabulary.

## TL;DR

### Prerequisites

Following packages are required before installing the project (install them with your package manager):

* python3.11 or greater
* python3-pip
* python3-venv
* ffmpeg
* libpq-dev
* [PostgreSQL](https://www.postgresql.org/) database server
* [Apache2](https://docs.djangoproject.com/en/3.2/howto/deployment/wsgi/modwsgi/) server with `mod_wsgi`

### Installation

```
pip install lunes-cms
```

## Documentation

For detailed instructions and the source code reference have a look at our documentation:

### https://lunes-cms.rtfd.io
