An autograder for Computer Science Classes
Previously, teachers in TJHSST CS classes had to manually run student code. As you can imagine, this was both time consuming, and dangerous. In order to solve this problem, Tin was invented to safely run student code submissions.
Tin is a Django application backed by PostgreSQL and SQLite. We use Celery (with a RabbitMQ broker) to process tasks.
- Teacher management view for courses
- Uploads for teacher's grader scripts
- Customized containers for grader scripts
To work on Tin, you'll need the following:
pipenv
git
- A Github account
First, fork Tin. Then you can clone Tin onto your local computer with
git clone https://github.com/your_github_username/tin
After that, install dependencies:
pipenv install --dev
And finally, apply the database migrations and create some users.
Note: if you're on Windows, replace python3
with python
in the commands below
python3 manage.py migrate
python3 create_debug_users.py
Now you can run the Tin development server!
python3 manage.py runserver
Head over to http://127.0.0.1:8000, and
login with the username admin
and the password you just entered.
python manage.py dumpdata --natural-foreign --natural-primary -e contenttypes -e admin -e auth.Permission > export_YYYY_MM_DD.json
# copy to local machine
iconv -f ISO-8859-1 -t UTF-8 export_YYYY_MM_DD.json > export_YYYY_MM_DD_utf8.json
python manage.py loaddata export_YYYY_MM_DD_utf8.json