pdf-quiz-generator/backend/app/routers
Daniel 84c4917d91 In-progress quizzes panel, navigation warning, attempt reuse, progress via Redis
In-progress quizzes section (Quizzes page):
- Shows all incomplete (not submitted) attempts in an amber ⏸ panel
- Each shows quiz title, start date, question count
- Resume button → navigates to quiz (which loads saved answers from Redis)
- Delete button (ConfirmButton) → deletes attempt + clears reminders

Quiz navigation warning:
- beforeunload handler warns when closing browser tab/window mid-quiz
- Leave confirmation modal when navigating away via React Router
  (shows "Your progress is saved — resume later" + Stay/Leave buttons)

Quiz progress:
- Scroll on Next/Previous REMOVED per user request — page no longer scrolls
- Progress saved to Redis on every answer/navigation (1.5s debounce)
- Works across browsers, survives logout
- ModeSelectScreen loads saved progress from API and shows Resume button

Attempt management:
- POST /attempts/start now REUSES existing incomplete attempt (no more
  creating duplicate incomplete attempts on every quiz start)
  Pass fresh=true to force a new attempt
- GET /attempts/in-progress — list incomplete attempts for current user
- DELETE /attempts/{id} — delete attempt + reminders

Cleaned up 10 duplicate incomplete attempts from the database

Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
2026-04-01 05:16:14 +02:00
..
__init__.py Initial commit: PDF Quiz Generator app 2026-03-30 20:04:53 +00:00
admin.py Major: categories, question bank, security fixes, mobile layout, UX improvements 2026-03-31 20:08:05 +02:00
attempts.py In-progress quizzes panel, navigation warning, attempt reuse, progress via Redis 2026-04-01 05:16:14 +02:00
auth.py Major: categories, question bank, security fixes, mobile layout, UX improvements 2026-03-31 20:08:05 +02:00
categories.py Major: categories, question bank, security fixes, mobile layout, UX improvements 2026-03-31 20:08:05 +02:00
documents.py UI overhaul, bug fixes, section delete, category at extraction 2026-04-01 01:12:19 +02:00
nextcloud.py Fix 5 bugs: dashboard stats, document access, Nextcloud filename, upload tab, results colours 2026-03-31 19:17:46 +02:00
question_categories.py Fix question bank: select-all, bulk category, page size, category delete 2026-04-01 02:55:25 +02:00
questions.py Fix question bank: select-all, bulk category, page size, category delete 2026-04-01 02:55:25 +02:00
quizzes.py Fix quiz delete (500 error), add trash bin, quiz resume, hide/publish, remove JS dialogs 2026-04-01 04:51:41 +02:00
tts.py Major platform update: pgvector search, multi-provider TTS, settings page, CLI 2026-03-31 18:03:10 +02:00