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.1.4.tar.gz (72.2 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.1.4-py3-none-any.whl (83.3 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for sketchresponse-0.1.4.tar.gz
Algorithm Hash digest
SHA256 0cb8758edc0140746aa2e2b1a975f7836ec53a48bd50bbe6d15486ea8dc77b27
MD5 c63cd2b543ade28c66a11f8bd41bedbf
BLAKE2b-256 4c0cf3ff565373f583bd77c6caae5b74f0d3d815e483e18d24dc7a5aba3ebb1d

See more details on using hashes here.

Provenance

The following attestation bundles were made for sketchresponse-0.1.4.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.1.4-py3-none-any.whl.

File metadata

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

File hashes

Hashes for sketchresponse-0.1.4-py3-none-any.whl
Algorithm Hash digest
SHA256 8a328ce9428e531dd38f900f101d35d75203afe86ee44532044376eec25dfdd3
MD5 ce71df6a90a03c5d87cdb49bbc42a309
BLAKE2b-256 eff05dac1d0c5cc89995d222dd0ca13f473b17f2b8045f43b6672f067b51eac0

See more details on using hashes here.

Provenance

The following attestation bundles were made for sketchresponse-0.1.4-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