From 578dd4eab99b2ce531050b5a553e2aef0988eb48 Mon Sep 17 00:00:00 2001 From: Simon Date: Wed, 22 Apr 2026 21:30:40 +0200 Subject: [PATCH] rebrand: Klassenportal, domain info1.ifb.lol, server status - Replace INFO1 brand with Klassenportal everywhere (titles, nav, emails, TOTP issuer, recovery codes) - Update domain from info1.simon0x.xyz to info1.ifb.lol - Remove E2EE claims (e2ee.js was deleted, claims were false) - Add GET /api/health endpoint (DB check + uptime) - Add live server status section to landing page - Fix README: domain, title, layout table --- README.md | 13 +-- package.json | 4 +- public/admin.html | 4 +- public/app.html | 25 ++--- public/datenschutz.html | 11 +-- public/e2ee.js | 197 ------------------------------------- public/index.html | 137 +++++++++++++++++++++----- public/login.html | 6 +- public/reset-password.html | 6 +- src/db.js | 22 ----- src/mailer.js | 36 +++---- src/routes.js | 109 ++------------------ 12 files changed, 173 insertions(+), 397 deletions(-) delete mode 100644 public/e2ee.js 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 @@ -INFO1 · Admin +Klassenportal · Admin @@ -128,7 +128,7 @@ tbody td { padding: 10px 14px; vertical-align: middle; }
Klassenportal
-
INFO1
+
Klassenportal
Admin-Panel diff --git a/public/app.html b/public/app.html index adc0f7f..771f009 100644 --- a/public/app.html +++ b/public/app.html @@ -3,12 +3,11 @@ -INFO1 · Dashboard +Klassenportal · Dashboard -