Skip to main content

A tool for drawing and evaluating mathematical functions

Project description

SketchResponse

Note: This is a forked copy of sketchresponse/SketchResponse adapted for PrairieLearn. This library is used as the backing for the pl-sketch element.

This project (will be) published to PyPI as sketchresponse, and on NPM as @prairielearn/sketchresponse.

Warning: The API is not fully compatible with the original SketchResponse project. Additionally, the codebase has been significantly refactored, and Python 3.10 is now the minimum supported version. The information in this README is not guaranteed to be up to date.

SketchResponse is a Javascript/Python(2.7-3.x) tool for drawing and evaluating mathematical functions. It was designed for use with the edX online courseware platform. However, it is a self-contained application that can be integrated into other web platforms.

Features

  • Sketch Tool - configurable Javascript front-end with plugin components to provide different function drawing and annotation capabilities. See Sketch-Tool Usage for a description of the non-configurable interface elements of the sketch tool. See Sketch-Tool Plugin Configuration for a description of the available plugins.
  • Grader Library - python back-end that provides an API of function grading methods that can be composed to construct custom grading scripts. See Create a Simple Grading Script for a tutorial on building a simple grading script.

Installation

  • Clone this repository to the directory of your choice:
    • By using HTTPS:

      $ git clone https://github.com/SketchResponse/sketchresponse.git
      
    • By using SSH:

      $ git clone git@github.com:SketchResponse/sketchresponse.git
      

Sketch Tool Front-End

Prerequisites

You'll need to have Node.js and npm (which is now packaged with Node) to be installed on your system. Note: This currently only works with Node version 7.10.1

Installation

  • Change to the sketch_tool directory:

    $ cd sketch_tool
    
  • Install dependencies listed in package.json:

    $ npm ci
    
  • Build a local distribution of the sketch_tool:

    $ npm run build
    

Grader Back-End

The SketchResponse grader backend has only two third party package requirements:

Install them by running the following command in the root directory:

$ pip install -r requirements.txt

Flask is only required if you want to run a local server for convenience when implementing and testing new grading scripts. See the Tutorial Test a Grading Script on a Local Server for details.

Usage Guides

Examples and Tutorials

Reference Information

Contribute

Contributions to this project are very welcome! If you'd like to contribute, please open a GitHub issue and we'll get in touch.

Running tests for the Grader Library Back-end

The grader library has a collection of tests to validate the API functions. Those tests can be run from the root directory of the sketchresponse repository with the command below. If you haven't already done so, install the additional packages needed only for the unittest modules.

$ pip install -r test_requirements.txt
$ python -m unittest discover -t . test_grader_lib/

Rebuilding the documentation

As this project evolves, the current documentation will no longer match the existing codebase. Follow the instructions in HowTo Build the Docs to rebuild as needed.

Support

If you are having issues or encounter a bug, please create a GitHub issue and we'll try to help!

License

Please refer to the LICENSE file in the root of the SketchResponse repository.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

sketchresponse-0.0.6.tar.gz (65.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

sketchresponse-0.0.6-py3-none-any.whl (76.1 kB view details)

Uploaded Python 3

File details

Details for the file sketchresponse-0.0.6.tar.gz.

File metadata

  • Download URL: sketchresponse-0.0.6.tar.gz
  • Upload date:
  • Size: 65.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for sketchresponse-0.0.6.tar.gz
Algorithm Hash digest
SHA256 5c73a3d1ac951165df7d7e927f711ac1a63c6c72c311cb65c02f411b0fa7e672
MD5 1bf9b86a3517a3e4f8ebf8896eb699ff
BLAKE2b-256 ff94be3e2ab7e3e51c2c026ddcb74e57877e585ac9ad28247b1946ac9d370bdb

See more details on using hashes here.

Provenance

The following attestation bundles were made for sketchresponse-0.0.6.tar.gz:

Publisher: publish.yml on PrairieLearn/sketchresponse

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file sketchresponse-0.0.6-py3-none-any.whl.

File metadata

  • Download URL: sketchresponse-0.0.6-py3-none-any.whl
  • Upload date:
  • Size: 76.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for sketchresponse-0.0.6-py3-none-any.whl
Algorithm Hash digest
SHA256 f8930ebfad8f7bcc6dcf2aa6a5d208d8c3d23839c484d73db5b87d708d264fce
MD5 85b36aff5136d2382e52d0aba07824fe
BLAKE2b-256 91904010375efc181157354c9f31b634223a70cadf2bb92b54297dc4aedff721

See more details on using hashes here.

Provenance

The following attestation bundles were made for sketchresponse-0.0.6-py3-none-any.whl:

Publisher: publish.yml on PrairieLearn/sketchresponse

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page