Files
ifb-schulapp/README.md
T
2026-04-21 15:57:44 +02:00

1.2 KiB

Schulapp

Dashboard für die Schulklassen. Stundenplan, Hausaufgaben, Noten, Fehlzeiten, Klassenkalender, Chat und Ende zu Ende verschlüsselte Nachrichten an einem Ort.

Läuft unter info1.simon0x.xyz.

Stack

Node.js 20, Express 5, SQLite über better-sqlite3, Vanilla JS im Frontend. Kein Buildschritt. Auth per JWT im HttpOnly-Cookie, bcrypt, TOTP-2FA. Mail über Resend. E2EE mit ECDH P-256 und AES-GCM im Browser.

Lokal starten

npm install
cp .env.example .env   # JWT_SECRET und RESEND_API_KEY setzen
node index.js

Bindet an 127.0.0.1:3010.

Registrierung

Beschränkt auf @ifb-schulen.com-Adressen (Regex IFB_EMAIL_RE in src/routes.js). Jeder neue Account muss per Mail bestätigt werden. Neue Lehrerkonten landen in einer Admin-Warteschlange.

Layout

index.js              Express-Bootstrap
src/db.js             SQLite, Schema, Migrationen
src/routes.js         Auth, Admin, Chat, Kalender, Tickets
src/teacher.js        Lehrerendpoints
src/files.js          Dateiablage mit Quota
src/mailer.js         Resend-Wrapper
public/               HTML-Seiten und E2EE-Primitiven

Lizenz

MIT. Siehe LICENSE.