Code Monkey home page Code Monkey logo

bux-sql-grader's Introduction

edX SQL Grader

An external grader for evaluation of SQL problems.

Designed for use with the edX External Grader framework.

Features

  • Grade MySQL problems with edX
  • Rubric-based scoring to assign partial credit for incorrect submissions
  • Generates hints for incorrect responses to help students identifiy errors
  • Optionally uploads query results in CSV format to S3 bucket for download
  • "Sandbox" mode allows students to experiment with ungraded problems

Prerequisites

  • A dedicated XQueue queue with authentication credentials
  • MySQL
  • Amazon S3 bucket and auth credneitals if CSV upload is required

Quick Start

  1. Add this repository to your course repositories requirements.txt:

    git+https://github.com/bu-ist/bux-sql-grader.git@master#egg=bux-sql-grader
    git+https://github.com/bu-ist/bux-grader-framework.git@master#egg=bux-grader-framework
    
  2. Install the requirements with pip (use of virtualenv is highly recommended):

    $ pip install -r requirements.txt
  3. Add a settings module to for your course:

    # settings.py
    
    # XQueue configuration
    XQUEUE_QUEUE = "your-xqueue-queue"
    XQUEUE_URL = "http://your-xqueue-host.com:18040"
    XQUEUE_USER = "your-xqueue-user"
    XQUEUE_PASSWORD = "your-xqueue-password"
    
    # Evaluator configuration
    EVALUATOR_MODULES = {
        "bux_sql_grader"
    }
    
    EVALUATOR_CONFIG = {
        "mysql": {
            "database": "default-database-name",
            "host": "your-db-hostname-here",
            "user": "your-db-username-here",
            "passwd": "your-db-passwd-here",
            "port": 3306,
            "s3_upload": True,
            "s3_bucket": "your-s3-bucket-name-here",
            "aws_access_key": "your-aws-access-key-here",
            "aws_secret_key": "your-aws-secret-key-here"
        }
    }
  4. Start the grader:

    grader --settings=settings

See the demo course repository for an example course configuration. See the configuration repository for a more automated way to set up your grader environment.

Contributing

Pull requests are welcome!

Pull down this repository and use pip to install development requirements:

$ git clone [email protected]:bu-ist/bux-sql-grader
$ pip install -r requirements.txt

Documentation

Follow pep257!

Package documentation lives in the docs directory and can be built in a variety of formats using sphinx.

cd docs
make html

The build directory (docs/_build) is excluded from VCS.

Tests

All unit tests live in the tests directory and can be run using nose.

$ nosetests

Coding Style

Follow pep8!

Run flake8 before you commit to make sure there aren't any violations:

$ flake8

bux-sql-grader's People

Contributors

angrygabe avatar nkavanagh avatar

Watchers

 avatar  avatar

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.