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:
solid-backend
in the end have a look at [geomat-backend]()and/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.deRequirements for this package are:
Psycopg2 is important because we are using PostgreSQL specific databasefields. This means that you are also required to use a PostgreSQL database.
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 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.
Coming soon...
For a How-To guide see the README in the sample_project directory.