/tau

A simple Token Authorization Uploader service.

Primary LanguageJavaScriptGNU General Public License v3.0GPL-3.0

๐œ Token Authenticated Upload

Tau (๐œ) is a simple Flask based uploading service that authenticates users via secure tokens generated by itsdangerous and sent by email; the frontend is based on filepond.

The idea and flow

This tool is primarily intended to collect programming assignments from a list of known students without the hassle of setting up (and administering) a password authentication system (relying instead on pre-existing email authentication).

First of all one configures the service with a list of user ids (i.e. badge numbers) and corresponding emails; then instruct the students to request their upload URL by entering their (public) user id on the service page

request

if it corresponds to a registered student, the system will acknowledges it

acknowledge

and sends an email to the student, containing an action button (or text link) to submit the files

email

finally, the student (accessing their emails with the suitable credentials) uploads his solutions

upload

The upload button (or link) contains a token that is cryptographically signed and timestamped, so that only legitimate students (for the configured timeframe) will be able to upload files. The uploaded assignments will be stored in a separate folder for every student.

Configuring the system

It's just few hundreds lines of code, so presently everything (except of course for the list of user ids and emails) is hardwired. This is just a proof of conceptโ€ฆ it should be easy to adapt to one's needs.