1- # Tin: Turn-In
2-
3- The ultimate grader solution for TJHSST Aritifical Intelligence classes.
1+ <p align =" center " >
2+ <img src =" ./assets/tin-logo.gif " width =" 500 " >
3+ </p >
4+ <br >
5+ <br >
6+ <p align =" center " >
7+ <a href =" https://github.com/astral-sh/ruff " ><img src =" https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/ruff/main/assets/badge/v2.json " ></a >
8+ <img src =" https://github.com/tjcsl/tin/actions/workflows/ci.yml/badge.svg " >
9+ <a href =" https://github.com/pre-commit/pre-commit " ><img src =" https://img.shields.io/badge/pre--commit-enabled-brightgreen?logo=pre-commit " ></a >
10+ <br >
11+ <br >
12+ <i >An autograder for Computer Science Classes</i >
13+ </p >
14+ <hr >
415
516## History
6- Previously, teachers in TJHSST AI classes had to manually run student code.
17+ Previously, teachers in TJHSST CS classes had to manually run student code. As you can imagine,
18+ this was both time consuming, and dangerous. In order to solve this problem, Tin was invented
19+ to safely run student code submissions.
720
821## Architecture
922Tin is a Django application backed by PostgreSQL and SQLite. We use Celery (with a RabbitMQ broker) to process tasks.
@@ -13,8 +26,37 @@ Tin is a Django application backed by PostgreSQL and SQLite. We use Celery (with
1326* Uploads for teacher's grader scripts
1427* Customized containers for grader scripts
1528
16- ## Data Backup
29+ ## Developing
30+ To work on Tin, you'll need the following:
31+ * ` pipenv `
32+ * ` git `
33+ * A Github account
34+
35+ First, [ fork] ( https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/working-with-forks/fork-a-repo#forking-a-repository ) Tin.
36+ Then you can clone Tin onto your local computer with
37+ ``` bash
38+ git clone https://github.com/your_github_username/tin
39+ ```
40+ After that, install dependencies:
41+ ``` bash
42+ pipenv install --dev
43+ ```
1744
45+ And finally, apply the database migrations and create some users.
46+
47+ Note: if you're on Windows, replace ` python3 ` with ` python ` in the commands below
48+ ``` bash
49+ python3 manage.py migrate
50+ python3 create_debug_users.py
51+ ```
52+ Now you can run the Tin development server!
53+ ``` bash
54+ python3 manage.py runserver
55+ ```
56+ Head over to [ http://127.0.0.1:8000 ] ( http://127.0.0.1:8000 ) , and
57+ login with the username ` admin ` and the password you just entered.
58+
59+ ## Data Backup
1860``` bash
1961python manage.py dumpdata --natural-foreign --natural-primary -e contenttypes -e admin -e auth.Permission > export_YYYY_MM_DD.json
2062# copy to local machine
0 commit comments