Gitlab Community Edition Instance

Skip to content
Snippets Groups Projects
janmax's avatar
Jan Maximilian Michal authored
* The mechanism proposed should work as follows:
  * Tutors can subscribe to certain submission categries (currently
    this includes exam, student or type specific submissions).
    If the set of submissions to corrent is small (student) all
    submissions of that category are reserved for that tutor.
  * A reviewer should also be able to subscribe other users (delegation)
  * A subscription contains assignments or creates them:
    * Only one assignment per user may be active.
    * No new assignments can be added to a subscription after it was
      created while another assignment is present for that subscription.
    * An assignment delegates a submission to a tutor.
    * An active assignment indicates that the tutor is working on that
      assignment
    * After an assignment was finished it is deleted (or archived).
* Upgraded to Django 2.0

* Closes #66, #53.
715b18b1
History

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.

pipeline status coverage report

Contributing

Feature proposals are welcome! If you experienced any bugs or otherwise unexpected behavior please submit an issue using the issue templates.

It is on course possible to contribute but currently there is no standardized way since the project is in a very early stage and fairly small. If you feel the need to help us out anyway, please contact us via our university email addresses.

Dependencies

Make sure the following packages and tools are installed:

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:

  1. Create a virtual environment with a Python3.6 interpreter and activate it. It works like this:

    make .venv
    source .venv/bin/activate

    Just type deactivate the get out.

  2. Set the environment variable DJANGO_DEV to True like this:

    export DJANGO_DEV=True
  3. Install backend dependencies with:

    make install
  4. 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 -d --rm --name postgres -p 5432:5432 postgres:9.5

    Alternatively, take a look at the Makefile targets that should make your life easier, e.g make db.

    And apply database migrations once the database is up:

    python manage.py migrate
  5. 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.

  6. Everything is set. You can start the development server with:

    make run
  7. Congratulations! Your backend should now be up an running. To setup the frontend see the README in the frontend folder.

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:

make coverage

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.