OpenAtlas is developed with some standards in mind.

Open Source

Only open source libraries (e.g. jQuery) and open source software requirements (e.g. a PostgreSQL database) are used.
All non-code files should be open data, e.g. like the logo with CC BY-SA 4.0.
This guaranties that the application can be shared as open source (GPL 2) e.g. on GitHub.

If 3rd party software or media is used it is important to:
  • Check the license for compatibility
  • Store them in openatlas/static/vendor
  • Add a license file if available


Debian Packages

Although pip offers some advantages (e.g more current packages, usable for different installation environment) we prefer packages from the Debian repository.
Main reasons concern security, reliability and stability. Only exception are frontend libraries because they don't really affect server security.

Tests and Checks

Configuration file PyCharm
Tests tests/.coveragerc integrated Should cover all Python code using assertions. We aim for 100% coverage but some parts (e.g. mail functions) may be excluded with the # pragma: no cover option
PEP 8 integrated Style guide for Python code
Mypy mypy.ini plugin Mypy Optional static type checker for Python. Because used version can make a difference: we are using Mypy 0.812-1 (package from Debian bullseye)
Pylint .pylintrc plugin Pylint Checks for errors, coding standards and code smells. Debian package pylint3 (path=/usr/bin/pylint3)


  • We are using HTML 5 and the site should be validating correctly. Exceptions may be acceptable if (harmless) non valid HTML 5 is produced by 3rd party libraries.
  • For indentation we use 2 spaces (in contrast to 4 in Python) but this has to be rewritten in existing code which may take a while.


Of course we do our best to avoid them in the first place but if bugs in already released versions get apparent they always have the highest priority.

Updated by Alexander Watzinger 13 days ago · 41 revisions

Also available in: PDF HTML TXT