Skip to content

Repository files navigation

Score – dein Abischnitt, live mitgerechnet



Der Abi-Planer für Baden-Württemberg. Kurse eintragen, Block I und Prüfungsblock live mitgerechnet — ohne Konto, ohne Server.

Website App License Next.js TypeScript


Inhalt


Was das hier ist

Dies ist die Marketing-Website zu Score, einer iOS- und iPadOS-App, die Schüler:innen der gymnasialen Oberstufe in Baden-Württemberg durch die Kursstufe begleitet. Score trägt Noten ein, rechnet Block I und den Prüfungsblock nach der amtlichen Formel und zeigt jederzeit den erwarteten Abischnitt.

Kein Konto, kein Backend. Alle Daten liegen in der privaten iCloud der Nutzer:in und gleichen sich zwischen iPhone und iPad ab. Gespeicherte Felder sind verschlüsselt — Apple sieht die Struktur der Daten, nicht ihre Werte.

Die App selbst liegt in einem eigenen Repository: levo-studio/score.


Wie Baden-Württemberg rechnet

Die Website erklärt die amtliche Rechnung, nicht eine vereinfachte Version davon. Kurz zusammengefasst:

flowchart LR
    A["42 Kurse\nbelegt"] --> B["40 Kurse\ngewertet"]
    B --> C["48\nWertungen"]
    C --> D["600 Punkte\nKursblock"]
    D --> E["+ 300 Punkte\nPrüfung"]
    E --> F["900 Punkte\n→ die Note"]
Loading

Kursblock (0–600 Punkte). Belegt werden mindestens 42 Kurse — zwölf in den drei Leistungsfächern, mindestens dreißig weitere. Eingebracht werden 40: wer mehr hat, klammert erst selbst, dann sortiert die App die schwächsten Kurse von unten heraus. Nur die Kurse der fünf Prüfungsfächer sind gesetzt. Zwei der drei Leistungsfächer zählen doppelt, aus 40 Kursen werden also 48 Wertungen. Die Punktzahl ist die Summe aller Wertungen, geteilt durch 48, mal 40 — mindestens 200 Punkte zum Bestehen.

Prüfungsblock (0–300 Punkte). Fünf Abiturprüfungen — drei schriftliche in den Leistungsfächern, zwei mündliche — zählen jeweils vierfach. Mindestens 100 Punkte zum Bestehen.

Note. Kursblock und Prüfungsblock ergeben 300 bis 900 Punkte. Die Note kommt aus der amtlichen Tabelle des Kultusministeriums in Schritten von 18 Punkten — nicht aus einer Formel.


Stack

Bereich → Wahl (aufklappen/zuklappen)
Bereich Wahl
Framework Next.js 16 (App Router)
Sprache TypeScript, strict
Styling Tailwind CSS 4
Animation GSAP + ScrollTrigger
Paketmanager pnpm
Hosting Self-hosted via Dokploy + Traefik
Registry GitHub Container Registry (GHCR)
CI/CD GitHub Actions

Lokal entwickeln

Voraussetzungen: Node.js 22, pnpm.

pnpm install
pnpm dev

Die Seite läuft danach unter http://localhost:6239.

pnpm build   # Produktions-Build
pnpm lint    # ESLint
pnpm start   # Produktions-Build lokal starten

Projektstruktur

src/ aufklappen
src/
├── app/                  Next.js App Router — Seiten, Metadaten, Health-Route
│   ├── datenschutz/
│   ├── impressum/
│   └── api/health/
├── components/
│   ├── sections/         Die Abschnitte der Startseite, in Reihenfolge
│   └── motion/           GSAP-Bausteine: Reveal, MaskLines, Stagger, Bars
└── lib/                  Konstanten, Theme-Hook, geteilte Klassen

Externe Verweise (App-Store-Link, GitHub-URLs) stehen gesammelt in src/lib/constants.ts — nirgendwo sonst im Code.


Deployment

Jeder Push auf main baut über .github/workflows/deploy.yml ein Docker-Image nach Dockerfile.dokploy, verifiziert es auf GHCR und löst danach das Deployment auf der Levo-Studio-Infrastruktur aus. Kein Schritt überspringt den vorherigen — ein fehlgeschlagener Build löst kein Deployment aus.


Datenschutz

Diese Website selbst setzt kein Tracking, keine Cookies und keinen Consent-Banner ein. Details dazu und zur App stehen unter /datenschutz.


Lizenz

Der Quellcode ist einsehbar, aber nicht Open Source: private Nutzung ist erlaubt, kommerzielle Nutzung und abgeleitete Werke sind es nicht.


Ein Produkt von Levo Studio · © 2026

About

Website der Score Abiturplaner BW App

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages