* feat(frontend): file downloads flow
* refactor(frontend): downloadFile to fetches hook
* test(frontend): coverage for FileList downloads
* test(frontend): downloads through FileDetails
* test(frontend): ensure that DOM clicks are mocked in jest
* docs(frontend): add details on file fetches hook
* feat(backend): file deletion flow
* ci: set change-check flags when no changes detected
* feat(backend): refactor settings to be a singleton object
* refactor(backend): cleaning delete flow cruft
* test(backend): add coverage for deletion + adapt coverage to only rely on endpoints
* docs: type responses for deletions
* build(backend): requirements-locks to use venv directly to avoid needing to activate
* build(backend): taskfile cleaning, no more sourcing
* build(frontend): remove unneeded syntax, cmds>cmd for one-liners
* docs: instructors on local setup
* ci: hoisted default working directory settings
* build(backend): more verbosity on test + error handling
* fix(backend): raise HTTPException, not return on details fetch
* fix(backend): get inserted ID instead of row tuple
* test(backend): add tests for list + details routes
* fix(backend): centralized settings, fix refs
* build(backend): pytest configuration points at the right path
* build(backend): test tooling script
* ci(backend): use taskfile to trigger tests in ci
* test(backend): stub db-test
* ci(backend): use Task for backend steps, remove redundant bootstrap