JavaScript CSS HTML
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
.meteor
client
handbook
imports
public/assets/images
server
tests
.gitignore
README.md
package.json

README.md

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 git@github.com: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"  : "example@example.com"
  },
  "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.