diff --git a/README.md b/README.md index ac91701..59d6bd4 100644 --- a/README.md +++ b/README.md @@ -1,12 +1,12 @@ -# Schulapp +# Klassenportal -Dashboard für die Schulklassen. Stundenplan, Hausaufgaben, Noten, Fehlzeiten, Klassenkalender, Chat und Ende zu Ende verschlüsselte Nachrichten an einem Ort. +Privates Dashboard für Schulklassen. Stundenplan, Hausaufgaben, Noten, Fehlzeiten, Klassenkalender und Chat an einem Ort. -Läuft unter [info1.simon0x.xyz](https://info1.simon0x.xyz). +Läuft unter [info1.ifb.lol](https://info1.ifb.lol). ## 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. +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. ## Lokal starten @@ -26,12 +26,13 @@ Beschränkt auf `@ifb-schulen.com`-Adressen (Regex `IFB_EMAIL_RE` in `src/routes ``` index.js Express-Bootstrap +src/auth.js JWT-Sign/-Verify, requireAuth-Middleware src/db.js SQLite, Schema, Migrationen -src/routes.js Auth, Admin, Chat, Kalender, Tickets +src/routes.js Auth, Admin, Chat, Kalender, Tickets, Health src/teacher.js Lehrerendpoints src/files.js Dateiablage mit Quota src/mailer.js Resend-Wrapper -public/ HTML-Seiten und E2EE-Primitiven +public/ HTML-Seiten (Vanilla JS) ``` ## Lizenz diff --git a/package.json b/package.json index 440389b..b3ebb5f 100644 --- a/package.json +++ b/package.json @@ -5,14 +5,14 @@ "scripts": { "start": "node index.js" }, - "keywords": ["dashboard", "education", "class", "self-hosted", "e2ee", "express", "sqlite"], + "keywords": ["dashboard", "education", "class", "self-hosted", "express", "sqlite"], "author": "lulinretrograde", "license": "MIT", "repository": { "type": "git", "url": "git+https://github.com/lulinretrograde/ifb-schulapp.git" }, - "description": "Self-hosted class dashboard: timetable, homework, grades, shared calendar, class chat, and end-to-end encrypted direct messages. Built on Node.js, Express, SQLite, vanilla JS.", + "description": "Self-hosted class dashboard: timetable, homework, grades, shared calendar, and class chat. Built on Node.js, Express, SQLite, vanilla JS.", "dependencies": { "bcryptjs": "^3.0.3", "better-sqlite3": "^12.9.0", diff --git a/public/admin.html b/public/admin.html index 88d1ef5..0620ac8 100644 --- a/public/admin.html +++ b/public/admin.html @@ -3,7 +3,7 @@
-