edulinq / autograder-server

A server to automatically grading coding assignments.
MIT License
4 stars 5 forks source link

Database Backend #1

Open eriq-augustine opened 1 year ago

eriq-augustine commented 1 year ago

Flat files made sense earlier on, but the project has evolved and databases should always be kept in consideration.

I recommend a system that abstracts the specific database engine so we can implement at least two:

The SQLite3 engine will probably need to put a global lock around write operations.

We should also maintain the file artifacts and be able to re-build course databases from a directory. This will allow easy backup/restore.

eriq-augustine commented 11 months ago

The infrastructure for the database backend now exists.

The only currently implemented backend is the "disk" database. This database just lays the files out on disk like the old file structure (but a bit more organized).

All code now goes through the database (instead of disk directly), so we are ready for any new database backends.