Loading repository data…
Loading repository data…
ivandev-81 / repository
Workshops is an open source, simple, dead-lightweight LMS (Learning Management System) application programmed in Python (version 3.8.x) with Django (version 2.2.x) web framework which main purpose is to make a standarized way to share knowledge via courses in a slide-based view in browser powered by remark javascript library, easy to create, edit, delete and show your courses using simple markdown and html if necessary. Inspired on an old project in my social labours to help share knowledge in an easy way.
And as dependencies in the front-end (CSS and JavaScript libraries) I used:
It's important mention that you must know the basics about how Django webapps works and how to setup a real configuration for a production instance.
You must create a Postgresql database. Here is a brief tutorial to install Postgresql and create a database:
Installation of PostgreSQL in the most used Linux distros (NOTE: distros with asterisk * have been not tested yet but the installation of postgresql should work and therefor Workshops app)
in Arch based distributions as Manjaro (this could even help with other Linux distos) probably you need execute the following:
Then exit postgres user and to check that database daemon is up and running we can its status with the following command: sudo systemctl status postgres you should get this output in terminal:
To ensure the process is running at Operative System boot execute: sudo systemctl enable postgresql.
Once installed and configured your username as you prefer, you can access your postgres CLI with the sudo user (not recommended for production environments): sudo -u postgres psql , we will proceed to create a new database:
Alternatively you can add a local_settings.py file as part of your own configuration for your particular environment and tests (and this is SUPER IMPORTANT in a production environment to keep secure your database's credentials, your SECRET_KEY and DEBUG global variables for example) it must be located on the workshops/ folder, aside the settings.py file of the project.
Then you can activate it:
(and optionally you can exit from the virtual environment typing: `deactivate`)
2. Once made that you can download the project using git or simply downloading it in a zip format and unzip it and go to the main top folder of workshops:
Once the application is running on the instance you can login or create a new account clicking directly in the "Login/Signup" button at the first page loaded:
and you must be redirected to a your-server-name + /signupin/ url (I'm using the default test environment configuration in the example):
And this is the login and 1st signup page:
Once you have logged in you will see your username and other links in the navigation bar as follows, you can just click on the "+ New Course" button to begin making a course:
One clicked, you will be redirected to your-server-name + /create/ url:
You can upload images,videos, and the main and most important file: 'course.md' file
When you are creating your course the most important file must be the course.md ( this file must be named in this way to avoid failures or unexpected behaviors) that will give the presentation and final layout to the course to be showed, it is a plain text file formatted with markdown syntax following the rules of the remark JavaScript library (that does not vary so much than normal markdown syntax) to arrange content in web slides in browser otherwise the course does not will be showed.
This is a brief example of a well written course.md file:
The syntax is basically as follows according to the wiki of remarkjs library ( remarkjs-markdown )we will include here only the most important aspects:
As is showed in the example file, to include the images or video files included
in your course YOU MUST INCLUDE THIS AS FOLLOWS: 'LOCAL:image.png' (without
quotes and all in caps with the name of the file without any space) in the url
of your file, just the key word LOCAL: and the filename such as image.png
without any space, otherwise the image, video or file will not be showed.
A line containing three dashes, represents a slide separator (not a horizontal rule, <hr>,
like in regular Markdown). Thus, a simple Markdown text like the one below
represents a slideshow with two slides:
To avoid having to duplicate content if a slide is going to add to the previous one, using only two dashes to separate slides will make a slide inherit the content of the previous one:
The above text expands into the following:
A line containing three question marks represents a separator of content and note of the slide:
A notes open version of a slide show can be shared by sharing the url with #p1 appended. Such as remarkjs.com/#p1.
With Incremental Slides the notes go after each increment
If you want to leave a comment in your markdown, but not render it in the Slide Notes, you can use either of the two following methods. The HTML style comment will be available in the page's source in the browser, while the empty link will not be HTML.
Initial lines of a slide on a key-value format will be extracted as slide properties.
The name property accepts a name used to identify the current slide:
A slide name may be used to:
Link to a slide using URL fragment, i.e. slideshow.html#agenda, or in Markdown; the agenda
Navigate to a slide using the API, i.e. slideshow.gotoSlide('agenda')
Identify slide DOM element, either for scripting or styling purposes
The background-image property maps directly to the background-image CSS property, which are applied to the current slide:
REMEMBER: We use the keyword LOCAL: if the file was uploaded in the current
course otherwise this will not work.
The count property allows for specific slides not to be included in the slide
count, which is by default displayed in the lower ri