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.1.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.1-py3-none-any.whl (76.2 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: sketchresponse-0.0.1.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.1.tar.gz
Algorithm Hash digest
SHA256 e159c6266c69c0abd87325b33be790ffc3c41a914937e410e35cd4000755510d
MD5 3fcd5e7084a448139d666f3167ca0416
BLAKE2b-256 c0aa2759da0d20d06dd0b4f7288757969ea0b947efb641e19baca50a50a8ac81

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: sketchresponse-0.0.1-py3-none-any.whl
  • Upload date:
  • Size: 76.2 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.1-py3-none-any.whl
Algorithm Hash digest
SHA256 387df64b84a311a02b43833b402d80b4b9871d626f1706c6d2bf7a81cbec41cd
MD5 d9c8ab1653da992c6833c733a30045f0
BLAKE2b-256 132a1ee67c9ebe615b317490ae6f5ddbbea62011496436f2efa3a0a67fdd77b2

See more details on using hashes here.

Provenance

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