Giter VIP home page Giter VIP logo

lerndorf's Introduction

lerndorf

Build Status

WebDidactic@lerndorf

Purpose

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.

Roadmap (Overwiew)

Implemented

  • 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

Work in Progress

  • Research Interface
  • Course designer with manual creation of learning sequences
  • UI Design Improvements

Future Work

  • Bulletin Boards
  • H5P Integration
  • Automatic creation of learning sequences
  • Recommender System

Documentation

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.

Structure

This repository has 2 main folders:

  • server: Contains all the relevant backend code and documentation
  • client: Contains all the relevant frontend code and documentation

Running the Development Version

  1. Install current LTS version of node, yarn, sequelize, and sqlite3

  2. Clone repository

git clone https://github.com/cswertz/lerndorf.git ./lerndorf
cd lerndorf
git checkout develop
  1. 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
  1. Install dependencies and start the client
cd ../../../client
yarn install
yarn start
  1. Login as user admin with password admin

Installing for Production

  1. Install current LTS version of nvm, node, yarn, sequelize, mysql or sqlite and apache2.

  2. Create a user account that you want to use to run the software and login with that account

  3. If you use mysql: Create a database user for Lerndorf.

  4. Create a directory (i. e. /var/www/lerndorf) to install Lerndorf and change to that directory.

  5. Clone repository

git clone https://github.com/cswertz/lerndorf.git ./
  1. Copy server/server/config/config.example.json to server/server/config.json and edit

  2. 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.

  1. Set up apache

Edit lerndorf.conf according to your setup. Copy it to sites-available and activate it. Restart Apache.

  1. 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

Versioning & Branching

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

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.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.