Code Monkey home page Code Monkey logo

logo

OpenTeach is an opensource teaching platform.

we emphasize:

  • Data Control: All data is in the hand of the instructor. We do not take any data as prisoner, and changing platform should be easy.
  • Philosophical emphasis:
    • Communication
    • Feedback over assessment
    • Writing teaching material on demand (and develop it lean)

Demo

Checkout the platform on Mads's instance here. Apply for apprenticeship for any requests.

Deploying (DigitalOcean)

Start a virtual machine on digital ocean (using docker-machine):

docker-machine create \
--driver=digitalocean \
--digitalocean-access-token=[API KEY] \
--digitalocean-size=512mb \
--digitalocean-region=fra1 \
--digitalocean-private-networking=true \
--digitalocean-image=ubuntu-16-04-x64 \
openteach

With docker use following docker compose template for a docker-compose.yml file.

openteach:
  image: kadirahq/meteord:base
  restart: always
  ports:
    - "80:80"
  links:
    - mongo
  environment:
    - MONGO_URL=mongodb://mongo/meteor-db
    - ROOT_URL=http://[YOUR DOMAIN]
    - BUNDLE_URL=https://raw.githubusercontent.com/openteach/release/master/releases/[RELEASE].tar.gz
    - METEOR_SETTINGS=[CONTENT OF SETTINGS.JSON]
mongo:
  image: mongo:3.0
  volumes:
    - /data/db:/data/db

Then setup by

  1. eval $(docker-machine env openteach)
  2. docker-compose up -d

Lastly go to the site and log in using the mail from the settings.json file with the password openteach.

Development

Setup

Four easy steps to get started from the terminal:

  1. Clone this repository:
    • git clone [email protected]:openteach/openTeach.git
    • Go into the openTeach folder with cd openTeach
  2. make a settings file in the root folder
    • touch settings.json
  3. Copy and paste the template below into the settings.json file
  4. Edit the new settings.json file with your GitHub personal access token.
{
  "githubApi" : {
      "access_token" : "GitHub personal access token"
  },
  "instructor" : {
      "ghUser" : "openteach",
      "ghRepo" : "test-instructor",
      "email"  : "[email protected]"
  },
  "public": {
      "instructorName"   : "Mads Buch"
  }
}

GitHub personal access token:

  • Go to your GitHub settings in top right corner.
  • In the left menu click Personal access tokens.
  • In top right corner choose Generate new token.
  • Copy and paste the generated token and replace the GitHub personal access token in settings.json file with the new token.

Now run meteor npm install to install dependencies.

Running Locally

This projects can be run in two modes: As the normal app and for testing.

Running as a normal app:

meteor --settings settings.json

Running tests:

meteor test --driver-package practicalmeteor:mocha --port 3100

Note: Tests are served on port 3100. This is so that both an app and tests may be run at the same time.

Endpoints

For importing stuff from github, invoke following API endpoint:

http://localhost:3000/api/v1/import/github

Create a release

If you adopt this project and which to create a deployment file, follow following steps.

  1. Run meteor build --architecture=os.linux.x86_64 ./ in the library
  2. Move the newly created file, openteach.tar.gz, to a public location on the web
  3. Update the docker compose file from the deployment section.
  4. Do a compose up -d.

Documentation

Documentation is available in the handbook folder

Collaboration

This is an open source project, and as such we do not take any responsibility or are in any ways liable for the project. Everybody are more than welcome to use the software.

openteach's Projects

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.