Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
OpenAssign server intended for use by a separate client via RPC
Python Other
branch: dev

This branch is 174 commits behind TireSwingSoftware:dev

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.
csv_data
docs
ecommerce
file_tasks
forum
gilmore
media
pr_messaging
pr_services
pr_svc_tests
scripts
templates/paypal
upload_queue
vod_aws
.gitignore
CHANGELOG
LICENSE.txt
README.md
__init__.py
celerybeat_test_settings.py
facade.py
local_settings.py.example
manage.py
requirements-ldap.txt
requirements.txt
settings.py
tests_svc.py
tests_svc_settings.py.example
tests_vod.py
urls.py

README.md

OpenAssign-Server

openassign-server is an open source project written in Python which provides a fully equipped course management system. It is actively developed by TireSwingSoftware.

Developer Guide

The following guide may serve as a starting point for developers unfamiliar with the project installation steps or for the required packages.

Getting set up

The install process on a developer workstation for openassign-server is pretty straight forward. The steps are outlined in detail below for specific operating systems.

Several components including system libraries and other dependencies are required for the python packages that will be installed below.

  • Python >=2.6
  • python-setuptools
  • GIT
  • Swig
  • Sqlite3
  • libssl
  • mysqlclient
  • pq
  • curl4 (with openssl)
  • memcached

The package commands are listed below for common deployments.

Debian

apt-get install git swig sqlite3 memcached lib{ssl,mysqlclient,pq,curl4-openssl}-dev python{,-dev,-{ldap,setuptools}}

Ubuntu

sudo apt-get install git swig sqlite3 memcached lib{ssl,mysqlclient,pq,curl4-openssl}-dev python{,-dev,-{ldap,setuptools}}

Getting the Source Code

git clone https://github.com/TireSwingSoftware/openassign-server.git
cd openassign-server
git checkout dev

Creating a virtual environment *Optional\*

If you wish to keep the python packages for openassign-server separate from the rest of the system (to prevent versioning issues) you may wish to create a virtualenv.

sudo easy_install virtualenv
virtualenv /path/to/env
cd !$
source bin/activate

Installing python package requirements

If you created a virtual environment, be sure to specify the path for pip.

easy_install pip
pip -E /path/to/env install -r requirements.txt

Otherwise

easy_install pip
pip -r requirements.txt

If you require LDAP support you will also need to install the LDAP requirements.

pip -E /path/to/env install -r requirements-ldap.txt

Initial Configuration

Two files are provided which contain the majority of configuration options for the system. These are settings.py and local_settings.py.

settings.py

Contains mostly static Django settings which are not likely to change per deployment.

Note: For development purposes you may wish to disable the vod service by commenting out 'vod_aws' in the INSTALLED_APPS section.

local_settings.py

Contains settings which may change per deployment

A template for local_settings.py exists for convenience and is called local_settings.py.example. Rename this file to local_settings.py and tune the settings as you require. Documentation is provided inline with each option.

Final steps

Run the following commands to perform the database initialization.

./manage.py resetdb
./manage.py setup

Running the test suite

Local unit tests:

./manage.py test pr_services

Remote service tests:

Settings are defined in test_svc_settings.py which can be copied from the test_svc_settings.py.example template file. These tests require running the server.

./manage.py runserver 127.0.0.1:12345
./tests_svc.py
Something went wrong with that request. Please try again.