Grady - will correct you!
The intention of this tool is to simplify the exam correcting process at the University of Goettingen. It is deployed as a Django web application.
Dependencies
Make sure the following packages and tools are installed:
- Python 3.6
virtualenv
- Docker or a local installation of Postgres
-
npm
oryarn
(you can usenpm
to installyarn
) make
These are required to set up the project. All other application dependencies are
listed in the requirements.txt
and the package.json
files. These will be
installed automatically during the installation process.
Installing
To set up a new instance perform the following steps:
-
Create a virtual environment with a Python3.6 interpreter and activate it. It works like this:
virtualenv -p python3.6 env source env/bin/activate
Just type
deactivate
the get out. -
Set the environment variable
DJANGO_DEV
toTrue
like this:export DJANGO_DEV=True
-
Install dependencies:
pip install -r requirements.txt yarn install --modules-folder core/static/node_modules
or alternatively with the make task:
make install
Some systems (like Ubuntu Xenial) come with a preinstalled "yarn - scenario testing of Unix command line tools". Using this will not work. The yarn package manager is needed.
-
Set up a Postgres 9.5 database. If you have docker installed the easiest way is to just run it in a docker container, like this:
docker run --rm --name postgres -p 5432:5432 postgres:9.5
And apply database migrations:
python manage.py migrate python manage.py loaddata core/fixtures/testdata-groups.json
-
Create a superuser if necessary:
python manage.py createsuperuser
More users can be added in the admin interface. You should be able to reach it via http://localhost:8000/admin.
-
Everything is set. You can start the development server with:
python manage.py runserver
or just:
make run
-
To import some test data in order to see how the application might look like run:
make loadexamples
Testing
"Code without tests is broken by design." -- (Jacob Kaplan-Moss, Django core developer)
Well, currently this repository lacks tests, thats true. But that will change as
this work until now is merely a prototype that will be developed further. However,
the few existing tests can be seen as examples and can be found in the tests.py
file of each app (currently only core
). You can run those tests with
python manage.py test core
or if you want a coverage report as well you can run:
coverage --source='.' manage.py test core
coverage report
Overview
Grady has three basic functions for the three types of users
- Reviewers can
- edit feedback that has been provided by tutors
- mark feedback as final if it should not be modified (only final feedback is shown to students)
- delete feedback (submission will be reassigned)
- Tutors can
- request a submission that they have to correct and submit feedback for it
- deleted their own feedback
- review feedback of other tutors
- they do not see which student submitted the solution
- Students can
- review their final feedback and score in the post exam review
An overview over the database can be found in the docs folder.