Coder Social home page Coder Social logo

coursegen's Introduction

Coursegen

Generates course curriculum web sites with support for sections, lectures, code examples, homeworks, course calendar and lots more.

Work in progress

This gem is still under development. In the current form it can already be used but I will be adding more convenience features in the near future.

Steps to building a new course

Install

  • install the gem, gem install coursegen

Generate Blank Course

  • generate a blank course site gem new MYCOURSE. This will create a local directory called MYCOURSE containing the skeleton
  • cd MYCOURSE
  • Load up the template and basics into the newly created directory cg prepare
  • Modify the configuration of the course by editing the file cg_config.rb. You can look at a complicated example to see some of the things that are possible: cg_config.rb_sample

Add it to github (optional)

  • Create a new github repo with the course name
  • cd MYCOURSE; git init
  • Follow Github instructions to push the first commit up to github

Steps to develop the course

  • Add your course content as new files into the content/ directory
  • Rebuild the course static html: cg compile
  • Start a local server for testing: cg serve
  • Open your web browser to look at the course: cg view
  • Rinse, dry and repeat

Steps for deploying the course

  • The /output directory is a complete self-contained static html site. You can deploy it anywhere.
  • I recommend Amazon S3 for a free site

Create an S3 instance to host the site (optional)

  • Log into aws.amazon.com and look for the management console for S3

  • Create a new bucket. Call it whatever you want.

  • Look in the properties and choose "Static Website Hosting". Enable it and set index.html as your index document

  • Make a note of the "endpoint url"

  • Click on permissions/add more permissions

  • Choose Grantee: Everyone; And "list" and no others

  • Click "Edit Bucket Policy". Paste this into your bucket policy and save. Notice you have to edit "yourbucketname" to be your bucket name

    { "Version": "2008-10-17", "Id": "Policy1", "Statement": [ { "Sid": "Stmt1", "Effect": "Allow", "Principal": { "AWS": "" }, "Action": "s3:GetObject", "Resource": "arn:aws:s3:::yourbucketname/" } ] }

Deploy to S3 (optional)

  • I've used s3cmd with great success. You can find it at s3tools.org. Follow their instructions to install it.
  • Configure your course to point to the bucket you just created. Notice, we are using the bucket name not the url: AWS_BUCKET = "cosi165-2014"

Examples

Open Source Catalog of Topics

CourseGen comes with a large, shared catalog of topics. Depending on what you teach you may or may not find useful content there. Over time we hope to broaden this catalog. You can review the current set of topics here: https://github.com/pitosalas/coursegen-topics

Step by step

  • First clone the topic directory to your local drive: git clone [email protected]:pitosalas/coursegen-topics.git
  • Add a symbolic link between your course and the newly cloned directory. For example you might do this: cd MYCOURSE/content ln -s TOPICDIR .

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.