Clean Django app for e-learning application with...
Project description
S.O.L.I.D.-Backend
What is S.O.L.I.D.?
The project's name is an acronym for Systematic Object-Learning and Identification, which is the purpose of this pluggable django app. It is here to provide a solid (hehe - :D) foundation for future eLearning apps. During the creation of two eLearning apps at Goethe University Frankfurt we figured out that a lot of disciplines require students to learn how to systematically analyse and classify certain objects. Those objects might be hand-samples of minerals, stones, stuffed animals, paintings or plants, mostly stored in archives with limited access - or none at all. To prevent us from repeating all steps in the creation of a back- and frontend, we focused on the question "Which components will all these apps have in common?" and this package is what we came up with. In order to tackle the problem of limited access to hand-samples, we need to store and process high-definition images with the capability of a zoom feature to deliver HD images on any kind of device. Furthermore, we need a way to arrange the hand-samples in a structured way to provide the core feature. But that's not it. eLearning does not solely consist of content distribution. So we also thought of a glossary which the students have at hand without the need to refer to the lecture notes. Another module to display miscellaneous content is the slideshow feature which dombines text and image on separate pages. Beyond that, we implemented a quiz in order to give students the opportunity to evaluate their current level of understanding. To top it off, we figured it might be useful to display messages to communicate with our users. Messages can inform about updates, events in the context of a lecture, provide fun facts or make up an advent calender with daily tasks or puzzles. A contact form implementation provides a communication in the other direction.
So what does S.O.L.I.D provide in short:
- A generic way to set up database models which can be structured in a hierarchical tree.
- A simple way to store high-definition images which provides automatic creation of DZI-files for the usage of OpenSeadragon
- A Quiz-system with a variety of Question types.
- A Glossary to provide subject-specific terminology.
- A Message system which can be utilized in various ways.
- A Slideshow system to provide content in a presentation style.
- A Feedback form to facilitate bug reports and questions.
So if you are looking to build the backend of an eLearning app, you came to the right place.
For inspiration or just to see what it looks like to use
solid-backend
in the end have a look at geomat-backendand/or dive-backend. If you are also interested in the Frontend: We also have an Angular package which can be found here and which is the foundation of the corresponding apps under geomat.uni-frankfurt.de and dive.uni-frankfurt.de
Get started
Requirements for this package are:
- Django >3.0.0
- Djangorestframework 3.11.0
- django-mptt 0.11.0
- pillow 7.1.2
- django-cleanup 4.0.0
- psycopg2-binary 2.8.5
- django-taggit 1.5.1
Psycopg2 is important because we are using PostgreSQL specific databasefields. This means that you are also required to use a PostgreSQL database.
Installation
The solid-backend package is distributed via PyPi so you can simply install it via
pip install solid-backend
Add the apps to your INSTALLED_APPS
for a bare minimum functionality
settings.py
INSTALLED_APPS = [
...,
"solid_backend.content",
"solid_backend.photograph",
]
or all apps
settings.py
INSTALLED_APPS = [
"solid_backend.contact",
"solid_backend.content",
"solid_backend.glossary",
"solid_backend.message",
"solid_backend.quiz",
"solid_backend.slideshow",
"solid_backend.photograph",
]
Afterwards, don't forget to add the url's to your url-config. Here, again, you can either decide which urls to include or include all of them:
Specific urls:
urls.py
urlpatterns = [
...,
url(r"", include("solid_backend.content.urls"), name="content"),
url(r"", include("solid_backend.message.urls"), name="message"),
url(r"", include("solid_backend.photograph.urls"), name="photograph"),
]
All urls:
urls.py
urlpatterns = [
...,
url("", include("solid_backend.urls")),
]
After this you are ready to run the migrations and you are good to go.
Documentation
Documentation is available here. The Documentation is currently only available in german. If you are a non-german speaker and want to know more about something feel free to contact us directly via mail and we will figure it out.
Coverage
Coming soon...
Try it out and local development
For a How-To guide see the README in the sample_project directory.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file solid_backend-0.3.5.tar.gz
.
File metadata
- Download URL: solid_backend-0.3.5.tar.gz
- Upload date:
- Size: 54.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.2.2 CPython/3.8.10 Linux/5.14.0-1059-oem
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7648653d981b8bcd91f8238cc1597a3c9cc476edfdef927f29249cba114e3944 |
|
MD5 | a34dae80c81cfa9184d0bb42d36a1e02 |
|
BLAKE2b-256 | d22be9a9b333bb6e796ea0bc85ada9dba37980beb8e57f09f44c5f385d210f26 |
File details
Details for the file solid_backend-0.3.5-py3-none-any.whl
.
File metadata
- Download URL: solid_backend-0.3.5-py3-none-any.whl
- Upload date:
- Size: 96.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.2.2 CPython/3.8.10 Linux/5.14.0-1059-oem
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 65ce684e0978ada757e84871dfde9fc7900610cad9742f862e256a1742a93020 |
|
MD5 | 46be8c635494bd915c6ef5d81c6bd68c |
|
BLAKE2b-256 | dfcd8faea9b1398baad092da55aaba0fd0195a614724b7501dd6d7dc5aff6f93 |