Git Product home page Git Product logo

worklearn's Introduction

The Mooqita Worklearn Platform

The worklearn platform powers the Mooqita app. Mooqita is built on Meteor and deployed on heroku with automatic staging of our master branch.

Local Development

To run your own instance of Mooqita here is a guide how to get it running on your system. We are planning to release a docker of our platform but have not found the time to do so (Help in this department would be highly appreciated).

Install Meteor

Install the meteor web framework. You find a detailed description of the installation process on their website.

Downloading Mooqita's Worklearn Platform from Git-Hub

Go to Mooqita's Worklearn project page on GitHub and clone the repository into a folder on your computer. We will call this folder on your machine mooqita_folder from now on. You find the documentation on how to clone a repository here

First start of Mooqita

After cloning the repository we recommend to adept settings.json to your needs (mooqita_folder/settings.json). The following parameters are only parsed if run on your machine under localhost. They are not parsed when the system runs on a server or production system for obvious security reasons. How to run your own version of Mooqita's worklearn platform please refer to section Server Deployment further down in this document.

"init_default_permissions":true,
"default_permissions_asset_path":"db/defaultcollections/permissions.json",

"admin":
{
  "email":"YOUR_EMAIL",
  "password":"YOUR_PASSWORD"
}

"init_test_data":true,

When Meteor is installed and you cloned the repository go to your mooqita_folder and run the following command:

meteor --s settings.json 

This command will read settings.json and initialize the database. It will setup the required permissions to run your local instance of Mooqita's worklearn platform. It can also add an admin account and add test data to the database for an easy start. If you already started the worklearn platform you might need to remove the database if the following steps fail.

Setting Permissions

Our platform uses a fine grained system to control read and write access. You find details in section Permissions further down in this document. As the rules can become quite complex we provide a way to setup initial rules for local development using two parameters in settings.json.

"init_default_permissions":true,
"default_permissions_asset_path":"db/defaultcollections/permissions.json",

If init_default_permissions is set to true the system searches for the file defined with default_permissions_asset_path. It parses its content and adds all permissions from the file to the database. If you change or add permissions it is a good idea to save your permissions to a new file and point default_permissions_asset_path to it. This way you can keep the original file and in case you need to reset the database your permissions are restored easily.

Setting Up an Admin Account

If you want to change permissions you will need admin access. To easily setup an admin account you can add the following lines to settings.json.

"admin":
{
  "email":"YOUR_EMAIL",
  "password":"YOUR_PASSWORD"
}

Generating Test Data

Finally it might be interesting to see how the system looks like for a user. To allow you a quick start you can populate the database with test data using the following parameter.

"init_test_data":true

With this command the system will generate a test challenge and results from nine learners. It will also generate a challenge designer and nine learner accounts including reviews and feedbacks. To access the designer account login with the following credentials:

email: [email protected]
password: none

The password is indeed the string none. You can also access student accounts. Using the following credentials:

email: [email protected]
password: none

You need to replace the x by a number between 1 and 9 to access an individual learner account.

Setting Up Email Notification

There are a two more steps until Mooqita is fully ready. You can skip this step if email notification is not important for you. To enable email notification you need to set an environment variable MAIL_URL to let meteor know how to send mails to learners. An excellent description how to setup email sending for meteor can be found here. For our purpose you only need to set the environment variable and Mooqita will do the rest.

MAIL_URL=smtp://SEND_MAIL_ADDRESS:@MAIL_PROVIDER:PORT

If the variable is set the server will log the content of the variable on start up.

[general][info] MAIL_URL set to: smtp://SEND_MAIL_ADDRESS:@MAIL_PROVIDER:PORT

Drop Box Storage

The final setting is setting up file storage. At the moment we use dropbox to save files user upload to our system. To enable this function for your local installation you first need to sign-up for a dropbox account here. The next step is to create a dropbox app that allows you to access your storage. You can find a description how to do that here.

Finally you need to generate a drop box access token as explained here. Now you can set the last environment variable:

DROP_BOX_ACCESS_TOKEN=Bearer YOUR_DROPBOX_ACCESS_TOKEN

Server Deployment

Coming soon.

Permissions

Coming soon.

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.