Giter Club home page Giter Club logo

iliascorrector's Introduction

iliasCorrector

This is a small flask program that can be used to correct submissions to the ILIAS system.

iliasCorrector is being developed on archlinux with the latest released python and chromium versions.

Below are all available commands that can be run from the shell. These are given for archlinux, you might need to adjust them to your system.

# create a python 3 virtualenv
virtualenv env
source env/bin/activate

# install requirements
pip install -r requirements.txt

# create database
python app.py db upgrade

# run the web interface
python app.py runserver

How to use

  • Create the directory iliasCorrector/data

  • Start the web interface

  • For each assignment you want to correct, extract the submissions of the students into a subdirectory of data (data/assignment_1 for example)

  • Go to http://localhost:5000/

  • Press Synchronize Exercises to read data and create entries for the submissions in the database.
    Note that each exercise (subdirectory) can only be imported one time. Currently exercises can not be updated. So make sure the directory contains all the necessary files.

  • Grades are imported from a csv file of the following format that resides in the assignments' directory:

<Last Name>_<First Name>_<Student_Ident>;<Grade>;<Remarks>

Here are a couple of sample entries:

Doe_John_JohnDoe_123456789;12; well Done
Doe_Jane_JaneDoe_987654321;---;-- keine Bemerkung --
  • Exporting produces a csv formatted file as described above

Warning

Nearly no error checking is done. Please make sure the grades you import are correctly formatted and that the files you place inside data follow the scheme of files that are downloaded from ILIAS when using the function to download all submissions in a single archive. You are advised to inspect the code yourself before actually using it.

License

This is published under the MIT license. This means it is published as is with absolutely no guarantees

iliascorrector's People

Contributors

asarium avatar simonsmiley avatar

Stargazers

 avatar

Watchers

 avatar  avatar  avatar  avatar

Forkers

asarium dertimme

iliascorrector's Issues

TeX-compatible export

Remark export should support tex-export. That is, prefixing the remark field in the exported points.csv with %tex\n (note the line break!).

The actual question is: When to do this? Maybe a setting for each exercise? Or an automatic detection (backslashes in the text, $s, empty line followed a non-empty one, ...) for each single submission?

Open for discussion, the implementation shouldn't be a problem, I just want to produce a solution suitable for everyone, not just for me.

Categories for grading

Maybe we could add the ability to assign a category to each submission instead of a grade and later map these categories to grades. A category would belong to exactly one exercise (but there would usually be multiple categories per exercise).

The main advantage of this would be to have a very easy way of changing the grading in case Felix and Martin aren't happy with the grading (without having to "foresee" this and using the actual grade value as a kind of category, e.g. giving 42 points to everyone who made a certain mistake and changing the value later with an appropriate SQL query).

An example would be to have a category "Zeiger allgemein statt Funktionszeiger" which would probably be assigned a zero grading.

In terms of GUI I'm thinking of replacing the grading field with a dropdown menu (should support keyboard input to search for entries) which can be used to select the appropriate category. It should also be possible to create a new category "on the fly" in the grading-view.

In terms of data model, I would suggest to replace the grading column of the submission table with a category_id foreign-key column mapping to a (new) table categories which has the following columns: id, exercise_id, grade, name.

Open for discussion.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.