A set of web applications to help teachers manage their classrooms. https://teacher-tools.andrewlalis.com
Go to file
Andrew Lalis fec713f15e
Build and Test App / Build-and-test-App (push) Successful in 33s Details
Build and Test API / Build-and-test-API (push) Successful in 52s Details
Added announcements.
2025-01-29 14:29:59 -05:00
.gitea/workflows Hopefully fixed API pipeline, and type errors in app. 2025-01-23 12:18:47 -05:00
api Added announcements. 2025-01-29 14:29:59 -05:00
app Added announcements. 2025-01-29 14:29:59 -05:00
bruno-api Added announcements. 2025-01-29 14:29:59 -05:00
README.md Added documentation about prod.env to the readme. 2025-01-23 19:42:18 -05:00
build-api.sh Added individual deploy scripts. 2024-12-30 11:55:30 -05:00
build-app.sh Added individual deploy scripts. 2024-12-30 11:55:30 -05:00
deploy-api.sh Added individual deploy scripts. 2024-12-30 11:55:30 -05:00
deploy-app.sh Added individual deploy scripts. 2024-12-30 11:55:30 -05:00
deploy.sh Added individual deploy scripts. 2024-12-30 11:55:30 -05:00

README.md

Teacher Tools

A collection of simple, easy-to-use utilities for classroom management.

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.

On the server, I also supply a prod.env file, with the following properties:

TEACHER_TOOLS_API_ENV=PROD
TEACHER_TOOLS_DB_USERNAME=redacted
TEACHER_TOOLS_DB_PASSWORD=redacted
TEACHER_TOOLS_DB_URL=postgresql://localhost:5432/teacher_tools_prod