CAT-SOOP is a tool for automatic collection and assessment of online exercises https://catsoop.mit.edu
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

content.md 4.0KB

cs_content_header = cs_long_name

This page is designed to help you get an instance of CAT-SOOP up and running. If you are setting things up on a local copy, following the instructions on this page should be enough. If you are setting up a public-facing instance on a server you control, you should follow these instructions, and then continue by following the link at the bottom of this page for more information about server configuration.

As a general rule, I only test using Debian GNU/Linux, but others have tested these instructions on Mac OSX and on Windows (Cygwin or LSW).

Install Necessary Software

CAT-SOOP depends on Python (version 3.5+, with pip).

You will need Python version 3.5+ on your system to run CAT-SOOP. Many distributions have Python 3.5+ in their package managers, though it may be necessary to download the source from the official Python site.

On Debian Stretch, you will need the python3 and python3-pip packages (or a version of Python 3.5+ installed in some other way).

(Cygwin Only) Patch _pyio

As of the time of this writing (December 2017), the Python version available through Cygwin ships with a broken version of _pyio, which cheroot uses. In order to run CAT-SOOP on a Cygwin host, edit the file /usr/lib/python3.6/_pyio.py so that the first conditional (about sys.platform) reads as follows:

if sys.platform == 'win32':
    from msvcrt import setmode as _setmode
elif sys.platform == 'cygwin':
    import ctypes
    _cygwin1 = ctypes.PyDLL('cygwin1.dll')
    def _setmode(fd, mode):
        return _cygwin1._setmode(ctypes.c_int(fd), ctypes.c_int(mode))
else:
    _setmode = None
Download CAT-SOOP

There are several ways you can install CAT-SOOP (as of version 14.0).

Installation via pip

The easiest is pip, with a command like the following:

$ sudo pip3 install catsoop

Manual Installation

Alternatively, you can clone the Git repository containing the source code:

git clone https://git.sr.ht/~adqm/catsoop

and then run:

$ sudo python3 setup.py install

from the source directory. You can also run the unit tests by running:

$ sudo python3 setup.py test
Configure CAT-SOOP

To configure CAT-SOOP, run the following command:

catsoop configure

and answer the questions it poses.

Note

If you are running a public-facing CAT-SOOP instance, you are strongly encouraged to enable encryption if the directory in which you are storing the logs is not already encrypted in some way (e.g., via luks or gocryptfs or cryfs, etc).
Add Courses

The default location for CAT-SOOP courses is in ~/.local/share/catsoop/courses/. You should move (or symlink) your courses to that location.

Start CAT-SOOP

To start the server, you should run:

$ catsoop runserver

This will start the server listening on port 6010. You should then be able to directy your browser to http://localhost:6010 to see the CAT-SOOP instance.

(Optional) Sign Up for Mailing List

~adqm/catsoop@lists.sr.ht is a place to ask questions about CAT-SOOP usage. You can view the archives or subscribe here.

~adqm/catsoop-announce@lists.sr.ht is a low-volume list used to announce updates to CAT-SOOP. You can view the archives or subscribe here.

~adqm/catsoop-dev@lists.sr.ht is the place to submit patches, and/or questions about CAT-SOOP development. Your can view the archives or subscribe here.

Additional Configuration for Public-Facing Servers

If you are setting up a public-facing CAT-SOOP instance, see also this page about additional server configuration.