ok.py supports programming projects by running tests, tracking progress, and assisting in debugging.
The ok.py server collects submissions and displays analysis of student progress based on logging sent from client scripts.
Courses can sign up for our free hosted service on okpy.org
The ok.py software was developed for CS 61A at UC Berkeley.
View Documentation at OK Documentation
To install: * Clone this repo * Install
virtualenv. You can do
brew install virtualenvon a mac or
pip install virtualenvor
apt-get install python-virtualenv- If brew cannot find
brew install pyenv-virtualenv. * Create a virtualenv with
virtualenv -p python3 env* Activate the virtualenv with
source env/bin/activate* (Optional, but recommended) Install
redis-server. You can do
brew install redison a mac or
apt-get install redis-server
To run the server locally:
$ source env/bin/activate # for virtualenv $ pip install -r requirements.txt # to install libraries $ ./manage.py createdb $ ./manage.py seed $ ./manage.py server
The server will listen on http://localhost:5000.
If you are running into issues - see
documentation/SETUP.mdor file an issue
To run workers locally:
$ ./manage.py worker
To be able to run the workers you should have a
redisserver installed and running.
redisis not installed you can install it using your distribution's package manager or follow Redis Quick Start.
./manage.pyonce the virtualenv is activated.
server/generate.pyinitializes the local server with sample content (Users, Assignments, a Course etc). You can customize it by changing the file and running
The server is developed in Python 3.5+ using Flask.
Backup Maintenance - Best-effort maintenance of student backups that occur when ok is run.
Composition Grading - Allow staff to comment on student composition of projects and assign grades.
Autograding - Automatic grading of student submissions
Docker + Kubernetes on Google Container Engine. See
kubernetes/kubernetes.mdfor more info.
The ok-server also supports deployments to Heroku or servers on any major hosting service.
There also exists a one-click setup for ok-server on Azure.
Refer to The Elements of Python Style
Some useful things for developers to know:
--insecure --server localhost:to point it to the running ok-server