Welcome to the SODAR Core documentation!

SODAR Core is a framework for Django web applications development. It is primarily targeted towards project and data management in a scientific setting, but can also serve more general purposes where project-based data encapsulation is needed.

The framework provides a suite of Django apps that can be included on your website to enable project-based access control, dynamic content management, standardized UI and REST API as well as general-purpose apps for managing your projects.

SODAR Core is fully open source and made available under the permissive MIT license.

How to Read This Manual

There are two ways:

Front to Back

If you have the time and patience, reading the whole manual will teach you everything.

Jump Around (recommended)

Start with For the Impatient and/or User Stories, skim over the summary of each app, and explore what interests you most.

What SODAR Core Is and What It is Not

SODAR Core

  • is Django-based and you will need some knowledge about Django programming in Python for it to be useful,

  • provides you with libraries for developing your own applications.

SODAR Core

  • is NOT a ready-made web application,

  • is NOT for entry-level Python programmers (you will need intermediate Django knowledge; you probably do not want to base your first Django web application on SODAR Core).

What’s Inside SODAR Core

The main functionality offered by SODAR Core comes from the projectroles app, which provides user authentication, project management (including access control), and a plugin system for dynamic content management. Furthermore, SODAR Core comes with a number of built-in apps which can be enabled to activate additional functionality.

The full list of apps are shown in the table of contents. See also the SODAR Core Apps section for a summary of what each app does.

Highlights of application 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

What’s Inside This Documentation

Overview & Getting Started

This part aims at getting you an birds-eye view of SODAR Core and its usage.

SODAR Core Apps

This part documents each Django app that ships with SODAR. As a reminder, in Django development, apps are re-usable modules with code for supporting a certain use case.

Project Info

This part of the documentation provides meta information about the project and the full changelog.

What’s Not Inside This Documentation

You should know the following before this documentation is useful to you:

Python Programming

There’s tons of documentation on the internet but the official Python documentation is a good starting point as any.

Django Development

For learning about Django, head over to the official Django documentation.

HTML / Javascript / CSS / Bootstrap 4

Together with Django, SODAR Core provides a framework to plug in your own HTML and related front-end code. We assume that you have web development experience and in particular know your way around Bootstrap 4.

We’re using the Bootstrap 4 CSS framework and you can learn about it in many places including the official documentation

Note

You can find a pre-built version of this documentation at readthedocs.io. If you view these files on e.g. GitHub, beware that their renderer does not render the ReStructuredText files correctly and content may be missing.