WebDidactic@lerndorf
Lerndorf is a learning management system (LMS) with a knowledge base and a metadata system (ontology). The knowledge base supports content in multiple languages and content version control. The content consists of knowledge units (KU) with one knowledge- and media type. The knowledge units are combined to learning units (LU). LUs have one topic. That is: One LU consists of all KUs with the same topic. The topics are unique in the knowledge base and connected by typed relations.
Courses are selections of KUs. KUs can thus easily be resused across courses. Within a course, different learning sequences can be offered. The learning sequences can be created manually or automatically. For the automatic creation of learning sequences the metadata are mapped to learning models. Additionally, learning is supported with a recommender system and AI methods.
- Database scheme with default metadata vocabulary
- Metadata editor
- User model
- Role model with editor
- User registration
- User management
- Learning unit editor
- Knowledge unit editor
- Text editor with file upload
- Research Interface
- Course designer with manual creation of learning sequences
- UI Design Improvements
- Bulletin Boards
- H5P Integration
- Automatic creation of learning sequences
- Recommender System
Please find further documentation (data model, interface) at GoogleDrive and in the readme-files in the server and client directory. Lerndorf is based on the results of the INTUITEL project which was based on the Web Dicatic concept.
This repository has 2 main folders:
- server: Contains all the relevant backend code and documentation
- client: Contains all the relevant frontend code and documentation
-
Install current LTS version of node, yarn, sequelize, and sqlite3
-
Clone repository
git clone https://github.com/cswertz/lerndorf.git ./lerndorf
cd lerndorf
git checkout develop
- Install dependencies, initialize and start the server
cd server
yarn install
cd server/config
cp config.example.json config.json
# adjust config if needed
yarn start
- Install dependencies and start the client
cd ../../../client
yarn install
yarn start
- Login as user admin with password admin
-
Install current LTS version of nvm, node, yarn, sequelize, mysql or sqlite and apache2.
-
Create a user account that you want to use to run the software and login with that account
-
If you use mysql: Create a database user for Lerndorf.
-
Create a directory (i. e. /var/www/lerndorf) to install Lerndorf and change to that directory.
-
Clone repository
git clone https://github.com/cswertz/lerndorf.git ./
-
Copy server/server/config/config.example.json to server/server/config.json and edit
-
Set the build script as executable and run it
chmod 700 build.sh
./build.sh
Be aware that building is very resource intensive, your machine should at least have 8GB of RAM.
- Set up apache
Edit lerndorf.conf according to your setup. Copy it to sites-available and activate it. Restart Apache.
- Start Lerndorf with systemd
Edit lerndorf.sh according to your setup. Edit lerndorf.service according to your setup.
sudo systemctl enable /YOURPATH/lerndorf.service
sudo systemctl start lerndorf
This project is following versioning by semver. Further it uses gitflow as a branching model. This specifically means that development is happening on the develop branch. Releases are made on the master branch and tagged accordingly. Major releases might have breaking changes to the versions before. Versions less than 1.0.0 might have breaking changes in the minor bumps to. Please consult the CHANGELOG.
A new release will be made after each Milestone.
Contributions are very welcome. Make sure to direct you PR's against the develop branch. Make sure that tests are in place and that your PR is passing all the tests.