GithubHelp home page GithubHelp logo

openedx / openedx-demo-course Goto Github PK

View Code? Open in Web Editor NEW
42.0 136.0 67.0 124.69 MB

A demonstration course that can be imported into an Open edX instance

License: GNU Affero General Public License v3.0

CSS 6.03% JavaScript 6.57% HTML 87.35% Makefile 0.05%
openedx-course

openedx-demo-course's Introduction

Open edX Demo Course, v2

Contents

This repository contains a course and some libraries that you can import into your Open edX instance to learn more about platform features. This course is geared mainly towards instructors, but learners can also benefit from learning how the platform and problem types work. For convenience, we include both:

  • The .tar.gz files for you to import into Studio, located in the ./dist/ folder.
  • The source code (a.k.a. "OLX") in the other top-level folders.
Name Key Download Source OLX
Open edX demo Course course-v1:OpenedX+DemoX+DemoCourse ./dist/demo-course.tar.gz ./demo-course
Open edX Example Content Library library-v1:OpenedX+DemoRespiratoryQuestions ./dist/demo-content-library.tar.gz ./demo-content-library

Rationale

This course and its associated libraries aim to expose as many Open edX Studio & courseware features as possible. It does so by providing example usages of various block types and features such as cohorts and discussion forums.

This course serves as a user-facing introduction and tutorial to the Open edX platform.

It is useful for basic testing, but also needs to remain a suitable first experience for Open edX learners. For deep testing, we recommend using the Open edX Test Course.

Status

This course is new as of the Redwood (June 2024) release.

Usage

To use this course and its libraries, you will need to import them into an Open edX instance. All new Open edX instances will get this course installed by default.

Manual import

In Studio:

  1. Create a library with the org demo and the slug ContentLibrary.
  2. Import dist/demo-content-library.tar.gz into the library.
  3. Create a course run with the org demo, name Course, and run 1.
  4. Import dist/demo-course.tar.gz into the course run.

Scripted import (for Tutor users)

In the same environment that use to run tutor, execute the command:

make import TUTOR=... TUTOR_CONTEXT=... LIBRARY_IMPORT_USER=...

where:

  • TUTOR should be the command that you use to run Tutor (defaults to simply tutor).
  • TUTOR_CONTEXT should be the mode in which you want to import the course (defaults to local, other acceptable values are k8s and dev).
  • LIBRARY_IMPORT_USER is the username of an existing user in your Open edX instance that will be given ownership of the imported library (defaults to admin).

For example:

# Import in developer mode using a custom tutor root, and make alice the library admin.
make import TUTOR='tutor --root=~/tutor-root' TUTOR_CONTEXT=dev LIBRARY_IMPORT_USER=alice

Or:

# Import in kubernetes mode, and make bob the library admin.
make import TUTOR_CONTEXT=k8s LIBRARY_IMPORT_USER=bob

Re-generating the importable content

If you make changes to the course or library OLX and want to re-generate the importable .tar.gz files, simply run:

make dist

This will package the OLX into the dist directory.

Contributing

Contributions of bug fixes are welcome. There are two ways you can make changes to this course.

OLX Editing

If you are experienced with editing raw OLX, then you can make changes directly to the XML and asset files this repository. Before opening a pull request, please:

  • Run make dist, which will generate the dist/*.tar.gz archives. Include these changes in your commit.
  • Import the updated dist/*.tar.gz archives into an Open edX Studio (as described above) and ensure the test course still works as expected, both in Studio and LMS.

Studio Editing

Once you've imported the test course and libraries into an Open edX instance (as described above), you can edit the course and its libraries in Studio. Make sure to Publish any changes you make from Studio so that you can test them out in LMS.

When you're ready to contribute the changes back into this repository, simply:

  1. Export the course and any libraries you changed.
  2. Move to exported .tar.gz archives into this repository's dist/ folder, and name them to match the top-level OLX folders. For example, the course archive should be named dist/demo-course.tar.gz, and the problem bank archive should be named dist/demo-content-library.tar.gz.
  3. Run make unpack, which will unpack the archives into OLX.
  4. Review your OLX changes using git diff.
  5. Commit your changes and open a pull request.

Tag @openedx/openedx-demo-course-maintainers in all pull requests. We'll do our best to take a look! All pull requests should pass the GitHub Actions suite, which ensures that the course and libraries can be imported into a freshly-provisioned Tutor instance.

License

All content is made available under a Creative Commons BY-NC-SA 3.0 US License.

All code is made available under an AGPLv3 License

openedx-demo-course's People

Contributors

cpennington avatar dianakhuang avatar dmytroalipov avatar dyudyunov avatar feanil avatar gradyward avatar gsong avatar jtauber avatar kdmccormick avatar nedbat avatar regisb avatar ruzniaievdm avatar sarina avatar uvgengen avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

openedx-demo-course's Issues

In local non-production install, tutor local importdemocourse fails

Slightly weird given I'd just successfully installed openedx. Any suggestions?

Command output below:

$ tutor local importdemocourse
Importing demo course
docker-compose -f /home/xxxxx/.local/share/tutor/env/local/docker-compose.yml -f /home/xxxxx/.local/share/tutor/env/local/docker-compose.prod.yml --project-name tutor_local -f /home/xxxxx/.local/share/tutor/env/local/docker-compose.jobs.yml run --rm cms-job sh -e -c echo "Loading settings $DJANGO_SETTINGS_MODULE"

# Import demo course
git clone https://github.com/edx/edx-demo-course --branch open-release/lilac.3 --depth 1 ../edx-demo-course
python ./manage.py cms import ../data ../edx-demo-course

# Re-index courses
./manage.py cms reindex_course --all --setup
Starting tutor_local_mysql_1 ... done
Loading settings cms.envs.tutor.production
Cloning into '../edx-demo-course'...
fatal: unable to access 'https://github.com/edx/edx-demo-course/': Failed to connect to github.com port 443: Connection timed out
Error: Command failed with status 128: docker-compose -f /home/xxxxx/.local/share/tutor/env/local/docker-compose.yml -f /home/xxxxx/.local/share/tutor/env/local/docker-compose.prod.yml --project-name tutor_local -f /home/xxxxx/.local/share/tutor/env/local/docker-compose.jobs.yml run --rm cms-job sh -e -c echo "Loading settings $DJANGO_SETTINGS_MODULE"

# Import demo course
git clone https://github.com/edx/edx-demo-course --branch open-release/lilac.3 --depth 1 ../edx-demo-course
python ./manage.py cms import ../data ../edx-demo-course

# Re-index courses
./manage.py cms reindex_course --all --setup

Replace "lost" videos

Videos, titled "Science and Cooking Chef Profile: JOSÉ ANDRÉS" and
"Biology Demonstration" will most likely not be found. Instead, it would
be best to choose another video that we do have access to and replace
it.

Advanced example with Text Input Problem

Could you provide an example of case sensitivity and/or regular expressions please?

I'am a french user of several moocs that don't use theses options. The user experience is downgraded, students write a lot of posts to complain.

Part of a real example (the real list is longer 😉) :

<problem>
    <stringresponse answer="obstacle" type="cs">
        <label>Citez les 5 risques ferroviaires</label>
        <description>Sous la forme article défini + nom du risque</description>
        <additional_answer answer="Obstacle"></additional_answer>
        <additional_answer answer="Obstacles"></additional_answer>
        <additional_answer answer="obstacles sur voie"></additional_answer>
        <additional_answer answer="un obstacle sur la voie"></additional_answer>
        <additional_answer answer="des obstacles sur la voie"></additional_answer>
        <additional_answer answer="obstacles"></additional_answer>
        <additional_answer answer="Obstacle"></additional_answer>
        <additional_answer answer="Obstacles"></additional_answer>
        <additional_answer answer="l'obstacle"></additional_answer>
        <additional_answer answer="les obstacles"></additional_answer>
        <additional_answer answer="L'obstacle"></additional_answer>
        <additional_answer answer="Les obstacles"></additional_answer>
        <additional_answer answer="La rencontre d'obstacle"></additional_answer>
        <additional_answer answer="la rencontre d'obstacle"></additional_answer>
        <additional_answer answer="La rencontre d'obstacles"></additional_answer>
        <additional_answer answer="la rencontre d'obstacles"></additional_answer>
        <additional_answer answer="La rencontre d'un obstacle"></additional_answer>
        <additional_answer answer="la rencontre d'un obstacle"></additional_answer>
        <additional_answer answer="percuter un obstacle"></additional_answer>
        <additional_answer answer="Percuter un obstacle"></additional_answer>
        <additional_answer answer="obstacles sur voie"></additional_answer>
        <additional_answer answer="un obstacle sur la voie"></additional_answer>
        <additional_answer answer="des obstacles sur la voie"></additional_answer>
        <additional_answer answer="obsatcles sur la voie "></additional_answer>
        <additional_answer answer="obstacles sur les voies"></additional_answer>
        <additional_answer answer="des obstacles sur les voies"></additional_answer>
        <additional_answer answer="un obstacle sur les voies"></additional_answer>
    </stringresponse>
</problem>

I guess that we could rewrite it simply like this:

<problem>
    <stringresponse answer="obstacle" type="ci regexp">
        <label>Citez les 5 risques ferroviaires</label>
        <description>Sous la forme article défini + nom du risque</description>
        <additional_answer answer=".*obstacle.*"></additional_answer>
    </stringresponse>
</problem>

I think that the answer "un obstacle sur les voies" is not valid so I used an additional answer containing a "real" regexp.
Does this additional answer is valid?

Missing Video Element

The vertical/3dc16db8d14842e38324e95d4030b8a0.xml file in this course doesn't have it's corresponding video from HarvardX's CB22.1x.

Course cannot be displayed

How to deal with import problems (we import the course to 100% but nothing shows up
in course outline, files are correct and have content)?

2013/10/23
Tried again and the course was imported successfully. However, the course cannot be show properly in LMS and there are errors in some pages in CMS.

jsmol image broken

The image files Al2O3.png and 1hxw.png under static/jsmol broken, leading to the failure when import course.

2014-06-03 22:54:28,439 ERROR 5089 [root] content.py:233 - Failed to generate thumbnail for c4x://edX/Open_DemoX/asset/jsmol_Al2O3.png. Exception: cannot identify image file
Traceback (most recent call last):
File "/edx/app/edxapp/edx-platform/common/lib/xmodule/xmodule/contentstore/content.py", line 212, in generate_thumbnail
im = Image.open(StringIO.StringIO(content.data))
File "/edx/app/edxapp/venvs/edxapp/local/lib/python2.7/site-packages/PIL/Image.py", line 1978, in open
raise IOError("cannot identify image file")
IOError: cannot identify image file
2014-06-03 22:54:28,685 ERROR 5089 [root] content.py:233 - Failed to generate thumbnail for c4x://edX/Open_DemoX/asset/jsmol_1hxw.png. Exception: cannot identify image file
Traceback (most recent call last):
File "/edx/app/edxapp/edx-platform/common/lib/xmodule/xmodule/contentstore/content.py", line 212, in generate_thumbnail
im = Image.open(StringIO.StringIO(content.data))
File "/edx/app/edxapp/venvs/edxapp/local/lib/python2.7/site-packages/PIL/Image.py", line 1978, in open
raise IOError("cannot identify image file")
IOError: cannot identify image file

installation failed: bad default revision 'HEAD'

Hi,

I follow this guide https://github.com/edx/configuration/wiki/edX-Ubuntu-12.04-Installation to install edX, and get stuck in edx-demo-course step.

This is the error message:

TASK: [demo | check out the demo course] ************************************** 
failed: [localhost] => {"failed": true, "item": "", "parsed": false}
invalid output was: fatal: bad default revision 'HEAD'
Traceback (most recent call last):
  File "/tmp/ansible-1388637334.68-235297114504153/git", line 1321, in <module>
    main()
  File "/tmp/ansible-1388637334.68-235297114504153/git", line 341, in main
    before = get_version(git_path, dest)
  File "/tmp/ansible-1388637334.68-235297114504153/git", line 105, in get_version
    sha = sha[0].split()[1]
IndexError: list index out of range


FATAL: all hosts have already failed -- aborting

Sorry if I post this issue in the wrong place.

Thanks in advanced.

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.