2024-12-16 20:04:42 +00:00
|
|
|
# Teacher Tools
|
|
|
|
A collection of simple, easy-to-use utilities for classroom management.
|
2024-12-31 12:32:51 +00:00
|
|
|
|
|
|
|
## Architecture
|
|
|
|
|
|
|
|
This application is built as a Vue3 frontend web application that's served as
|
|
|
|
static content to the user, and a backend API that's organized into different
|
|
|
|
"app" namespaces for each separate sub-application provided by this site,
|
|
|
|
which might categorize this application as a *modular monolith*.
|
|
|
|
|
|
|
|
In the frontend, app-specific content is located under `app/src/apps/<app-name>`,
|
|
|
|
and in the backend, you'll find it at `api/source/api_modules/<app-name>`.
|
|
|
|
|
|
|
|
In addition to specific apps for certain features, authentication is managed
|
|
|
|
globally for the application.
|
|
|
|
|
|
|
|
## Deploying
|
|
|
|
|
|
|
|
Right now, the application is simply deployed as static web content and a
|
|
|
|
SystemD service to my DigitalOcean server. Since the API is written in D and
|
|
|
|
the app is just 100Kib of static content, this app uses almost no resources.
|
|
|
|
|
|
|
|
See the various scripts in this root directory for actions. For most cases, you
|
|
|
|
can just run `./deploy.sh` to build and deploy the API and app.
|