Commit Graph

  • 77c720e2df Document Stundenplan + Schulkalender end-of-session state main Benjamin Admin 2026-05-22 18:41:31 +02:00
  • 89011d64f7 gofmt notification files Benjamin Admin 2026-05-22 18:14:15 +02:00
  • 8311b33fb3 Phase 9d: Notification cron + multilingual templates + status badges Benjamin Admin 2026-05-22 18:12:39 +02:00
  • 85957ed5db gofmt parent backend files Benjamin Admin 2026-05-22 11:52:51 +02:00
  • d9858084dd Phase 9c: Parent accounts, magic-link login + parent timetable view Benjamin Admin 2026-05-22 11:50:35 +02:00
  • 33409352ee Phase 9b: Schul-Events CRUD + Schuljahres-Rollover Benjamin Admin 2026-05-22 10:32:33 +02:00
  • 3b8df0d294 Schulkalender test: use exact text for legend assertions Benjamin Admin 2026-05-22 09:54:22 +02:00
  • 09f6f5a5e1 gofmt calendar files Benjamin Admin 2026-05-22 09:47:37 +02:00
  • 97e37837ee Phase 9a: Schulkalender — Bundesland-Auswahl + Monatsansicht mit Ferien Benjamin Admin 2026-05-22 09:46:39 +02:00
  • 65e7ed94f6 gofmt middleware.go Benjamin Admin 2026-05-22 08:58:11 +02:00
  • 306886a42b Phase 8: CSV + ICS export, print view, MkDocs docs, SBOM + dev-mode auth Benjamin Admin 2026-05-22 08:57:07 +02:00
  • bf5ea860cc Phase 7: pinning, plan versions, solver budget + UX polish Benjamin Admin 2026-05-22 08:19:39 +02:00
  • 612ecec6d9 Phase 6: Plan-Ansicht — solution list + weekly grid view Benjamin Admin 2026-05-22 01:03:55 +02:00
  • 0744769d88 Split DB-driven constraints into hard + soft variants Benjamin Admin 2026-05-22 00:40:10 +02:00
  • d3f311a32e Wrap score-director config in ScoreDirectorFactoryConfig Benjamin Admin 2026-05-22 00:33:34 +02:00
  • 77650e8092 Use 'timefold' (not 'timefold-solver') and revert to ARM platform Benjamin Admin 2026-05-22 00:28:13 +02:00
  • 22f08a232d Pin solver-service to linux/amd64 (no ARM wheels on PyPI) Benjamin Admin 2026-05-22 00:22:34 +02:00
  • 1f2f304724 Use default-jdk-headless on python:slim instead of temurin:alpine Benjamin Admin 2026-05-22 00:19:03 +02:00
  • 53cfe9238f Apply gofmt to timetable_solution_migrations.go Benjamin Admin 2026-05-22 00:18:00 +02:00
  • f042f2896b Phase 5: Timefold timetable-solver-service + solution persistence Benjamin Admin 2026-05-22 00:16:52 +02:00
  • 082a5bb68c Strip orphan straight-quote pairings in JSX descriptions Benjamin Admin 2026-05-21 23:52:09 +02:00
  • a315db0388 Fix JSX attribute syntax in constraint editor descriptions Benjamin Admin 2026-05-21 23:41:24 +02:00
  • 7c96d89927 Stundenplan Phase 3d: all 15 constraint editors via shared shell Benjamin Admin 2026-05-21 23:27:34 +02:00
  • c2c09e1cd9 Stundenplan Phase 3c: complete Stammdaten + RegelnHub with 4 editors Benjamin Admin 2026-05-21 23:08:15 +02:00
  • 4657589b89 Fix Playwright selector ambiguities in stundenplan.spec.ts Benjamin Admin 2026-05-21 22:53:10 +02:00
  • 73636f76a2 Stundenplan Phase 3b: 3 more Stammdaten managers, first constraint editor, full test coverage Benjamin Admin 2026-05-21 22:44:39 +02:00
  • f21ecf293b Add Stundenplan frontend scaffolding in studio-v2 Benjamin Admin 2026-05-21 22:25:18 +02:00
  • 64e7176267 Apply gofmt to timetable.go Benjamin Admin 2026-05-21 22:13:17 +02:00
  • e958f88a2d Add timetable scheduler Phases 1 + 2 to school-service Benjamin Admin 2026-05-21 22:12:23 +02:00
  • 685899a9bc chore: bump next to patched versions (CVE-2026-44578) coolify Sharang Parnerkar 2026-05-15 18:16:23 +02:00
  • a1488b2fec Fix: enrich non-EN Kaikki search results with translations from EN hub Benjamin Admin 2026-04-29 18:40:29 +02:00
  • 8d53b1f6b9 Translate Sidebar nav labels into 26 languages Benjamin Admin 2026-04-29 18:33:11 +02:00
  • 399ab88f5f Translate language dropdown tabs + add info box in 26 languages Benjamin Admin 2026-04-29 18:23:05 +02:00
  • d52eb43a32 Fix: auto-fill target translation with best match (not only single result) Benjamin Admin 2026-04-29 18:00:19 +02:00
  • bde0d57b5a Add Schulsprache (school language) as second language setting Benjamin Admin 2026-04-29 17:49:58 +02:00
  • fc49d87928 Add exercise translations for all 26 European languages Benjamin Admin 2026-04-29 17:30:35 +02:00
  • 0018076ed5 Unify language system: one setting for all modules Benjamin Admin 2026-04-29 16:54:27 +02:00
  • a30f10a467 Widen AudioButton lang prop to string for multi-language support Benjamin Admin 2026-04-29 16:19:45 +02:00
  • a44d360cbc Fix useRef initial value for React 19 compatibility Benjamin Admin 2026-04-29 16:04:43 +02:00
  • 52a15b24fe Add custom word entry + language pair support for learning units Benjamin Admin 2026-04-29 15:24:13 +02:00
  • 855cc4caf4 Fix: make 'Alle zur Unit' button visible — full-width layout below word tags Benjamin Admin 2026-04-29 13:47:28 +02:00
  • c09fc6c7bc Add 'Alle zur Unit' button + fix topic display Benjamin Admin 2026-04-29 13:17:38 +02:00
  • 387219682d Fix: Topic word labels translate to selected language Benjamin Admin 2026-04-29 12:38:35 +02:00
  • 6f43224fda Simplify Sidebar: Remove Woerterbuch, rename to "Lernmodule" Benjamin Admin 2026-04-29 12:08:13 +02:00
  • 9b96998654 Fix: Topic "Alle laden" always searches in EN (topics are English word lists) Benjamin Admin 2026-04-29 11:57:18 +02:00
  • 91e8b92bdc Add topic suggestions: search "banana" → suggests "Fruit/Obst" topic Benjamin Admin 2026-04-29 10:56:36 +02:00
  • c2efb9934c Fix: Vocabulary search sends lang parameter + language dropdown Benjamin Admin 2026-04-29 09:10:00 +02:00
  • 0d2e79da66 Fix: Hardcode Kaikki stats (COUNT on 6M rows took 100s, blocked server) Benjamin Admin 2026-04-28 22:47:00 +02:00
  • cb4ea8e49a Connect frontend to Kaikki dictionary (6.27M words, 24 languages) Benjamin Admin 2026-04-28 17:49:28 +02:00
  • d14826b199 Fix: Build error + explanation above exercise + aligned columns + impressum link Benjamin Admin 2026-04-28 14:54:12 +02:00
  • 693989c1a6 Add exercise explanations in all 26 languages Benjamin Admin 2026-04-28 14:14:48 +02:00
  • bd24fa6ba6 Fix: Cast entry to avoid TypeScript 'never' inference Benjamin Admin 2026-04-28 13:58:09 +02:00
  • ef821831a4 Fix: Fallback to English (not German) for unsupported languages Benjamin Admin 2026-04-28 13:37:19 +02:00
  • 93f7ef88e3 Add Impressum with attribution + expand language dropdown to 26 languages Benjamin Admin 2026-04-28 12:49:03 +02:00
  • 6ea20fa1a3 Add persistent volume for ~/Arbeitsblaetter (learning units, QA, audio cache) Benjamin Admin 2026-04-28 09:11:01 +02:00
  • bf2f7daaeb Fix: Wrap ternary else-branch in Fragment for SelectedImage Benjamin Admin 2026-04-28 08:37:57 +02:00
  • fc2fe98bd9 Fix: Extract SelectedImage as component (IIFE breaks JSX parser) Benjamin Admin 2026-04-28 08:24:19 +02:00
  • 1a272371f4 Add image preview under selected word in Match exercise Benjamin Admin 2026-04-28 07:52:16 +02:00
  • fdde5d43b3 Fix: Wikipedia User-Agent (was 403 Forbidden) Benjamin Admin 2026-04-27 23:51:46 +02:00
  • f6caa3091f Add image service: Wikipedia photos + emoji fallback for vocabulary Benjamin Admin 2026-04-27 23:36:48 +02:00
  • 91d6918e2c Fix: Explanation card visible + visual divider between 2/3 and 1/3 Benjamin Admin 2026-04-27 23:07:57 +02:00
  • 82f5b4fbba Redesign: 2/3 + 1/3 layout for exercises with native helper panel Benjamin Admin 2026-04-27 22:30:07 +02:00
  • afe7a983d1 Fix Match: Equal card heights + progress bar with count Benjamin Admin 2026-04-27 19:26:53 +02:00
  • 6d54ee8178 Fix Match: Progress bar + counter, audio on EN column too Benjamin Admin 2026-04-27 18:35:00 +02:00
  • a1664ab12c Redesign Match exercise: 3 columns, audio, scoring, native language Benjamin Admin 2026-04-27 18:03:35 +02:00
  • 9f21bd070a Fix: Language switch takes effect immediately (React Context) Benjamin Admin 2026-04-27 14:45:53 +02:00
  • 5012699aaf Add persistent language switcher across all learn/parent pages Benjamin Admin 2026-04-27 09:23:01 +02:00
  • d8771bb509 Make /learn the central landing page for parents + students Benjamin Admin 2026-04-27 08:46:58 +02:00
  • 7f8743d1e3 Redesign Parent Quiz: explanation panel + trilingual buttons Benjamin Admin 2026-04-27 08:16:30 +02:00
  • 9de26701dd Fix: Remove duplicate Sidebar from /learn (layout.tsx provides it) Benjamin Admin 2026-04-27 07:54:53 +02:00
  • c252556528 Fix: Quiz fallback to QA data when MC not generated Benjamin Admin 2026-04-27 07:43:16 +02:00
  • 68d1679294 Wire all 7 learn pages to central translation system Benjamin Admin 2026-04-27 00:23:38 +02:00
  • 9e63b09cb7 Wire Parent Quiz to central translation system + native language audio Benjamin Admin 2026-04-27 00:22:39 +02:00
  • bd3ca854ef Add central exercise translation system (7 languages, 30+ keys) Benjamin Admin 2026-04-27 00:18:12 +02:00
  • b495e63e6f Add TTS abbreviation expansion (sth→something, sb→somebody, etc.) Benjamin Admin 2026-04-27 00:07:46 +02:00
  • 198a0b2a0d Fix: Use /synthesize-direct for correct language selection Benjamin Admin 2026-04-26 23:46:40 +02:00
  • 6b3bff48f0 Fix: Proxy uses arrayBuffer for audio/image responses (not text) Benjamin Admin 2026-04-26 23:33:57 +02:00
  • 0f0bbc3dc0 Switch AudioButton to Piper TTS (Thorsten/Lessac voices) Benjamin Admin 2026-04-26 23:17:39 +02:00
  • 3cdab5a967 Fix: Hide sidebar scrollbar Benjamin Admin 2026-04-26 22:57:00 +02:00
  • f2300219d7 Fix: Hide scrollbar on content area (scroll still works) Benjamin Admin 2026-04-26 21:23:14 +02:00
  • aaa52a8901 Fix: Remove LearnLayout from parent/quiz — layout.tsx handles it Benjamin Admin 2026-04-26 21:08:04 +02:00
  • 1fb6702bf4 Fix: Replace extra </div> with </> for fragment closing Benjamin Admin 2026-04-26 20:58:02 +02:00
  • 6210ceb05e Add central layout.tsx for /learn/* and /parent/* routes Benjamin Admin 2026-04-26 20:44:40 +02:00
  • 3619ddfdad Fix: destructure setLanguage from useLanguage Benjamin Admin 2026-04-26 20:15:10 +02:00
  • f2346b88cd Fix: Parent portal language selector as dropdown instead of onboarding redirect Benjamin Admin 2026-04-26 20:08:07 +02:00
  • eecb5472dd Fix: Update all old-style imports inside packages to new paths Benjamin Admin 2026-04-26 00:19:13 +02:00
  • 5f2ed44654 Cleanup: Delete ALL 242 shims, update ALL consumer imports Benjamin Admin 2026-04-26 00:11:33 +02:00
  • d093a4d388 Restructure: Move final 12 root files into packages (klausur-service) Benjamin Admin 2026-04-25 23:19:11 +02:00
  • cba877c65a Restructure: Move final 16 root files into packages (backend-lehrer) Benjamin Admin 2026-04-25 22:50:37 +02:00
  • 6be555fb7c Add shim cleanup tracker for future import migration Benjamin Admin 2026-04-25 22:38:13 +02:00
  • dde45b29db Restructure: Move 43 files into 8 domain packages (backend-lehrer) Benjamin Admin 2026-04-25 22:32:45 +02:00
  • 165c493d1e Restructure: Move 52 files into 7 domain packages Benjamin Admin 2026-04-25 22:10:48 +02:00
  • 0504d22b8e Restructure: Move ocr_pipeline + labeling + crop into ocr/ package Benjamin Admin 2026-04-25 21:51:43 +02:00
  • 59c400b9aa Restructure: Move grid_* + vocab_* into packages (klausur-service) Benjamin Admin 2026-04-25 21:30:20 +02:00
  • 098a2ff092 Fix: Resolve all lint errors from ocr/ restructure Benjamin Admin 2026-04-25 21:15:53 +02:00
  • cb1be59e46 Restructure: Move 47 cv_* files into ocr/ package Benjamin Admin 2026-04-25 21:03:54 +02:00
  • 45287b3541 Fix: Sidebar scrollable + add Eltern-Portal nav link Benjamin Admin 2026-04-25 20:49:44 +02:00
  • d87645ffce Fix: Cast language selection to Language type Benjamin Admin 2026-04-25 20:30:11 +02:00
  • d4959172a9 Add migration learning platform: Onboarding, Translation, Parent Portal Benjamin Admin 2026-04-25 20:17:25 +02:00
  • b49ee3467e Fix: Revert to inline shared types (Turbopack can't resolve path aliases) Benjamin Admin 2026-04-25 17:13:18 +02:00