Open eriq-augustine opened 1 year 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.
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.