django-sodar-core

SODAR Core: A Django-based framework for building scientific data management web apps

https://github.com/bihealth/sodar-core

Science Score: 49.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 9 DOI reference(s) in README
  • Academic publication links
    Links to: zenodo.org
  • Committers with academic emails
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (16.0%) to scientific vocabulary
Last synced: 7 months ago · JSON representation

Repository

SODAR Core: A Django-based framework for building scientific data management web apps

Basic Info
  • Host: GitHub
  • Owner: bihealth
  • License: mit
  • Language: Python
  • Default Branch: main
  • Homepage:
  • Size: 9.03 MB
Statistics
  • Stars: 10
  • Watchers: 3
  • Forks: 1
  • Open Issues: 262
  • Releases: 63
Created almost 4 years ago · Last pushed 8 months ago
Metadata Files
Readme Changelog Contributing License Code of conduct Authors Codemeta

README.rst

SODAR Core
^^^^^^^^^^

.. |b1| image:: https://badge.fury.io/py/django-sodar-core.svg
    :target: https://badge.fury.io/py/django-sodar-core

.. |b2| image:: https://github.com/bihealth/sodar-core/actions/workflows/build.yml/badge.svg
    :target: https://github.com/bihealth/sodar-core/actions?query=workflow%3ABuild

.. |b3| image:: https://coveralls.io/repos/github/bihealth/sodar-core/badge.svg?branch=main
    :target: https://coveralls.io/github/bihealth/sodar-core?branch=main

.. |b4| image:: https://img.shields.io/badge/License-MIT-green.svg
    :target: https://opensource.org/licenses/MIT

.. |b5| image:: https://img.shields.io/badge/code%20style-black-000000.svg
    :target: https://github.com/ambv/black

.. |b6| image:: https://readthedocs.org/projects/sodar-core/badge/?version=latest
    :target: https://sodar-core.readthedocs.io/en/latest/?badge=latest
    :alt: Documentation Status

.. |b7| image:: https://zenodo.org/badge/DOI/10.5281/zenodo.4269346.svg
    :target: https://doi.org/10.5281/zenodo.4269346

|b1| |b2| |b3| |b4| |b5| |b6| |b7|

SODAR Core is a framework for Django web application development.

It was conceived to facilitate the creation of scientific data management and
analysis web applications, but can be useful in other contexts as well.
In that it is similar to the CMS or ecommerce frameworks that you can find
`Awesome Django List `__ but you will find the components/libraries provided in SODAR Core are more generic and in this reflecting the broader range of applications that we target.


Examples / See It In Action
===========================

SODAR Core is a framework for developing Django web applications. The following
data management and analysis web applications are based on SODAR Core and have
been made available as open source:

- **SODAR** is the system for Omics data access and retrieval. It is used to
  model study metadata and manage associated data files in different Omics
  research projects. SODAR Core was created by separating re-usable research
  project management components from the SODAR project. The source code of SODAR
  can be found on `github.com/bihealth/sodar-server `__.
- **VarFish** is a web-based tool for the analysis of variants.
  It showcases how to build a complex data warehousing and data analysis web
  appliction using SODAR Core.
  More details are described in the `NAR Web Server Issue publication (doi:10.1093/nar/gkaa241) `__.
  The source code can be found on `github.com/varfish-org/varfish-server `__.
  A demo is available at `varfish-demo.bihealth.org `__.
- **Digestiflow** is a web-based data system for the management and
  demultiplexing of Illumina Flow Cells. It further implements various tools for
  sanity checking Illumina sample sheets and quality control (e.g., comparing
  barcode adapter sequence and actual sequence present in the sequencer output).
  You can find out more in our publication in `Bioinformatics (doi:10.1093/bioinformatics/btz850) `__.
  The source code can be found on `github.com/bihealth/digestiflow-server `__.
- **Kiosc** is a web application that allows to build scheduler Docker
  containers for "data science" apps and dashboards.
  You can find the source code on `github.com/bihealth/kiosc `__.


Quickstart
==========

SODAR Core can only be used from within Django projects. The easiest way to
start out is following the `For the Impatient
`__
section in our documentation.


Introduction
============

The SODAR Core repository containes reusable and non-domain-specific apps making
up the base of the SODAR system. These apps can be used for any Django
application which wants to make use of the following features:

- Project-based user access control
- Dynamic app content management
- Advanced project activity logging
- Small file uploading and browsing
- Managing server-side background jobs
- Caching and aggregation of data from external services
- Tracking site information and statistics
- API token management

This repository provides the following installable Django apps:

- **projectroles**: Base app for project access management and
  dynamic app content management. All other apps require the integration of
  projectroles.
- **adminalerts**: Site app for displaying site-wide messages to all users.
- **appalerts**: Site app and backend for raising alerts to users from apps.
- **bgjobs**: Project app for managing background jobs.
- **filesfolders**: Storage and management of small files.
- **siteinfo**: Site app for displaying site information and statistics for
  administrators.
- **sodarcache**: Generic caching and aggregation of data referring to external
  services.
- **timeline**: Project app for logging and viewing project-related activity.
- **tokens**: Token management for API access.
- **userprofile**: Site app for viewing user profiles.

Also included are resources and examples for developing SODAR compatible apps.


Installation
============

The ``django-sodar-core`` package can be installed into your Django project
from PyPI as follows. Note that it is strongly recommended to freeze the
dependency to a specific version, as this package is under active development
and breaking changes are possible.

.. code-block:: console

    pip install django-sodar-core==1.2.1

For installing a development version you can point your dependency to a specific
commit ID in GitHub. Note that these versions may not be stable.

.. code-block:: console

    pip install -e git+https://github.com/bihealth/sodar-core.git@xxxxxxxxxxxxx#egg=django-sodar-core --use-pep517

Please note that This package installs a collection of Django apps to be used in
a Django web site project. See
`SODAR Core documentation `_
for detailed documentation on use, integration and development.


Repository
==========

The branches of the SODAR Core repository are organized as follows:

``main``
    The latest stable release.
``dev``
    The current development branch. Most recent features go here, but stability
    is not guaranteed. Pull requests should always be based on this branch.

When including SODAR Core in your Django project, it is highly recommended to
freeze your dependency to a specific release tag or commit ID. The project is
under development and breaking changes may be introduced frequently.

Owner

  • Name: Berlin Institute of Health
  • Login: bihealth
  • Kind: organization

BIH Core Unit Bioinformatics & BIH HPC IT

CodeMeta (codemeta.json)

{
  "@context": "https://raw.githubusercontent.com/mbjones/codemeta/master/codemeta.jsonld",
  "@type": "Code",
  "author": [
    {
      "@id": "https://orcid.org/0000-0002-4180-8810",
      "@type": "Person",
      "email": "mikko.nieminen@bih-charite.de",
      "name": "Mikko Nieminen",
      "affiliation": "Berlin Institute of Health, Anna-Louisa-Karsch-Strae 2, 10178 Berlin"
    },
    {
      "@id": "https://orcid.org/0000-0002-8686-2941",
      "@type": "Person",
      "email": "oliver.stolpe@bih-charite.de",
      "name": "Oliver Stolpe",
      "affiliation": "Berlin Institute of Health, Anna-Louisa-Karsch-Strae 2, 10178 Berlin"
    },
    {
      "@id": "https://orcid.org/0000-0002-1332-4894",
      "@type": "Person",
      "email": "franziska.schumann@fu-berlin.de",
      "name": "Franziska Schumann",
      "affiliation": "Berlin Institute of Health, Anna-Louisa-Karsch-Strae 2, 10178 Berlin"
    },
    {
      "@id": "https://orcid.org/0000-0002-3051-1763",
      "@type": "Person",
      "email": "manuel.holtgrewe@bih-charite.de",
      "name": "Manuel Holtgrewe",
      "affiliation": "Berlin Institute of Health, Anna-Louisa-Karsch-Strae 2, 10178 Berlin"
    },
    {
      "@id": "https://orcid.org/0000-0002-3284-0632",
      "@type": "Person",
      "email": "dieter.beule@bih-charite.de",
      "name": "Dieter Beule",
      "affiliation": "Berlin Institute of Health, Anna-Louisa-Karsch-Strae 2, 10178 Berlin"
    }
  ],
  "identifier": "https://doi.org/10.5281/zenodo.4269346",
  "codeRepository": "https://github.com/bihealth/sodar-core",
  "datePublished": "2025-10-10",
  "dateModified": "2025-10-10",
  "dateCreated": "2019-06-26",
  "description": "SODAR Core: A Django-based framework for scientific data management and analysis web apps",
  "keywords": "Python, Django, scientific data managmenent, software library",
  "license": "MIT",
  "title": "SODAR Core",
  "version": "v1.2.4"
}

Committers

Last synced: about 3 years ago

All Time
  • Total Commits: 987
  • Total Committers: 11
  • Avg Commits per committer: 89.727
  • Development Distribution Score (DDS): 0.237
Top Committers
Name Email Commits
mikko.nieminen m****n@b****e 753
Mikko Nieminen m****n@b****e 150
Manuel Holtgrewe m****e@b****e 22
Oliver Stolpe o****e@b****e 22
Tim Garrels t****s@m****e 16
Hendrik Bomhardt h****t@m****e 9
Dima Gromyko g****m@g****m 7
Franziska Schumann f****n@b****e 3
Olga Botvinnik o****k@g****m 2
tim.garrels t****s@g****e 2
Raunak Agarwal r****l@c****g 1
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 7 months ago

All Time
  • Total issues: 561
  • Total pull requests: 53
  • Average time to close issues: 4 months
  • Average time to close pull requests: 13 days
  • Total issue authors: 5
  • Total pull request authors: 3
  • Average comments per issue: 0.98
  • Average comments per pull request: 0.57
  • Merged pull requests: 42
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 185
  • Pull requests: 11
  • Average time to close issues: 13 days
  • Average time to close pull requests: 40 minutes
  • Issue authors: 2
  • Pull request authors: 1
  • Average comments per issue: 0.75
  • Average comments per pull request: 0.0
  • Merged pull requests: 8
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • mikkonie (571)
  • holtgrewe (7)
  • gromdimon (7)
  • sellth (6)
  • january3 (2)
  • stolpeo (2)
  • ericblanc20 (1)
Pull Request Authors
  • gromdimon (41)
  • mikkonie (27)
  • holtgrewe (3)
Top Labels
Issue Labels
app: projectroles (371) feature (253) bug (134) internal (107) environment (87) cosmetic (78) breaking (52) app: timeline (44) tbd (43) documentation (40) app: adminalerts (15) app: userprofile (14) low priority (14) wontfix (14) app: filesfolders (13) app: sodarcache (11) ongoing (8) app: siteinfo (8) app: appalerts (7) app: bgjobs (7) high priority (6) app: tokens (5) future (3) duplicate (2) help wanted (1) postponed (1)
Pull Request Labels
internal (3) app: projectroles (3) cosmetic (2) app: timeline (2) bug (1) feature (1)

Packages

  • Total packages: 1
  • Total downloads:
    • pypi 273 last-month
  • Total dependent packages: 0
  • Total dependent repositories: 4
  • Total versions: 37
  • Total maintainers: 1
pypi.org: django-sodar-core

SODAR Core framework and project management apps

  • Versions: 37
  • Dependent Packages: 0
  • Dependent Repositories: 4
  • Downloads: 273 Last month
Rankings
Dependent repos count: 7.5%
Downloads: 8.7%
Dependent packages count: 10.0%
Average: 13.8%
Stargazers count: 20.3%
Forks count: 22.6%
Maintainers (1)
Last synced: 8 months ago

Dependencies

requirements/base.txt pypi
  • Sphinx ==4.3.2
  • argon2-cffi >=21.3.0,<21.4
  • awesome-slugify >=1.6.5,<1.7
  • celery >=5.2.3,<5.3
  • django >=3.2.14,<3.3
  • django-autocomplete-light >=3.8.2,<3.9
  • django-crispy-forms >=1.13.0,<1.14
  • django-db-file-storage ==0.5.5
  • django-docs ==0.3.1
  • django-environ >=0.8.1,<0.9
  • django-iconify ==0.1.1
  • django-markupfield >=2.0.1,<2.1
  • django-model-utils >=4.2.0,<4.3
  • django-pagedown >=2.2.1,<2.3
  • django-rest-knox >=4.1.0,<4.2
  • django-saml2-auth-ai >=2.1.6,<2.2
  • djangorestframework >=3.13.1,<3.14
  • docutils ==0.17.1
  • markdown ==3.3.4
  • mistune >=2.0.1,<2.1
  • psycopg2-binary >=2.9.3,<2.10
  • pytz >=2021.3
  • rules >=3.0,<3.1
  • setuptools ==59.6.0
  • sphinx-rtd-theme ==1.0.0
  • versioneer ==0.21
  • wheel ==0.37.1
requirements/ldap.txt pypi
  • django-auth-ldap ==4.0.0
  • python-ldap ==3.4.0
requirements/local.txt pypi
  • Werkzeug ==2.0.2
  • django-debug-toolbar >=3.2.4,<3.3
  • django-extensions ==3.1.5
  • ipdb >=0.13.9,<0.14
requirements/test.txt pypi
  • beautifulsoup4 ==4.10.0 test
  • black ==22.3.0 test
  • codacy-coverage ==1.3.11 test
  • coverage ==6.2 test
  • django-coverage-plugin ==2.0.2 test
  • django-test-plus ==2.2.0 test
  • factory-boy ==3.2.1 test
  • flake8 ==4.0.1 test
  • pytest-django ==4.5.2 test
  • pytest-sugar ==0.9.4 test
  • selenium ==4.1.0 test
  • tblib ==1.7.0 test