Skip to content

Latest commit

 

History

History
76 lines (52 loc) · 4 KB

README.md

File metadata and controls

76 lines (52 loc) · 4 KB

CircleCI Pylint Coverage PyPi License Code style: black

Integreat Django CMS

Logo Integreat - The mobile guide for newcomers. Multilingual. Offline. Open Source.

This content management system helps local integration experts to provide multilingual information for newcomers.

TL;DR

Prerequisites

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

  • npm version 7 or higher
  • nodejs version 12 or higher
  • python3.9 (Debian-based distributions) / python39 (Arch-based distributions)
  • python3.7-dev (only on Ubuntu)
  • python3-pip (Debian-based distributions) / python-pip (Arch-based distributions)
  • pipenv for python3 (if no recent version is packaged for your distro, use pip3 install pipenv --user)
  • gettext to use the translation features
  • Either postgresql or docker to run a local database server

Installation

git clone [email protected]:digitalfabrik/integreat-cms.git
cd integreat-cms
./dev-tools/install.sh

Run development server

./dev-tools/run.sh
  • Go to your browser and open the URL http://localhost:8000
  • Default user is "root" with password "root1234".

Documentation

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

📓 https://digitalfabrik.github.io/integreat-cms/

Alternatively, you can generate it yourself using the dev-tools/generate_documentation.sh script.

Project Architecture / Reference

  • Integreat CMS: The main package of the integreat-cms with the following sub-packages:
    • API: This app provides wrapper functions around all API routes and classes mapping the cms models to API JSON responses.
    • CMS: This app contains all database models, views, forms and templates forming the content management system for backend users.
    • Core: This is the project’s main app which contains all configuration files.
    • Firebase API: This app provides wrapper functions around the Firebase API to send push notifications.
    • GVZ API: This app provides wrapper functions around our Gemeindeverzeichnis API to automatically import coordinates and region aliases.
    • Nominatim API: This app provides wrapper functions around our Nominatim API to automatically import region bounding boxes.
    • Sitemap: This app dynamically generates a sitemap.xml for the webapp.
    • SUMM.AI API: This app provides wrapper functions around the SUMM.AI API for automatic translations into Easy German.
    • XLIFF: This app allows (de-)serialization of translations from/to XLIFF (XML Localization Interchange File Format) for standardised exchange with translation agencies.
  • Tests: This app contains all tests to verify integreat-cms works as intended

To better understand the overall intention it might also be helpful to look at the wiki for municipalities (GER) that teaches how to use our CMS.

License

This project is licensed under the Apache 2.0 License, see LICENSE.txt

All files in ./integreat_cms/static/src/logos/ are not covered by this license and may only be used with specific permission of the copyright holder.