From a3a6ef79959887d1e7bb0e5a0a50b768063e952f Mon Sep 17 00:00:00 2001 From: Daniel Date: Mon, 7 Sep 2026 03:10:23 +0200 Subject: [PATCH] feat: redesign quiz runner and add study tools Add Orthobullets-inspired numbered-answer UI, explicit study response confirmation, response statistics, review navigation, safe calculator, keyboard controls and sourced educator lab references. Persist attempt mode to prevent query-flag exam disclosure. Combined deployed-image backend suite (22), frontend suite (48), build and synthetic desktop/mobile browser checks pass. PostgreSQL round-trip and independent review remain release gates; no production deployment. --- .../versions/d94a26b8f302_study_tools.py | 30 +++ backend/app/main.py | 2 + backend/app/models/attempt.py | 1 + backend/app/models/lab_reference.py | 20 ++ backend/app/routers/attempts.py | 22 ++- backend/app/routers/quizzes.py | 43 +++-- backend/app/routers/study_tools.py | 129 +++++++++++++ backend/app/schemas/attempt.py | 6 +- backend/app/schemas/quiz.py | 8 +- backend/tests/test_study_tools.py | 107 +++++++++++ backend/tests/test_study_tools_migration.py | 39 ++++ docs/quiz-revamp-progress.md | 16 +- docs/quiz-revamp/desktop-question.png | Bin 0 -> 107951 bytes docs/quiz-revamp/mobile-question.png | Bin 0 -> 98352 bytes docs/quiz-revamp/study-feedback.png | Bin 0 -> 104450 bytes frontend/src/components/QuizTools.css | 36 ++++ frontend/src/components/QuizTools.jsx | 132 +++++++++++++ frontend/src/pages/CustomQuizPage.jsx | 5 +- frontend/src/pages/QuizPage.jsx | 179 ++++++++++++------ frontend/src/pages/QuizPage.test.jsx | 128 +++++++++++++ frontend/src/pages/QuizPlayer.css | 73 +++++++ frontend/src/pages/ResultsPage.jsx | 41 +++- frontend/src/utils/calculator.js | 39 ++++ frontend/src/utils/calculator.test.js | 14 ++ 24 files changed, 977 insertions(+), 93 deletions(-) create mode 100644 backend/alembic/versions/d94a26b8f302_study_tools.py create mode 100644 backend/app/models/lab_reference.py create mode 100644 backend/app/routers/study_tools.py create mode 100644 backend/tests/test_study_tools.py create mode 100644 backend/tests/test_study_tools_migration.py create mode 100644 docs/quiz-revamp/desktop-question.png create mode 100644 docs/quiz-revamp/mobile-question.png create mode 100644 docs/quiz-revamp/study-feedback.png create mode 100644 frontend/src/components/QuizTools.css create mode 100644 frontend/src/components/QuizTools.jsx create mode 100644 frontend/src/pages/QuizPage.test.jsx create mode 100644 frontend/src/pages/QuizPlayer.css create mode 100644 frontend/src/utils/calculator.js create mode 100644 frontend/src/utils/calculator.test.js diff --git a/backend/alembic/versions/d94a26b8f302_study_tools.py b/backend/alembic/versions/d94a26b8f302_study_tools.py new file mode 100644 index 0000000..ac4d510 --- /dev/null +++ b/backend/alembic/versions/d94a26b8f302_study_tools.py @@ -0,0 +1,30 @@ +"""Persist attempt mode and educator-maintained lab references.""" +from alembic import op + +revision = "d94a26b8f302" +down_revision = "c82d19e4a601" +branch_labels = None +depends_on = None + + +def upgrade(): + op.execute("ALTER TABLE quiz_attempts ADD COLUMN IF NOT EXISTS mode VARCHAR(10)") + op.execute('''CREATE TABLE IF NOT EXISTS lab_reference_values ( + id SERIAL PRIMARY KEY, + name VARCHAR(120) NOT NULL, + "group" VARCHAR(60) NOT NULL, + reference_range VARCHAR(250) NOT NULL, + units VARCHAR(80) NOT NULL, + age_group VARCHAR(120) NOT NULL, + specimen VARCHAR(120) NOT NULL, + source VARCHAR(500) NOT NULL, + source_url VARCHAR(2000), + is_published BOOLEAN NOT NULL DEFAULT FALSE, + updated_by INTEGER REFERENCES users(id) ON DELETE SET NULL, + updated_at TIMESTAMP NOT NULL DEFAULT NOW() + )''') + + +def downgrade(): + op.execute("DROP TABLE IF EXISTS lab_reference_values") + op.execute("ALTER TABLE quiz_attempts DROP COLUMN IF EXISTS mode") diff --git a/backend/app/main.py b/backend/app/main.py index 179a790..994e964 100644 --- a/backend/app/main.py +++ b/backend/app/main.py @@ -12,6 +12,7 @@ from app.logging_config import setup_logging setup_logging(settings.LOG_LEVEL) from app.database import engine, Base, SessionLocal from app.routers import auth, documents, quizzes, attempts, admin, tts, nextcloud, categories, questions, question_categories, favorites, teach, contact, tags, flashcards, courses, mobile, mynote +from app.routers import study_tools from app.utils.auth import get_password_hash from app.utils.scheduler import start_scheduler, stop_scheduler @@ -633,6 +634,7 @@ app.include_router(flashcards.router, prefix="/api/flashcards", tags=["flashcard app.include_router(courses.router, prefix="/api/courses", tags=["courses"]) app.include_router(mobile.router, prefix="/api/mobile", tags=["mobile"]) app.include_router(mynote.router, prefix="/api/mynote", tags=["mynote"]) +app.include_router(study_tools.router, prefix="/api/study-tools", tags=["study-tools"]) @app.get("/api/health") diff --git a/backend/app/models/attempt.py b/backend/app/models/attempt.py index 3798ac4..802de0d 100644 --- a/backend/app/models/attempt.py +++ b/backend/app/models/attempt.py @@ -12,6 +12,7 @@ class QuizAttempt(Base): id = Column(Integer, primary_key=True, index=True) quiz_id = Column(Integer, ForeignKey("quizzes.id", ondelete="CASCADE"), nullable=False) user_id = Column(Integer, ForeignKey("users.id", ondelete="CASCADE"), nullable=False) + mode = Column(String(10), nullable=True) # legacy NULL resumes without exposing answers score = Column(Integer, default=0) total_questions = Column(Integer, default=0) started_at = Column(DateTime, default=datetime.utcnow) diff --git a/backend/app/models/lab_reference.py b/backend/app/models/lab_reference.py new file mode 100644 index 0000000..11cbd30 --- /dev/null +++ b/backend/app/models/lab_reference.py @@ -0,0 +1,20 @@ +from datetime import datetime +from sqlalchemy import Boolean, Column, DateTime, ForeignKey, Integer, String +from app.database import Base + + +class LabReference(Base): + __tablename__ = "lab_reference_values" + + id = Column(Integer, primary_key=True) + name = Column(String(120), nullable=False) + group = Column(String(60), nullable=False) + reference_range = Column(String(250), nullable=False) + units = Column(String(80), nullable=False) + age_group = Column(String(120), nullable=False) + specimen = Column(String(120), nullable=False) + source = Column(String(500), nullable=False) + source_url = Column(String(2000), nullable=True) + is_published = Column(Boolean, nullable=False, default=False, server_default="false") + updated_by = Column(Integer, ForeignKey("users.id", ondelete="SET NULL"), nullable=True) + updated_at = Column(DateTime, nullable=False, default=datetime.utcnow, onupdate=datetime.utcnow) diff --git a/backend/app/routers/attempts.py b/backend/app/routers/attempts.py index 141c92e..ac5e363 100644 --- a/backend/app/routers/attempts.py +++ b/backend/app/routers/attempts.py @@ -1,5 +1,6 @@ import logging from datetime import datetime +from typing import Literal from fastapi import APIRouter, Depends, HTTPException, Request @@ -11,6 +12,8 @@ from sqlalchemy import func from app.database import get_db from app.models.quiz import Quiz from app.models.question import Question +from app.models.question_category import QuestionCategory +from app.services.quiz_builder import category_breadcrumbs from app.models.attempt import QuizAttempt, AttemptAnswer from app.models.pdf_document import PDFDocument from app.models.user import User @@ -33,6 +36,7 @@ router = APIRouter() def start_attempt( quiz_id: int, fresh: bool = False, + mode: Literal["study", "exam"] | None = None, db: Session = Depends(get_db), current_user: User = Depends(get_current_user), ): @@ -42,6 +46,10 @@ def start_attempt( if not can_access_quiz(db, quiz, current_user): raise HTTPException(status_code=403, detail="This quiz is private") + chosen_mode = mode or ("study" if quiz.mode == "learning" else "exam") + if quiz.course_id is not None: + chosen_mode = "study" if quiz.mode == "learning" and quiz.allow_review == 1 else "exam" + # Enforce max_attempts if quiz.max_attempts: completed_count = db.query(QuizAttempt).filter( @@ -68,6 +76,7 @@ def start_attempt( percentage=0.0, started_at=existing.started_at, completed_at=None, + mode=existing.mode or "exam", ) # Question pool: randomly select N questions if questions_per_attempt is set @@ -84,6 +93,7 @@ def start_attempt( user_id=current_user.id, total_questions=total_q, selected_question_ids=selected_ids, + mode=chosen_mode, ) db.add(attempt) db.commit() @@ -96,6 +106,7 @@ def start_attempt( percentage=0.0, started_at=attempt.started_at, completed_at=None, + mode=attempt.mode, ) @@ -118,6 +129,7 @@ def submit_attempt( quiz = db.query(Quiz).filter(Quiz.id == attempt.quiz_id).first() require_quiz_access(db, quiz, current_user) + categories = db.query(QuestionCategory).all() grades = grade_quiz_answers(get_quiz_questions(db, attempt.quiz_id), [(ans.question_id, ans.user_answer) for ans in submission.answers], attempt.selected_question_ids) score = sum(correct for _, _, correct in grades) @@ -142,6 +154,9 @@ def submit_attempt( is_correct=is_correct, explanation=q.explanation, explanation_image_path=q.explanation_image_path, + image_path=q.image_path, + page_reference=q.page_reference, + category_breadcrumbs=category_breadcrumbs(categories, q.question_category_id), )) attempt.score = score @@ -258,7 +273,7 @@ def save_progress( "attempt_id": data.attempt_id, "answers": data.answers, "current_idx": data.current_idx, - "mode": data.mode, + "mode": attempt.mode or "exam", "voice": data.voice, "time_left": data.time_left, "started_at": data.started_at, @@ -311,6 +326,7 @@ def get_progress( return None saved = _json.loads(data) + saved["mode"] = attempt.mode or "exam" # If the quiz was suspended, timer is paused — re-anchor on resume so # the held time_left becomes the new total_time starting now. @@ -588,6 +604,7 @@ def get_attempt( is_course_quiz = quiz and quiz.course_id is not None review_allowed = not is_course_quiz or (quiz.allow_review == 1) + categories = db.query(QuestionCategory).all() # Never reveal review content for an unfinished attempt or an unselected pool question. review_allowed = review_allowed and attempt.completed_at is not None submitted_map = {ans.question_id: ans for ans in attempt.answers} @@ -607,6 +624,9 @@ def get_attempt( is_correct=ans.is_correct if ans else False, explanation=q.explanation, explanation_image_path=q.explanation_image_path, + image_path=q.image_path, + page_reference=q.page_reference, + category_breadcrumbs=category_breadcrumbs(categories, q.question_category_id), )) percentage = (attempt.score / attempt.total_questions * 100) if attempt.total_questions > 0 else 0 diff --git a/backend/app/routers/quizzes.py b/backend/app/routers/quizzes.py index fbc4934..f5f9f92 100644 --- a/backend/app/routers/quizzes.py +++ b/backend/app/routers/quizzes.py @@ -10,6 +10,8 @@ from app.models.question import Question as QuestionModel from app.models.section import Section from app.models.attempt import QuizAttempt from app.models.user import User +from app.models.question_category import QuestionCategory +from app.services.quiz_builder import category_breadcrumbs from app.schemas.quiz import QuizCreate, QuizUpdate, QuizResponse, QuizDetail, QuizLearningDetail, QuizReview from app.services import quiz_service from app.utils.quiz_access import can_access_quiz, general_quiz_visibility, require_quiz_access, set_quiz_shared @@ -286,33 +288,32 @@ def get_quiz( db: Session = Depends(get_db), current_user: User = Depends(get_current_user), ): - """Get quiz for taking. study=true forces answers/explanations to be included. - attempt_id filters to the question subset selected for that attempt (question pool).""" + """Return selected questions; only an authorized study/completed attempt can reveal answers.""" quiz = db.query(Quiz).filter(Quiz.id == quiz_id, Quiz.deleted_at.is_(None)).first() if not quiz: raise HTTPException(status_code=404, detail="Quiz not found") if not can_access_quiz(db, quiz, current_user): raise HTTPException(status_code=403, detail="This quiz is private") - if study or quiz.mode == "learning": - if quiz.mode != "learning": - require_quiz_access(db, quiz, current_user, review=True) - result = QuizLearningDetail.model_validate(quiz) - else: - result = QuizDetail.model_validate(quiz) - - # Filter questions if attempt has a question pool selection - if attempt_id: - from app.models.attempt import QuizAttempt - attempt = db.query(QuizAttempt).filter( - QuizAttempt.id == attempt_id, - QuizAttempt.user_id == current_user.id, - ).first() - if attempt and attempt.selected_question_ids: - sel = set(attempt.selected_question_ids) - result.questions = [q for q in result.questions if q.id in sel] - result.questions_count = len(result.questions) - + attempt = None + if attempt_id is not None: + attempt = db.query(QuizAttempt).filter_by(id=attempt_id, quiz_id=quiz.id, user_id=current_user.id).first() + if not attempt: + raise HTTPException(404, "Attempt not found for this quiz") + reveal = attempt is not None and (attempt.mode == "study" or attempt.completed_at is not None) + if study and not reveal: + raise HTTPException(403, "Answers are hidden until the exam is submitted") + if reveal: + require_quiz_access(db, quiz, current_user, review=True) + result = (QuizLearningDetail if reveal else QuizDetail).model_validate(quiz) + result.attempt_mode = (attempt.mode or "exam") if attempt else None + if attempt and attempt.selected_question_ids is not None: + selected = set(attempt.selected_question_ids) + result.questions = [q for q in result.questions if q.id in selected] + result.questions_count = len(result.questions) + categories = db.query(QuestionCategory).all() + for question in result.questions: + question.category_breadcrumbs = category_breadcrumbs(categories, question.question_category_id) return result diff --git a/backend/app/routers/study_tools.py b/backend/app/routers/study_tools.py new file mode 100644 index 0000000..3a576d2 --- /dev/null +++ b/backend/app/routers/study_tools.py @@ -0,0 +1,129 @@ +"""Educator-maintained lab references and authorized question response statistics.""" +from collections import Counter +from datetime import datetime + +from fastapi import APIRouter, Depends, HTTPException +from pydantic import BaseModel, ConfigDict, Field, HttpUrl, field_validator +from sqlalchemy import func, or_ +from sqlalchemy.orm import Session + +from app.database import get_db +from app.models.attempt import AttemptAnswer, QuizAttempt +from app.models.lab_reference import LabReference +from app.models.question import Question +from app.models.quiz import Quiz +from app.models.user import User +from app.utils.auth import get_current_user, require_moderator +from app.utils.quiz_access import general_quiz_visibility, require_quiz_access +from app.utils.quiz_questions import question_in_quiz + +router = APIRouter() + + +class LabInput(BaseModel): + name: str = Field(min_length=1, max_length=120) + group: str = Field(min_length=1, max_length=60) + reference_range: str = Field(min_length=1, max_length=250) + units: str = Field(min_length=1, max_length=80) + age_group: str = Field(min_length=1, max_length=120) + specimen: str = Field(min_length=1, max_length=120) + source: str = Field(min_length=1, max_length=500) + source_url: HttpUrl | None = None + is_published: bool = False + + @field_validator("source_url") + @classmethod + def bounded_source_url(cls, value): + if value is not None and len(str(value)) > 2000: + raise ValueError("Source URL must be at most 2000 characters") + return value + + @field_validator("name", "group", "reference_range", "units", "age_group", "specimen", "source") + @classmethod + def not_blank(cls, value): + if not value.strip(): + raise ValueError("A value is required") + return value.strip() + + +class LabOutput(LabInput): + model_config = ConfigDict(from_attributes=True) + id: int + updated_at: datetime + + +@router.get("/lab-values", response_model=list[LabOutput]) +def lab_values(include_drafts: bool = False, db: Session = Depends(get_db), user: User = Depends(get_current_user)): + if include_drafts and not user.is_moderator: + raise HTTPException(403, "Educator access required") + query = db.query(LabReference) + if not include_drafts: + query = query.filter(LabReference.is_published.is_(True)) + # ponytail: bounded personal-project table; add pagination before exceeding 500 entries. + return query.order_by(LabReference.group, LabReference.name, LabReference.age_group).limit(500).all() + + +def lab_fields(data): + fields = data.model_dump() + fields["source_url"] = str(data.source_url) if data.source_url else None + return fields + + +@router.post("/lab-values", response_model=LabOutput, status_code=201) +def create_lab_value(data: LabInput, db: Session = Depends(get_db), user: User = Depends(require_moderator)): + entry = LabReference(**lab_fields(data), updated_by=user.id) + db.add(entry) + db.commit() + db.refresh(entry) + return entry + + +@router.put("/lab-values/{entry_id}", response_model=LabOutput) +def update_lab_value(entry_id: int, data: LabInput, db: Session = Depends(get_db), user: User = Depends(require_moderator)): + entry = db.get(LabReference, entry_id) + if not entry: + raise HTTPException(404, "Reference not found") + for key, value in lab_fields(data).items(): + setattr(entry, key, value) + entry.updated_by = user.id + entry.updated_at = datetime.utcnow() + db.commit() + db.refresh(entry) + return entry + + +@router.delete("/lab-values/{entry_id}", status_code=204) +def delete_lab_value(entry_id: int, db: Session = Depends(get_db), user: User = Depends(require_moderator)): + entry = db.get(LabReference, entry_id) + if not entry: + raise HTTPException(404, "Reference not found") + db.delete(entry) + db.commit() + + +@router.get("/attempts/{attempt_id}/questions/{question_id}/responses") +def question_responses(attempt_id: int, question_id: int, db: Session = Depends(get_db), user: User = Depends(get_current_user)): + attempt = db.query(QuizAttempt).filter_by(id=attempt_id, user_id=user.id).first() + if not attempt: + raise HTTPException(404, "Attempt not found") + quiz = db.get(Quiz, attempt.quiz_id) + require_quiz_access(db, quiz, user, review=True) + if attempt.completed_at is None and attempt.mode != "study": + raise HTTPException(403, "Responses are hidden until the exam is submitted") + if not question_in_quiz(db, quiz.id, question_id) or (attempt.selected_question_ids is not None and question_id not in attempt.selected_question_ids): + raise HTTPException(404, "Question not selected for this attempt") + question = db.get(Question, question_id) + rows = db.query(AttemptAnswer.user_answer, func.count(AttemptAnswer.id)).join( + QuizAttempt, QuizAttempt.id == AttemptAnswer.attempt_id).join(Quiz, Quiz.id == QuizAttempt.quiz_id).filter( + AttemptAnswer.question_id == question_id, QuizAttempt.completed_at.isnot(None), + or_(QuizAttempt.expired == 0, QuizAttempt.expired.is_(None)), general_quiz_visibility(user), + ).group_by(AttemptAnswer.user_answer).all() + counts = Counter() + for answer, count in rows: + if answer and answer.strip(): + counts[answer.strip().casefold()] += count + options = [{"option": option, "count": counts[option.strip().casefold()]} for option in (question.options or [])] + sample_size = sum(option["count"] for option in options) + for option in options: + option["percentage"] = round(100 * option["count"] / sample_size, 1) if sample_size else 0 + return {"sample_size": sample_size, "options": options, "basis": "Recorded answers from accessible completed general-bank attempts; skips and obsolete options excluded."} diff --git a/backend/app/schemas/attempt.py b/backend/app/schemas/attempt.py index d55f777..d996b89 100644 --- a/backend/app/schemas/attempt.py +++ b/backend/app/schemas/attempt.py @@ -1,6 +1,6 @@ from datetime import datetime -from pydantic import BaseModel +from pydantic import BaseModel, Field class AnswerSubmission(BaseModel): @@ -22,6 +22,9 @@ class AnswerDetail(BaseModel): is_correct: bool explanation: str | None explanation_image_path: str | None = None + image_path: str | None = None + page_reference: int | None = None + category_breadcrumbs: list[dict] = Field(default_factory=list) class Config: from_attributes = True @@ -35,6 +38,7 @@ class AttemptResponse(BaseModel): percentage: float started_at: datetime completed_at: datetime | None + mode: str | None = None course_id: int | None = None allow_review: bool = True diff --git a/backend/app/schemas/quiz.py b/backend/app/schemas/quiz.py index 5ba607f..19f2263 100644 --- a/backend/app/schemas/quiz.py +++ b/backend/app/schemas/quiz.py @@ -1,6 +1,6 @@ from datetime import datetime -from pydantic import BaseModel +from pydantic import BaseModel, Field class QuizCreate(BaseModel): @@ -30,6 +30,8 @@ class QuestionResponse(BaseModel): question_type: str options: list[str] | None image_path: str | None = None + question_category_id: int | None = None + category_breadcrumbs: list[dict] = Field(default_factory=list) class Config: from_attributes = True @@ -57,6 +59,10 @@ class QuizResponse(BaseModel): is_published: int = 1 is_shared: int = 0 questions_per_attempt: int | None = None + course_id: int | None = None + allow_review: int = 1 + max_attempts: int | None = None + attempt_mode: str | None = None class Config: from_attributes = True diff --git a/backend/tests/test_study_tools.py b/backend/tests/test_study_tools.py new file mode 100644 index 0000000..a141457 --- /dev/null +++ b/backend/tests/test_study_tools.py @@ -0,0 +1,107 @@ +import json +import sys +import unittest +from unittest.mock import Mock, patch + +import test_quiz_builder as fixtures +from app.models.attempt import QuizAttempt +from app.models.quiz import Quiz +from app.routers import study_tools + + +class StudyToolTests(unittest.TestCase): + def setUp(self): + self.bank = fixtures.BuilderTests() + self.bank.setUp() + self.client = self.bank.client + self.client.app.include_router(study_tools.router, prefix='/study-tools') + + def tearDown(self): + self.bank.tearDown() + + def start(self, quiz_id, mode): + response = self.client.post(f'/attempts/start?quiz_id={quiz_id}&mode={mode}&fresh=true') + self.assertEqual(response.status_code, 200, response.text) + return response.json()['id'] + + def test_attempt_mode_controls_answers_and_stats_not_query_flags(self): + quiz_id = self.bank.generate(is_shared=True, category_ids=[1], mode='learning').json()['id'] + initial = self.client.get(f'/quizzes/{quiz_id}').json() + self.assertNotIn('correct_answer', initial['questions'][0]) + self.assertEqual(self.client.get(f'/quizzes/{quiz_id}?study=true').status_code, 403) + exam = self.start(quiz_id, 'exam') + data = self.client.get(f'/quizzes/{quiz_id}?attempt_id={exam}').json() + self.assertEqual(data['attempt_mode'], 'exam') + self.assertNotIn('correct_answer', data['questions'][0]) + self.assertEqual(self.client.get(f'/quizzes/{quiz_id}?attempt_id={exam}&study=true').status_code, 403) + stats_url = f'/study-tools/attempts/{exam}/questions/1/responses' + self.assertEqual(self.client.get(stats_url).status_code, 403) + redis = Mock() + with patch.dict(sys.modules, {'redis': redis}): + self.client.post('/attempts/progress', json={'quiz_id': quiz_id, 'attempt_id': exam, 'answers': {}, 'current_idx': 0, 'mode': 'study'}) + stored = json.loads(redis.from_url.return_value.setex.call_args_list[-1].args[2]) + self.assertEqual(stored['mode'], 'exam') + study = self.start(quiz_id, 'study') + data = self.client.get(f'/quizzes/{quiz_id}?attempt_id={study}').json() + self.assertEqual(data['attempt_mode'], 'study') + self.assertEqual(data['questions'][0]['correct_answer'], 'yes') + self.assertTrue(data['questions'][0]['category_breadcrumbs']) + self.assertEqual(self.client.get('/quizzes/1', params={'attempt_id': study}).status_code, 404) + self.bank.user = self.bank.peer + self.assertEqual(self.client.get(f'/quizzes/{quiz_id}?attempt_id={study}').status_code, 404) + self.assertEqual(self.client.get(f'/study-tools/attempts/{study}/questions/1/responses').status_code, 404) + + def test_real_response_counts_exclude_skips_expiry_course_and_private_attempts(self): + quiz_id = self.bank.generate(is_shared=True, category_ids=[1]).json()['id'] + study = self.start(quiz_id, 'study') + self.bank.answer(1, True) + self.bank.answer(1, True, day=1) + self.bank.answer(1, False, day=2) + self.bank.answer(1, True, expired=1) + self.bank.answer(1, True, quiz_id=2) + self.bank.answer(1, True, completed=False) + other_private = Quiz(title='Private peer test', user_id=2, is_shared=0, is_published=0) + self.bank.db.add(other_private) + self.bank.db.commit() + self.bank.answer(1, True, quiz_id=other_private.id) + response = self.client.get(f'/study-tools/attempts/{study}/questions/1/responses') + self.assertEqual(response.status_code, 200, response.text) + self.assertEqual(response.json()['sample_size'], 3) + self.assertEqual([row['count'] for row in response.json()['options']], [2, 1]) + self.assertEqual([row['percentage'] for row in response.json()['options']], [66.7, 33.3]) + attempt = self.bank.db.get(QuizAttempt, study) + attempt.selected_question_ids = [2] + self.bank.db.commit() + self.assertEqual(self.client.get(f'/study-tools/attempts/{study}/questions/1/responses').status_code, 404) + empty = self.client.get(f'/study-tools/attempts/{study}/questions/2/responses').json() + self.assertEqual(empty['sample_size'], 0) + self.assertTrue(all(row['percentage'] == 0 for row in empty['options'])) + + def test_lab_reference_permissions_validation_and_publication(self): + payload = dict(name='Example test', group='Blood', reference_range='Example interval', units='example units', + age_group='Defined study population', specimen='Serum', source='Educator-supplied source', source_url='https://example.test/reference') + self.assertEqual(self.client.post('/study-tools/lab-values', json=payload).status_code, 403) + self.assertEqual(self.client.get('/study-tools/lab-values?include_drafts=true').status_code, 403) + self.bank.user = self.bank.mod + response = self.client.post('/study-tools/lab-values', json=payload) + self.assertEqual(response.status_code, 201, response.text) + entry_id = response.json()['id'] + self.assertFalse(response.json()['is_published']) + self.assertEqual(self.client.get('/study-tools/lab-values').json(), []) + self.assertEqual(len(self.client.get('/study-tools/lab-values?include_drafts=true').json()), 1) + for bad in ({'source': ' '}, {'source_url': 'javascript:alert(1)'}, {'source_url': 'https://example.com/' + 'a' * 2000}, {'units': ''}): + self.assertEqual(self.client.put(f'/study-tools/lab-values/{entry_id}', json={**payload, **bad}).status_code, 422) + self.assertEqual(self.client.put(f'/study-tools/lab-values/{entry_id}', json={**payload, 'is_published': True}).status_code, 200) + self.bank.user = self.bank.peer + rows = self.client.get('/study-tools/lab-values').json() + self.assertEqual(rows[0]['source'], payload['source']) + self.assertEqual(rows[0]['age_group'], payload['age_group']) + self.assertEqual(self.client.put(f'/study-tools/lab-values/{entry_id}', json=payload).status_code, 403) + self.assertEqual(self.client.delete(f'/study-tools/lab-values/{entry_id}').status_code, 403) + self.bank.user = self.bank.mod + self.assertEqual(self.client.delete(f'/study-tools/lab-values/{entry_id}').status_code, 204) + self.assertEqual(self.client.get('/study-tools/lab-values').json(), []) + + +if __name__ == '__main__': + unittest.main() diff --git a/backend/tests/test_study_tools_migration.py b/backend/tests/test_study_tools_migration.py new file mode 100644 index 0000000..277c4dc --- /dev/null +++ b/backend/tests/test_study_tools_migration.py @@ -0,0 +1,39 @@ +"""Offline PostgreSQL DDL test for the study tools migration; no database access.""" +import io +import os +from pathlib import Path +import unittest +from unittest.mock import patch + +os.environ['DATABASE_URL'] = 'sqlite:///:memory:' +from app.database import Base +from alembic import command +from alembic.config import Config +from alembic.script import ScriptDirectory + + +class StudyToolsMigrationTests(unittest.TestCase): + def test_explicit_offline_upgrade_and_downgrade(self): + output = io.StringIO() + config = Config(output_buffer=output) + config.set_main_option('script_location', str(Path(__file__).resolve().parents[1] / 'alembic')) + scripts = ScriptDirectory.from_config(config) + self.assertEqual(len(scripts.get_heads()), 1) + self.assertEqual(scripts.get_revision('d94a26b8f302').down_revision, 'c82d19e4a601') + with patch.dict(os.environ, {'DATABASE_URL': 'postgresql://unused@127.0.0.1/offline_only'}): + command.upgrade(config, 'c82d19e4a601:d94a26b8f302', sql=True) + sql = output.getvalue() + self.assertIn('ADD COLUMN IF NOT EXISTS mode VARCHAR(10)', sql) + self.assertIn('CREATE TABLE IF NOT EXISTS lab_reference_values', sql) + self.assertIn('is_published BOOLEAN NOT NULL DEFAULT FALSE', sql) + self.assertIn('source VARCHAR(500) NOT NULL', sql) + self.assertNotIn('UPDATE quiz_attempts', sql) + output.seek(0) + output.truncate() + command.downgrade(config, 'd94a26b8f302:c82d19e4a601', sql=True) + self.assertIn('DROP TABLE IF EXISTS lab_reference_values', output.getvalue()) + self.assertIn('DROP COLUMN IF EXISTS mode', output.getvalue()) + + +if __name__ == '__main__': + unittest.main() diff --git a/docs/quiz-revamp-progress.md b/docs/quiz-revamp-progress.md index 1862eff..5586c4b 100644 --- a/docs/quiz-revamp-progress.md +++ b/docs/quiz-revamp-progress.md @@ -21,7 +21,7 @@ Initial implementation received two independent read-only reviews (access/correc - PostgreSQL 16: actual migration upgrade, FK enforcement, existing-row/question-assignment preservation, repeated upgrade, downgrade and re-upgrade passed in a disposable network-isolated container. Container/data cleaned up automatically. - Alembic offline SQL: explicit `5f8c1c2a9d40:c82d19e4a601` upgrade and reverse downgrade exercised without mocking inspection. - Changed Python syntax and `git diff --check` passed. -- Regression negative-control run against the unfixed `affd717` is tracked separately; do not infer its result from the passing fixed-code suite. +- The same regression suite fails against frozen `affd717` as expected: unauthorized revocation/deletion, premature review answers, invalid mobile selections, duplicate scoring (200%) and offline SQL inspection are reproduced. The legacy-Hide test also catches its missing sharing-state response. All tests pass on the fixed code. The first Docker validation attempt failed before tests because a read-only mountpoint was absent; setup was corrected. One frontend regression initially used an ambiguous Create Quiz selector; the modal was labeled and the test scoped to it, then all tests passed. @@ -39,6 +39,20 @@ Verification: 18 backend tests passed in the exact deployed image, including log This source change is committed/pushed with the feature work; it has not been deployed to production. +## Milestone 2 — runner and study tools (under verification) + +Implemented a wide white/blue question layout with category breadcrumbs, numbered answers, provisional study selections, explicit response confirmation, real response-distribution bars, question navigation and Review & Complete. The results screen reviews one question at a time. Full question/explanation text, images, notes, highlighting and tutor access are retained. + +Added a safe arithmetic calculator (no eval), keyboard shortcuts that do not interfere with text entry/dialogs, native focus-trapping tool dialogs, and educator-managed lab references with required population/specimen/units/source and explicit publication. No clinical reference ranges are fabricated or seeded without verification. + +Attempt mode is persisted server-side: a query flag cannot reveal active exam answers/statistics, and mismatched attempt/quiz/user IDs are rejected. Legacy attempts without stored mode resume as exam mode rather than exposing answers; their saved answers remain intact. The new `d94a26b8f302` migration must run before deployment. + +Combined verification after integrating login removal: **22 backend tests passed in the deployed image; 48 frontend tests and production build passed.** Actual PostgreSQL mode/lab migration verification and independent review are being completed separately. + +Browser checks used a loopback-only fixture with synthetic accounts/questions and in-memory data, not production authentication. Desktop layout, provisional/confirmed answers, live fixture response counts, calculator arithmetic, honest empty lab references, and review confirmation were checked. At 390×844 the document width was exactly 390 and no question, option, image or toolbar overflowed; a taller narrow frame captures the full page. A browser-profile reset interrupted the check; re-login restored the saved attempt successfully. + +Proof images: [desktop](quiz-revamp/desktop-question.png), [study feedback](quiz-revamp/study-feedback.png), [mobile width](quiz-revamp/mobile-question.png). These are synthetic previews, not screenshots of deployed clinical content. + ## Next Continue with the Orthobullets-inspired runner/results UI, question navigation and study tools; then article/subsection reading, linked flashcards, educator AI authoring and moderated comments. Complete related-content privacy work and end-to-end desktop/mobile validation before deployment. diff --git a/docs/quiz-revamp/desktop-question.png b/docs/quiz-revamp/desktop-question.png new file mode 100644 index 0000000000000000000000000000000000000000..7030246ad7b7803b25821de2f33963df1cad1e57 GIT binary patch literal 107951 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 Mk_r;}PhPzJ4+Z(Ul>h($ literal 0 HcmV?d00001 diff --git a/docs/quiz-revamp/mobile-question.png b/docs/quiz-revamp/mobile-question.png new file mode 100644 index 0000000000000000000000000000000000000000..f9414f6575c1d3a2da93edcd066f7ca5130e76d1 GIT binary patch literal 98352 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�s_O^_GjJ?(MBwyAt8j6xM_8|#14lS6&$7J**^&9Qc1@$)`Qq}#4_&>oh3 zXT-afiOK$og3=4yb1{e+6sN=4sc;kAr?L}s)kPE_DM#VV zLE8hkq1Q!pi9RGDl9E$c&TO^U1_=z3j}gpvx*r~`_@!{$Eq$QD`_$#?>KbZUW1Y*& z%cqHs9>?}ePcNfNzcXk7HIaIHg^k&M?*&XfGM~dwP7}02>>5q-Xz|~E*e|-C3)ef0 zjE@uR7>9eDcjrH)(Z$hACsH{V{CV}VTd4g^3_JZJlpx1=rcy=YVn;rO;o~#>beVTF zfP~Kn6u8uAB^uoQ)#93RscpRpjtaJ8vkv!)*WHU4wjsy86)8yr2esKU&3+igLZ_(%vw6D}?N$e? znmmJQOcyy&#}r2t_Gd9M!_u-5a1wt_o3b{YT}v(aK}Pm8qALa4d!%ON1I==E_h&L_ z44#Nb7P?>NWiB-g-?_Ek?9P>X7LIIAXUZ?gpY$$v8haoOr$pKMfjt>C?r7r30 z<4N?pQSO{1hX3tMr~nkhncsIvT%c`s+@8##@9|L91~G7P%ykt+HzqSRrQSR%&=!gJ zh9Lj6L*F{zW7}H&Ai@De7h*xsdTJ#tg6EvVhpe#^v+}knCz} z{Vy1m*lw(`f_1Y*CKY5`5%t59pb-Rwuq003&(UnLFL6}Jlvcdf^0ErQiOF5_;q%D+ z7Z*OhdJ*$ETVLM^GwnV*2f^N*CoyvJoRdACG^0Z~sP7+$c>T%XZLW0U#S@J4W*pd$ zAnqwrQ#BXjyirtogs#lYJJBQix`>-7^7m{DKj~L)rE{)vwTmqmjaL7T$u?LQ(+eM?yaqev_>k zLGx$s5y;+!#*jl+8$~tq>DbkJBOBQ20}{Y-gTVW<5lB0)#BSf`DWE+? z<4Cf#kC6+@l-hd!S&t2Y%P|q^#aU?BWpe(2#5@s)%b~A#nnN}057t0nJd9~AThv$7 zuv*phzotK84h*`cOUkr_-Eq(eNeyd5_y3LS6KDV)jgE5VanGMb@nMuE4A;UZ=3?bsUjitaNv;wMt&jF%ul?)oj1?F+QUb zqavUAFSj?ne5l?|2gKdLG{Krv9eOjx1>&8CwDp%MiBCTf<1CI zU;p%C_S|=j%3WqyQjkJOxn>Y~&>Td2?6R0=D^#Pv0f>xJ_E=7m!^Xu;$w2-Lh&sgz zlT+d`VyKgJxf-d4Y#_U8%1T0F*L{6%wmf2J#ss*{@z9C6kFry>&ejKVjkQ?bTWzfL zyoES9jD{RLme)SZG@UG{m9$NORI=}n=GYk+ETL7&KVkrf`EWmTD;c$@?|UZ=%5jxW z6ZOR|fL8L{;9I`8NR^oDhhY(AC%4ln*oxb~~SJ)ehIc;Mf`4 zGnT=K$MF48|8u`2VPP5w!KL)PXEyouyqy>1=X+GAw z3Wo*nN!(NDXgtn$(_>?Mf>s}O!-tbDD-9Z^@@e00kB{^{A>DIN?a?S%?VkD92d5zu zRV$uELMT>RQ7irx=5rY6qT z2&_#{vm=YkI+yb5ELtz!(h7DT6$r)O5IKXvux&Vtkr5 zptnaTBSZ9Xr6O7R@sEulS8+ydFq}!Tlwvz;V5|H6cnW7B#q&9w_koF>-$oCAN2f}I zr7I6l2utQZ>3z2H;(D%cZ~59h6e8&0=f`4}j=Pf8gzWEfje09A3lz7F(JO8>in^M&~ZqQ=b?td@So|eLT z`o#zR>#85dLb*ZT*D*`UK8SvMg6bP?m3ZZf?@F!ME_DB}9Gw0-bMD$~fx|t7d`L!> z5!@eX$l2-nxG zO1tsG-i7F2g#-UNh5M(w#yK{>JYzLd#oO?;=sO+*lJO33yFrIiNirl+1{@uuTwl*t zrPXd-21{@J+fC)Z_+Ww8C@vORkg%+lIzs5H?B%!D&jIqd%IL%C_n%%YANT~9v~{&- zDl~EEC3@95xpa#xwe>y`&Yy`?Y^mjiwk8C%;Ir)iw7VV@rA}Bz%@Qj@F~Q``N=eZqGQ~za8nY`Ao8c^k9Oi#Nr?gs9J5qGysF9I$_i0%t1IkxM36WNQRT ze;vK^#G7Py2$@*(e!GfF2*?cZ8LoO{TkJwjO-(~21f*s5g*U4+X`Q?@zzvMA`+I5h z74b>J+@%zS)V*JCEIb6}1?g`D>32TQlvQ)?l$jgtKLkoHD3qZwl1psB+Wir0`^ z4zRBDi;|-#)HOdOI<=U6JjiLF_EEk)9SE(V;!Fy&C51D#@h<%m{ZGZZRzR~tPFqG6 zEXTthC2uxoRv5|*UQh%8jv&Yq+oi8wsD^(Zt_LK9GW0iclIV5H_nT`{&eoD-Y=77(3G}$9wMA3Mw~+jbfhRws^$uF8QEvfWvoV>qUG-9Cj*M@$NU*gF? zi~X7V2|bGlc`#9v+Xu@2cx!b}nr+N2%&l$GK*=?4OrJ|rNK#I*U=<}vTbTC)&DB&y z>~U2-OJ{Tk4v~u}6Ad2&55I^6Bh$79)@9B_;XA+GG0n@f?HbWZxfZ+W(~2f%95l&2 zhD>BXV=+gcw&?Ow?r<5erd1EBE9U|l2p$A&#)j*fY%3R<_U960wnhcH&7Jq=qF!;w zxho7-yXRO&?!g|Z&ZlX!IL!J!TQ~f4K|w)%cGG5t?G9y7JUb;IE1Ll=56ERgx&xjL zbsG-H+e4n#?3x^oSs+CnFE{xa2k6r`9(=&+r=Q~)eAz=Bo$!HGs~(8K*!BHO!>ZK| z!-;f}#jfT*)X|&7*-BP2PSJ~5G?=*64Ht{}ZXyPP(GqkTAI%+WXFiu{cI+fUvmp1G z(a-M(dAA|{5~^l8n~=;lcQ~Cewdl-Fo4hZF*^ZuY$%slTC#Uar_#LCoOF{Z5c2%tfZx+w`@PTfrH6Iz191RyUn|`UdW@b zx3in$lW!LpNyyo3dC+@VieII{qu6m{?_bwx`C!-h~68{pSszp^z|UP&3~@{7EU*dy9iw=u?1rvaLv3V&aM3VDv!zhfl)xRX;~A z>|$~5oxScj0tXsDDik5jliCQnZz`HoSyPXWiG8Hz@1?f>F@3+&*9xygzN22|Xn|Xl z7^@eMCIWKMt$Q`G*7FWX>jqVKTzN-7auq&q+z}lWvwpj8 zSm=qm+2GU9WFJ|O6r9{OMiru^0aY+eF+6=i8?)ZUov$W@6H~Z zjf;%*{~pWl*&G3t&y^@bneq~GSC`6|^cAfe))P(g8sO7X`9J02@2RPO&l5tY9QU`; zwG;7On5^pVawWb6celqvIV2VKC&v#%mbU=~^Xx~TM74kw9IVDirFrm-VkX4B6;%1G zn33A?Q-v(9rT#X0e8uJVxc?D()>m8Yq%;f(s%9+q>jpGZRP-(gAACUUm~Lub&DKzz z-FAXo6@_?}D^CrAVl)CEI$D+R_5O)}K+|;71h{Pi%zR4!=}#7^oYg@*7Fd!a_b>qO zPv$HpFOTs*wLx&OAcO(f*)PKYLt$Y<9&O=v!>z$%3Zn{&6%}J+V+#0USTM5jk+LT0 z*6Pk3KFY+1pxD?zKlYl-Mjjm3#$c9g0NNuwAYSFS0~QWRLSjK8>5Ulv_7(;)QTdP_ z1y=OrI?RPF25w3Yk?>ZRM`Zr|A!c|875#mfvh1jgpCW7`;vOL-{1=J%#Air94F?zl zQz956*PJdn@tKNY0Rx~w!5H?Piwe*Zv$^_q5GQdwU-1>*{b*-LuQ5Y8TjaG}KFO?~ zioWJ|yLgQIJlkKY%ue^)lSlcF69(?hts3RuE2XBTIqV`bul7YVmzqk|yJbWsg5E2j z$z6n}oQZklIniRiu%%9oTo3rRg)JKMOz_lr^DHufsmn9%1C+Kkm5Eej>* zce7nDb?EhkHr$~MN80mwZH=KHIpBigVs`Zz)fA^Xd4H+FN=Zq{z`)?+$B(1%kiI_V zSG!5x{LV79CJ~XRNcRc=p+{b_>+iqXr%<%6K* z3>_r^g9@ts&pM9#fSbZ==U=4!e0neXE0OuwX}iCnX8p}>XlfQ}-w+e4D%GqIIhkfX zTkm|H#qG76uUszI9tnWEyR3^Q6;v%!@|mK{%Q2P&AbLLzOPZ>JRlgXa?i9M$F}=n z?(m~{OtpRu(6lPA?`*YQ4Kj^HYBf_H)oD7M$f#XA(<_6T#%h;8D!}j^svJM#dNFqUp{;8>{5zc_t zA|OMk`aR2O43Q`?K7L)l0;Gx`h?d~_qb z^Y3+;Bo>|dI^fRWtxO3=2;9=}8^Et$KW_?(7fWThY z?W|YSdSP+#E6Gh3L{O~=q)2}?Uo5s-A$SMnV-o3+4c8G75H1H|NG%qs5!M4RSatY1 zwXboYB%zd4pA=xfX;%Fr#NEbD7?FCT;y}(N)I*mak1*FG+`AUkAv>`ud^1UPD;`bQcEg zJkas%3`JfpEA@x2EBp`#*N@{R=>m3_?iZVA(^$wYkkuRmsRV68E*TFj4)Cwsj%el09UUKD^>?9~x=Y5v-Dw89By3F;9|MQ$0lmUR!Q^|eT3&ALa{{H?XqP~%*+*Wf~ z4C=+k1JP0uIHoNF0|6l|fB!OTxBcul^xHBHLQHxCJvF7L3pV<_?KWw@za)WT56<6B zAcK>dn)ISuO^uDgt}(=%M=t-$$g{osI~hNW3{F&SF4h%U&J_3kcPOr~eyq1#8|>-v z9yt39r7ph3F7@{pYDSg5d>^>0Fq?Qkzdv+3nkm&>D~fz5-!ZxU(>q{97xf?3c)auL z<%|kF&UY@skZKQaLqHgt(oW~G`3p^Z>rf_F_)W7+bL<;{L!|`y@d>q@MB!pP`;MG+ z{c5^!BK}0O!TEfW@SW;e7!lWYEsvY#Bgn|q7$*0pdTv||ER9S3m_;$gfy+gdu3I{f z=SY4vxzXh1Wy=d^Q;~AE_iHEXT;)2$qTl=5YR!6d+TDCPurHi2J|-wAHG$Gc<@caf zPu>=?LTZsH-5>Dv+%Y;EFK5_90`A8bVW*=vA1~Oi1lBnu?23zcVss#(hWIsfv_{mg zDqFm$8+H7G%c-gH4Co$Fo0=F6<0}KBqccizS2n+XNqI`r5n1L)clR&#C>XI|Kn9nF zGtdKT$pIXQ3`xU%L*sM({`8*{A$^NVQqwkpTe(N%H?&~!|Ns1naWe6Vu^=o=%xq9%#=Rkshs44#hNq#Cr>IH> zQ?fD^Hy#Tgn-DvbmKAMSH>Uyt0q}r}NoZ$fZ1l^j4=Urw?@yw_lQG(42LSBe1#bSW zG&f7a!C7&nz*ErT-79`@a6mZsCvn(F-tvVuVfnj41X&~Rr*(}S|@*i)8aTHlej9RA9E_3#a;n$z1Y1j$A zsrF|lhc(91VqYO4!^zhU4z91;_ka|ZEWfJ<^gAq8gC2;aTWVZydutP|@}tw%j_9yf zvGdl0O7hhgtAvGx1ya8>q3iRO!JWa)&zqZ@+nuDZZ_lJk?^dqMcf@{=7DV+39vvQ- zdTs8248glrQXJN_?AX}fJ)^1InD|?yl<*YF-)|79LrGuxT?$iEA4`))Iv$_Oj3nSr z*PC<=fr5gqMQ_SqPu2-ZN!M#l3GrmS{ThzAxn)j|=dQgjHs1P>_QTyhFMngjQ`69_ zwYsH%VYV>|c`W@=&Q-zCW~#XOnqG@{O-2l>0@aE2bfYjOe9r^j>#ruwxjD*rUIN0{ zFy?gL(ah_Z^z_z>%uLr|292^9d`{ozM&@dVquKl8=QX&>O526=gCC)^zs=f_kpt&e zT6~adEH@>aL%<`64fXXLobnYYc#1;+06IE)V`HOtOh5qT|C&fAK8M)Bq2?cfb$VKw z>-psKQUhbPGc@ZZl`CZ~golS?O;J+6b*rUwTJ?+iDTj0>$CGhzihqUv}2gXD<4xuN=YP(m6U!eGEi%*^0tmPRA$)t*k z&;^W4B;+1Abt%4o?|fdXJnp^Dgct;DLxO| zuZ$|3))oW55DN-2{-*;(=sy+ZnZq$VkEHy}UfcK|Nwf1|`zS~b?C4Ni*HH7*POw=9 z_m|)bD>RhhcKYt)PpqK~?U*qT10x}RtzRlZp}d0G9Q%X+AokTkS^PoG-rdZ9HbNMk z)8zkWZt(wsxyVQo;E9hl4)52&tfQyNte($1M%S+(#C!`B|{aGYaIVdCL1QZqXKKF z0AQegdLq;r-{z8Il^;NepkZ!O{s%y8!~CC-eGValW5y`&g6IFeW&V$S_W$2EAtfK~ z;eYo6{$~pdZHp}kiOJ4_R(VijYj4lYAS;NFw|IN&1mYN=CDsiUc+8g?;4e3wt*rY! zK#EB3c{wRFsYCst4t)-&8qlECA*40^IOpEW^?XGWtjet4a;YdwH-h4C0B6|Y8DQsy zb62cZ$8d-)hGqW0Axndawq%9oL`Ge+bi;7eizSkvR@J&0&~mC(Hv}#w>txMsr!M#N z!<*l`u70OdRQT=)H8nM{pvT#GI~+TEjmWMXua(~VFvso`w5QYN@oZpit#=7DIMv~9 zdA}H{^a*)vdG&HrRFK1R^tuzefE*&deVh;$TFFt{9d^H-Hs0Q1VrH(?@3b*Boh>k0 zy%I6~Ux|c?VZ1A`zaid#Jy2R|;2Rc1&`PuF*~*OmddFVl zsmO_^sa3gdIa&Wlja)`hP`C3h_t~0X;AgBsi6-71Zr-Zxp1TdcJw>e4~@)=%UA{a;s9nF@U9c`6!hFpZg%gA_b z8bkY&zxPX|Q_(Cqc;)F)xmfabFks>)ps#`;gZujR&h1RNT(28W69Fh}qs#qg_A?`_ zj0OW{U{oLk4gN)H0Up!Ie(@(Yz|m^DmR-5g=l;)WE9%#yb+vsd;*-d!NEbj zEYQag3no%zdoIUz>=iDCQZLGemp26(9|5u7U;lDnpc~~JfEGCSS)jr~gEntr3XX8_ zL1L-S?*GNwTZUEj{`tZ*o9^zCknV2j79^!qI;Fcy8fgIu2_>bGZV;rA?(R)DoclL( z{jcZ6b7s!Wne)=iy*F#!>yA%-zYEm|i(Cd9mFk*8wBDkd->&0};jfSI6X3MdGc*KZ zy?JqA*efHW7QGqCX{9!Z9i3h1QJPdGhjG(LJA)*4=o!~tvQY4t#kK_qbqKkiu};pa zLXf-~o6O0M$zqDc?&GtXUF(dG_BELNQQ;K()w98@e+~VDjSynMYa5uIP9dW~e(o_i zI0#xIfYe-2_Ojri&inn9XHZja6sbo8cWGQXg53$CiROLfF3qV5;K49Kh_97lgoXT$ zag)DQMF2r(eW?S=0lOIj8giUgm^IRmdt{^h*P3$t$D76fc7xaqqZjkJ^1YnL&;@xD zkLRFb%fyc#hH9<;etUIZ#EL9>i6!X0K2@qK1!A{feMQHlW)|wYyXi)h4@7m zmz2EHO5WD|ii#RvIRcFe>bdS-E*c}W9Zp|AmXufxK0Q6&`HGz>r?P3iDa&f57806k zFd{)ljzGF}W6cFeJ;)Q=*d?NMC<&Qvh4CaK z5cIeh)w2DdP-j;a6*H`B1HK;idL~^R7I+tHruuMOm(V zN3ju!f|e7M%wEx(;^751x0dCL3U+qRYOvLK1&=fAjjp^{t1K-ot?HlRz0AM+<*ny= zbEb1(iYis5l+1K>b2_PN=+Pl!tI=LjSorFM@-49Q8jfb+qrMw7>jhX zzZdInRm@Cm;jPaVNZje?H>O$QJj70w-5@!4^7F(Dl$5+K9-W(?-xckhDLx#Wv~047 z`fl_c?w{JDw9UN>JZXim{^IM~#77VZ$8b;I4sw4S^Ng# z@?bS0+}f9hqfnMQ$A#a+!`hal?cNi_O+ZdDS(*nG;iB{>^m}tPJMc&tL6l}b57#UF z7p0XvbEPwtr$nc8r)oF0AmR%|DgD2l7mKO(%{dZScFVPi4gRI5;YoT3Qn5BEgR-=d zqA%j<_pY*=seA>eBvv!(>Mn=(0$dOBJzf}Rm;Lo%(l5VGSYDjkFJJIj@quD{hY~mW zn*Yp0!29lSlnJh*g@J>9?;$Lj3hR-To*u!QH(+E~4&(7X?mHxm0C*F`C=c`B60EE( z2^9mi=*-@=@2<0bt}({xQpYudquyI9DqG{q8ozT@od4-ES~V&sD_`u(XAPBy=V}f( zen5OW8T?#4zn7hjDkLKGw%wWMM%BCOb~SM$5;^6iVdjT0e6e3X?TT~~G8d7PdUR>; zX>nxz%`Qk9NS=q)l$6#N0!A}micd9LHvC-iFZWX_B~+bpm~C;r&HSOmLPPp^=tV8s zw%+^c4bw?Cy2W){$QT{6kB^=nNU7mpHUIjh4W0g?o-whUlM@zAbV-XBMSX_I@N`%Y zdbaraxGe7cTj3^pS+ zq5xjpR3I;zosC%NLQ$OrA$cWCpsqag7~~l1m<^)r`|Z=3MSCVh(ADO z-k73bV7&e1y0}EXuD|z{^Vm|JJNetkBQP9!LbV~nb zi+EJE%SPdj=7=dP-PYBDZ%<%RiYln7vFrSpTI-G|)hWH2F$vg8rC-DS>VNlLB^Z-J z7A`}aL8i3iSieKGM8 zPo94=`HmJEfHd=d>6hE+R|%}B9+Om`4$4r~sY(+Gb@kB||NGdJn3$Lrj}zlqQa(Kg zmxoUQda`!qs5!ekUtLRu+F5=oyY0U2KnfOb==_#`6Hn|-T9wx(JNJ&WvI4nZ2uq6B+JY{8j66xeKd9AxXM(I`> zt7dS2SnCQ)VbSU8pDb3V3$O#aQU~sPxz({-`Qi#h{OX3glm3b}1}*u^nY?lH0~l%y zdX(%8Wv%kFoSV|gPl;Kc=b9Qgx*}OVdur6^Bv#m)-F?3o>k=^V5kz{A8_VlnRU2TC z*?5i`@cDjH_{e^=g&>BC8cQi;Kl%kqEMglSAlG1P+&r}yON8WB_GvNoxCONUg?YtM z7tsb$^GnMO@#H|~!OXZDi?_34FyaL#^*1|b%Oi7>k|*=w4kT5Z$~IZ{0FGf^`y zsU!z6%%sJ(&3Ek8ZbKk<7td~7&8vF>F-ywBqVgX zH(6{m{ezRR?di^TUdoTh4BRjN)7$gXHw>smnGJiv^gF*lh(SF@zax*)+2z*0P9^tnui_Wrk@A8%|7klA zWe7!~BrM~6!a*93m6s|%Nd5To{l@nD=yuCWiO&j2#J6>UnbT(#M)MS8z{?$SH~vtq zU=y;1t6O1|!L?C2=dvvL0KtME6NBu&1zTCtgYIx2gP--dTc1a7RH`d4#N za!3R3Bu9RBE|qqMAk!6=mcAU)IU80A&SQMitF;=RtFh#H$NjX?=L_F9+$Ym;Qy*R6 zHdEB*OGX2li1{`ws2g{av21N=7siO(v3^ss4DX6k2vqZ2yF#-|V>`wr`+62GlTMsK zzxmGb%Q~r18yS{eR_Fqgh$UT%F=t|=21U#P*(9|#UhVur*DlxuQ#u|3sq#?i&n=OsVP`Uhx4bg!hfHwS-j)OoH zsNgisguGQ;^X@rQPSUtvl;1eF^)(dHmnMa-a!MfjeA=S)a%2$mI_v50kBC|)1(GdT zTHHKv<3CYE)R#}@T70jIwsft3)e5GD>etx!Yu$0iV3sIieC>iJ)swdta0sl)dIqC4 z7zy3rePA|$N}cTUf{-Vi=~hdnBFszhC8@NFn3K|`sj2-@B~9a2v>OTKo; zbFg$VaFAw2$z8trma|ruXz1yacIQ4k`{#>*PWcPv!BPW`8XnMeREw+E;7H2S$rZZpr z>x>chQ8hil(Gv? zxExyvdpv&;WnY>mRz6G`yk=1*oyS7enH4^@tlj7~wF? z59`q!o8|O^Z&bYSSuI0nZ*{{5V;gT|Q{S<&aqHnK-nCPvBxku^4U;t5)g4SZS9zEs z1){)OAav!UXLAL}GccdDw`LnA&=atp=_YY{#YWkoDWi!PidYcevMZkKjykBSs_u+_ z9fhoy_i4eu)EN5$^IvRY`X3;4Sy)efSem{eF##fd+L%vQ-CA2We`Z(;+eJi*!DVoY zTj{1~f0z7shF}f4bm6IXHd!E=r6guStzVkT8DLt*+ z8sO_LK6+b!E%&i{9y)0f(Yv~sMl(K3c{|#Vx^Zh{|IBzbf|$t+B7HE2WJq zu2|J){r5Xf4n_pZ-`Ht?ogX!pr)-4Y43XSFQI7xq`&(4`70dCOMpH7GPxQbBvJ}2- z47=hhBRktWPtyXmTiQ7O)bob7gE{mVM@A_hi11SOXVf#RL}62xR>;_6_TM(YZPoHs ze||%Nq&5#LL^)OQG4<0_i=6YrJ4YO^Tk1$SrJTMb(YHsYzZe-xRaLd0Druh<{Ei-u zBt^)g<#aw_+8NIM?!vdG6vr~GJ!c`OqCcLg4t6@8y_Ii86Om3&n%;MdI6f44hA>C} zntQHPKeG9-81UBF`=qH~0jU8J+m?{M1+~6!+ttJ?dd>E=YXz%h<#gc^4~Z|3mG)23 zyX&iLp9?|GvQ+g%ezz7f?W?YlG{^j+3NeoZ#j2+7C`qyYl@(D@N-ME;i@y%m3X18( z?`MZq41%Carf9X_57-Vn|M)Mr%2{b=(HCmaFB({nO8-2KieMK56}n;XyKCQ*J|E1c z1nScnn%&nU>7L^+H0?}` z_V`9PT$wb}QJ+%AI()O_H(mNS%64>Q#b0x_*ZuJR(m8&;xo;`EnIQ7_ivQWum&n;v zKIQyWPuMsUv<^DCATxUY5+m2Gr!Ththr^K`@Ed(e^tmQ^&H2&!egR_l*qbQ96Rplo zbZL(}_N}1^np`La78IeozURgijXpI3CKDs?&wu(@6;RbxR(ok(hwFTLYP=Dgh~G1D zl>G8(ddQpnp_F5W;!yUBG3T$N2nufE56z?E231ENH*9+SpGp!9X%4=oWkexg{LQ45c<7efW z#8#Wfn$z_HA~SAXoSDJTX=^KNf~cy`Pw*0(oIaBbqKFxy4LOZig~apU_uC5=3=Gm$ zO+0dl4!_Jr(DEW4Oix|kOb2Eha6r-)JTH##%U`k*FO75$UR|eH)(*LxpB~)wd~0vB zy44vqSWsJxz&B?^4Tno++vjx%G`YoP2TRDJr&)GcUy)M=O#jw6$4|ytO}AZ(!<%3^ zW!kVNc8%2IrRCgJ%d@%i*BLx+auO`Tg4t-8zh_ft^OSn z76jJ#WYubDv3whw)WxFjvwO8v?5M%NwwqzdL0hm9@KBOh zSY+_2X~BggZ0YBA@d!I6^Yv`4_i3SzL+)oEBIo3$1P#V9(gCVkm<4QVgjJfqsy_%O z(=4st8-1sZW3x%^cygwiijPv?MC^WiN`AxH6V;aKwOVt`=Q&m862kqVC9CSx|KJm( z!R0{Dh?w}zgA{M6vF}VqMAeL`rPLRjd%`tBJXCN-D_tC-e zX=Tn+JPTB%8$3G33Nj!qSV|>seG+mJgPZ>Cy*qraXnNDamSz$z+iBa;-xw;JJ(zV^ zPVd9{V+9LxTP?3@7Qb5FL6CW~G6;S=h4oOcK^o@*<3)5`icT-8IFRXqH58@v9uL$w z$@adeV(nrGgpXHAf|rGzHqUs&Rz(esckJ(BkTyC-3=Ng*>mrI%R!C|G10uLJ-%WkG zsXN$($?a8NscUmGC*S?F_KU8cWfi|&3e81^U*$atA5QATHO zXi2xlv@*n}j8*l+StvuZuWvt^2V6t8FQ@%c6FkvZmFJeGkzj@wAJ%**=dI50Q(k8m zEJngbjK5R#?Zd#aI>i@ceOQIg?r$wRL!PmpYU}vrjpl}?kK+QIeCIU+^k<-v;yh)_ zbu`&OXqk@pt-7n>q(#&9+s{^0sx14zBR}}42RY`CHDjMv?(l21=e0qU(^BYSaPNJUpw6f z?bwf$W(GK}BrReTI2t>b@d40+CDgfrO%!B|HnPLCs1P!m_3&HdEaTrb2{&FeNNLI6 z*b7nKS(2&P8u?(;`?mN#6VNR)ob4XC1hdwaBLyI3g$k&Jz8A5wZeJGE~5llC3ucEqnSf<{reQ!Oe$SCr1V6L38 zGLJ&J{Uq{{DaMxOz%08IF`{2GUi3q|h|9y~oG@Q0sEXIIJZ(GFce$H)0mu1N@+H`6e*}1-n!;Lr{WqfyDQFR5ZA|ii%Z`^U$#$hIxuiI_hUR^_d=rB1%`BNng zr|@J@{a5&Qi^0jkX3fgo)#)f7gbI=x4mhX;3_Nc5S*pwxXRsD@i~}|?>6S^fA!elM z_~&#nAmcCV+G0v#mOkgbzMRi>M539%CHf!%z2z&cS>QZm2&)Rj0$+XoEgsG$p}6@ zKNs;hCV$OeQBeWBlJ_S_-F%!~f<~?0brydz+1c6USzIq$FL_siM98ITQsC zS_^dW>q&J9;OMLDu$|+XMW|G%mmqJrTlPKdGm=b|7!Z4YP4jjx1Hn7Fub zm^E39`DMw)r#s^FX9rN(za@a@eK|`v72jsK0kWYN(Hw17OTYNyFv$g-{?YlG99P6Q zL6e$#w}Ur!xfr`GW4Gr!nqcDa_fR+Z-hMoVvQK`Dfek2{sd(F6)3@a`{YhpDxJQGd_t<*_JO8b{>cmz5AXBX=)<@`SZ2z@1ee&^w>kJ32fn(tc5~09#q)F{ zULuuAGauZD;U<1^n+i{8+{3EcD@g% z{n8OL7RxPO#O?{tj9-1>#-$>NJfd=QsUZ;s1#~S23j9~pl)T_4lNgkx$$wJeLc!?2 z3jhL%=$Mp$H;d`2L#Fh(e5o zmp7Rtrp*xk=g*%q;po87cmt%v_WNUz!=S%1-#Cpnm_fovy10sl@HH%gIMfLz?QpS) zr#fs&?Bk{azPb^auwh(cN2~Ao9|0?+In1jYVGLuH9HQ*!m!go-^+{4vzkOT4{g%u%n z`gpwp!Zzlkz0pK#f7XAZSm%g(1rxgfN9E_+?^+D+BQc{iaTZ!W>web?quT1YlZ?a! z{LJcLH=j6?Q+9){EDHSP0v}+b`O4bLq3Jcdv&|>8Eh4;7%YtyAh~bT*Q;iFar-3=8 zQKUkWEf7aNpUG$2SW6Qbj+W=MI`P1SPTpAiVJLNrDiQ0U63nof63vhksp4MK%Q?%h zO-)UCudQ`)VyKUze*>)!<(Mai&()MXSg)HiNHKUhm@!x>IzC>W^hh+X*XQc66Hf{Q zY6q$YV|>29ZRY2Jxit*Y%4IQCllIE6hzu_Ol#U}@4_>j8kwNmF=#QL;VHVcY#1m;+7#U8U(vL-KVFd; z@XxPD;W36H>=G0Et7i-MN=S>F;^$hUqU=wXGFpXJR&r>oi1QjZIJ~Wp&-J}MV}enS zZ|AfDE56r|lgXf#iJOQOk%UsryQiGKLSE(FV_rcQ+=K@zy$ola29g3Xd+12twWpUC zig(Wm>8RmuZD4$=hRZ`(obr!>`FVqdg|v1lZ3_AnGWkY|Sv2Aj{miD&c0si8l&e^$ zG`y?G1U6Oc#!{aqr8kNCb-XViCK|Jvh zD*I3qH$t1|ji}lmD~X^v`asvGAlTdGmlxLE6Mlp)lDUO!<*#AMM2#e*edCF-8}-0+ zZ0<{%Fa!!6C`8;@M=v6`IvW~PRaAs+0$FHyL!`)__&1|GSo9QkO-raD{KKzm)efZ& zaMXw#dH!@03fHS?M6JgQQrM?id$T_Mqsk^-n3t+jEnYM0R*>@$4+P!N-60)g`r}b@ zikoZWQ}x0O(P<>9G#0=XI(__ztBdnPZJ}=X0x1z|h7Tb`L%EIA)FqFn+X~cFk$TWD zNU8fXxp7rnc#bfk8p~%V9~F3BM25lgmj6lnL_uAyh{w?CPLijzSI{D}#8pj9eyPo>I5>?)EA=(!Mx5z#A4LLjC$ z6<{C#h_Y_KuZ{DZ*2FKA0e64LHt~)bvSUC~yH4C(4I13@~ z5pX1jIn}K-yn~!I^znkEHtr#07N59;kj((0#^57bI1x4I7?^p}PZhxVj`sC8->(i4 zY*>@H>d5t4m;2LUj~>U1Qby?6_#uQtE})|C`RN|~)y^01NefU2S$zdA5YUZOHqvw3 z%{Du+k)st&68IwUnY9oC%pmW(-|g%ygCh?->n^o)EbhKw`ZJ7nEP>;-wLBiKGbwH3 zB2(fr&Xt~02;pZ>q}N&s8Dyb!@Ls`h10f?3RQ{1-1IThOFCa^Dmef&c80x5I%$>(F z>FD)X!43~}0yd4WI&cDBvrZbqTVZi#{X9L}QYKcl;(>hR(XUnR<;9BB4PG-%mo14S z!83x(A^rVgIZAwVf>Qq}_!#Aj)q3(<1*bFNOyq`uEwt726M~COxFu#` z#|ki)3;HoBMfHq_oKiFk2eFMLD?YWMldA0;=j|8 zl|?ud@kI+*)nO$~BEO|1r131iHQ;bs(>-J}z zasvXFF(%@FoBdW}P8h4Ms}3}BoN>ARyD&*5ly^egwwinpCktj5y&GaD)9B6?X`U4I zcwXXa>|w)3Cz{C~9AFYLHjX7N((mMlVi$q5PDgp*6%DL++b}OeD7+YzA5szOVdQv$ z{00daDfhsnj;zoLv)PEkz?_F^U6ZI+gh`<-mj=BwaYuGl36q14b?0=O(X-Y?9ri#o!4 zqRK&Hkcm0C7zOR;d5gH-f*1joPFJl=n?e!`?*w%}vf#V{_Xf-X%D96zLJZEEjv%vO zrl+1LJU4&0-6I%yaapCCOae_ODJF~%u3Z$Bd=@{0SD_UG#0 zj)oQg=!qwQw$27)bTbg67j3dmxIcLcp-i?^>9?4dqk{-CsDSD^@N1l%{g)P?K`>xg z<1I${8w6fN#l$?0=2O~-FbMIJR|Heywa5j!%aJ4`B--xM&AmVrUcwV<3R1MsV9r*y zKN;xFgeFMc#=gEKUQ+5(K&$y$8UD1DW^%@dSVschBo6E^~V^qU8&KW(uzW&N-CJjo_7yg|r zq1a+OQHuLU27|KFGW&&kfVzM0lQmr(FBt;7iVsrB4m%^+`oh;YryE~=&rm2)9egLg zDOOR0%5Yg-JK&~~8>_fo(sU3_vv`10Dcj4-*)q=nr^RRzHfO?yV`MA_B(p%u z_xbU9?%YTNm$$9lut8W*FjrIB!O3JDfoT~8*KW?XhSai!LCu~6pm`w7hGSxTd$v`q zmhBC`*X(f;7d|vYv<~I-1Tz73Np`2R4Uqdv9a zIzvE4{wm~xL@_Zng)g=S?huzC!3@kBrsBFfJ|q+q6O#dwZ}Lu-+hNYt?)L-WhR0yq0F5e2d{wJ>l?q-v ziBXQ>7NOQ_VjjN(8x4w$DZ*RQNRL81Bw`3S>o_C*E~j;qE`!JHpB~QDPd{A}+i)tZ zJDYceHfh({=-5eOc-?^{AI3h6fULg|9{LZf0^-F+=Fp4A+BFKTVNlLIMmwG~mIK9M zBWsGn1GE@|sVjtj!Jmh#rtN0Wd@x07YDwoIPm`RQplkoffd z;N(hK`_>A%(tZklANvYYNm9a3Z+bLehr|wF19&zQoeEEpK86_xf>z0*>!(1rY3#&i zS((sRLPpT%!pI^SKMcqO@dE61l4N&T2ZnU;JrmMhSSL(=pTx*l3928p&Kq)VvVw8> zwI!Cj;-u+czL2r#bAG!0u_CM+m*|C%@C}GSbmSvx5o<5QJ0CikFf)Lv@X^;-)Wir& zI^13S!*Bd2R@2G6KSPzbpz(G^N@!mY5t&N?)fLO&LZ*PO7z@Em>%Btir<+W?)(o%LbWRkV3bH;oa$;yS2lCrCn z`sGdfIs)hM7+Djg6kMY`b=hhkZ+CUoBELyNB32D&V`ECsWu*0+F3D?2d(PPQz&x@y zAsRfOZal0%&*juAyCXdedRj*|F5pA}|Hp7jVxJ_9@TwzNQeY#Ee=~2l_QS=$#^!HA zuDr^|PwB8GO0GY`FC#@eN`fBp#1kbB-*kG&*#5%~!wD60&f;PIl856tkgsXd?!dw$ zRq?u@1UM6#2!#{DqoSp}&s5`eSQHe0(V7C9>r6C}{#uJ9(%*S$Y#om-JOe&6iPVbU z`Qlrsb7z|9$kejbhRn}iLVd8%^y?)zA?5N}1TU)StwEpC)#K$>w5T=q;>OVRu)s$C zQ}5NTZ$%kpIZ!59%+-E9HH4emd`=KWFAc}0oMiP!1btRN3EF|xi<2ElHb6w;|B@@8{)1c4l^r$Jiqt}I zX(XpA9tMfI@@`fk%a0kDluE8vHveqMq5G!BNW%hl9YE*kP9e#*x*MMzQNRnB!kTu1p zgY^|qz-2)tWcT>)x=nWuG4*j+sK?mn7`Es_4Ic_O+XKi65`|ivtJq;7-vfV#CgA~s zqrOoZSN!I(ir|3=_mT9(xRgd57?Dv*xq9BKyz}3{M&fNtVpAs57-9udZ?6z#97%HTV_ z4eg*Q6K3lN14*n};De;z_LtQ_qi8DD{UX4ci%^X>K7B=bhqw zX&#+Z;4GU3mp*%5EC0jKcm1pT-MyxnCG^TJy%~MqaMhCs0yXgIQ8rSlB1Y>WxpjFT zI;?i6XoRa;-7LZ^B9hYy@vo>eU)Y`Fe(HB=gdgS{D;!7RatqYsSP6mPODjhP@chXf z5xfKJ1qBm_pYw#>h+-+qhj1PUzR0*SR<`9a9YS69Hu4wr(1c=62hZz@`fXNbdv?yP3h%txY~R^hOan1`B5 zEXt^`p1rrijVwShd6LY5uB@y(z9aSM!RE>dQEqu07z;_lIFu`2v3EWa?z;3M5CYj>zy#M)WXb|hr=qnYz`zw zx=M#*Uj)@eQ3mI7e2wj6Sj9Cj!jgJD%&2jTZ!EJf2QW?X&o7`qlKl(I9-MuLq_R@1FvFx@Ls5xBEd6sEpql5?&kdeSsYiAYZ?jr&#_Au-q!-{avgGU=a`@hhLrAVlU1{vV=mIK7yn;cE<74cf7AAj1byV;^W3d z;E|ZQqNmY+T>PJ<&_aWa)qpRO)E$AvvoV?fDq8XLi#-ux^Pb3xx6N|0vQ-{QfGQOD z|Kp~deF35DPb>B>)Qyac$_?sns^LHn)Z^Ko8-SP*Yr<$I(6brV$F%c^1VqKe@H!

qy}|1(?Rgaf6Me=`;LPY|MTUH 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

  • l_NS1`g(CJAVxJu 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 z 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 YjIxm77moqH4jGxEtg1}m6BEDx0`A4EYybcN literal 0 HcmV?d00001 diff --git a/frontend/src/components/QuizTools.css b/frontend/src/components/QuizTools.css new file mode 100644 index 0000000..abba534 --- /dev/null +++ b/frontend/src/components/QuizTools.css @@ -0,0 +1,36 @@ +.quiz-tool-dialog { margin: auto; width: min(760px, calc(100vw - 24px)); max-height: 88vh; padding: 0; border: 1px solid #d9dfe8; border-radius: 6px; background: #fff; color: #333; box-shadow: 0 12px 48px #18243640; } +.quiz-tool-dialog::backdrop { background: #172b464d; } +.quiz-tool-dialog:has(.quiz-calculator-keys) { width: min(520px, calc(100vw - 24px)); } +.quiz-tool-dialog > header { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 16px 20px; background: #eff0f6; border-bottom: 1px solid #dfe3eb; } +.quiz-tool-dialog h2 { margin: 0; font-size: 1.2rem; } +.quiz-tool-dialog > header button { border: 0; background: none; font-size: 1.7rem; padding: 0 8px; cursor: pointer; } +.quiz-tool-body { padding: 20px; overflow: auto; } +.quiz-tool-body p { margin: 10px 0; } +.quiz-tool-body button { padding: 8px 12px; border: 1px solid #d7dce6; border-radius: 4px; background: #f7f8fa; color: #303640; cursor: pointer; font: inherit; } +.quiz-tool-body button:disabled { opacity: .5; cursor: not-allowed; } +.quiz-tool-body button:focus-visible, .quiz-tool-body input:focus-visible { outline: 2px solid #426da7; outline-offset: 2px; } +.quiz-tool-body input:not([type=checkbox]) { display: block; width: 100%; padding: 10px; border: 1px solid #cdd4df; border-radius: 4px; font: inherit; color: #333; background: white; } +.quiz-tool-body table { width: 100%; border-collapse: collapse; text-align: left; font-size: .9rem; } +.quiz-tool-body th, .quiz-tool-body td { padding: 12px; vertical-align: top; border-bottom: 1px solid #e2e8ef; } +.quiz-tool-body thead { background: #edf5fb; } +.quiz-tool-body tbody tr:nth-child(even) { background: #edf5fb; } +.quiz-tool-body small { display: block; margin-top: 4px; font-size: .78rem; color: #5d6776; font-weight: normal; } +.quiz-tool-body a { color: #38669d; } +.quiz-tool-body [role=alert] { color: #9c2639; } +.quiz-tool-body input.quiz-calculation { font-size: 1.8rem; text-align: right; margin-bottom: 12px; } +.quiz-calculator-keys { display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; } +.quiz-calculator-keys button { min-height: 48px; font-size: 1.2rem; font-weight: 600; } +.quiz-calculator-keys button:last-child { grid-column: 1 / -1; } +.quiz-calculator-keys .quiz-equals, .quiz-tool-tabs button[aria-pressed=true] { background: #496fa5; color: white; } +.quiz-tool-tabs { display: flex; flex-wrap: wrap; gap: 6px; margin: 16px 0; } +.quiz-reference-controls { display: flex; flex-wrap: wrap; gap: 8px; align-items: end; } +.quiz-reference-controls label { flex: 1; min-width: 150px; } +.quiz-reference-note { color: #5d6776; font-size: .83rem; } +.quiz-reference-scroll { overflow-x: auto; max-height: 45vh; } +.quiz-reference-scroll table { min-width: 450px; } +.quiz-reference-form { margin-top: 20px; padding-top: 16px; border-top: 1px solid #d7dce6; display: grid; gap: 12px; grid-template-columns: repeat(2, minmax(0, 1fr)); } +.quiz-reference-form h3, .quiz-reference-form > div, .quiz-reference-form > .quiz-check { grid-column: 1 / -1; } +.quiz-check { display: flex; align-items: baseline; gap: 8px; margin: 10px 0; } +.quiz-check input { width: auto; } +.quiz-sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; } +@media (max-width: 520px) { .quiz-tool-body { padding: 14px; } .quiz-reference-form { grid-template-columns: minmax(0, 1fr); } } diff --git a/frontend/src/components/QuizTools.jsx b/frontend/src/components/QuizTools.jsx new file mode 100644 index 0000000..830bfd0 --- /dev/null +++ b/frontend/src/components/QuizTools.jsx @@ -0,0 +1,132 @@ +import { useEffect, useId, useRef, useState } from 'react' +import api from '../api/client' +import { useAuth } from '../context/AuthContext' +import { calculate } from '../utils/calculator' +import './QuizTools.css' + +export function QuizDialog({ title, children, onClose }) { + const ref = useRef(null) + const titleId = useId() + useEffect(() => { + const dialog = ref.current + dialog.showModal() + return () => { if (dialog.open) dialog.close() } + }, []) + return +

    {title}

    +
    {children}
    +
    +} + +function Calculator() { + const [expression, setExpression] = useState('') + const [error, setError] = useState('') + const evaluate = e => { + e?.preventDefault() + try { + setExpression(calculate(expression).toLocaleString('en-US', { useGrouping: false, maximumSignificantDigits: 12 })) + setError('') + } catch (err) { setError(err.message) } + } + const press = key => { + if (key === '=') return evaluate() + setError('') + setExpression(value => key === 'AC' ? '' : key === '⌫' ? value.slice(0, -1) : value + key) + } + return
    + + { setExpression(e.target.value); setError('') }} placeholder="0" autoComplete="off" autoFocus /> + {error &&

    {error}

    } +
    {['(', ')', '^', 'AC', '7', '8', '9', '÷', '4', '5', '6', '×', '1', '2', '3', '-', '0', '.', '=', '+', '⌫'].map(key => + , + )}
    +
    +} + +const emptyReference = { name: '', group: 'Blood', reference_range: '', units: '', age_group: '', specimen: '', source: '', source_url: '', is_published: false } +const labFields = [ + ['name', 'Test name', 120], ['group', 'Group', 60], ['reference_range', 'Reference range', 250], + ['units', 'Units', 80], ['age_group', 'Age / population', 120], ['specimen', 'Specimen', 120], + ['source', 'Source citation', 500], ['source_url', 'Source URL (optional)', 2000], +] + +function LabValues() { + const { user } = useAuth() + const isEducator = ['admin', 'moderator'].includes(user?.role) + const [rows, setRows] = useState([]) + const [query, setQuery] = useState('') + const [group, setGroup] = useState('All') + const [manage, setManage] = useState(false) + const [form, setForm] = useState(null) + const [removeId, setRemoveId] = useState(null) + const [error, setError] = useState('') + const [loading, setLoading] = useState(true) + const [saving, setSaving] = useState(false) + const [refresh, setRefresh] = useState(0) + useEffect(() => { + let active = true + setLoading(true) + setError('') + api.get('/study-tools/lab-values', { params: { include_drafts: manage } }).then(r => { if (active) setRows(r.data) }) + .catch(() => { if (active) setError('Could not load reference values. Try again.') }) + .finally(() => { if (active) setLoading(false) }) + return () => { active = false } + }, [manage, refresh]) + const save = async event => { + event.preventDefault() + setSaving(true); setError('') + const payload = Object.fromEntries(Object.keys(emptyReference).map(key => [key, form[key]])) + payload.source_url ||= null + try { + if (form.id) await api.put(`/study-tools/lab-values/${form.id}`, payload) + else await api.post('/study-tools/lab-values', payload) + setForm(null); setRefresh(v => v + 1) + } catch { setError('Could not save. Check all fields and the source URL.') } + finally { setSaving(false) } + } + const remove = async id => { + setSaving(true); setError('') + try { await api.delete(`/study-tools/lab-values/${id}`); setRemoveId(null); setRefresh(v => v + 1) } + catch { setError('Could not delete this reference.') } + finally { setSaving(false) } + } + const filtered = rows.filter(row => (group === 'All' || row.group === group) && + [row.name, row.age_group, row.specimen, row.units].some(value => value.toLowerCase().includes(query.toLowerCase()))) + return <> +

    Ranges vary with age, laboratory and method. Use the source and population shown; follow local laboratory intervals.

    + {isEducator && } + {error &&

    {error}

    } +
    + + {manage && } +
    +
    {['All', ...new Set(rows.map(row => row.group))].map(name => )}
    + {loading ?

    Loading references…

    : filtered.length === 0 ?

    No published reference values match. Educators can add sourced, age-specific entries; no ranges are assumed.

    : +
    {manage && }{filtered.map(row => + + + + {manage && } + )}
    Test / specimenReference rangePopulation / sourceActions
    {row.name}{row.specimen}{!row.is_published && ' · Draft'}{row.reference_range} {row.units}{row.age_group}{row.source_url ? {row.source} : row.source}{removeId === row.id ? <> + + : }
    } + {form && manage &&
    +

    {form.id ? 'Edit reference' : 'New reference'}

    + {labFields.map(([key, label, max]) => )} + +
    +
    } + +} + +const shortcuts = [['Choose answer', '1–9'], ['Submit study response', 'Enter'], ['Previous question', '←'], ['Next question', '→ or N'], ['Bookmark question', 'B'], ['Open question image', 'Space'], ['Close tool', 'Escape']] +export default function QuizTools({ tool, onClose }) { + const title = { calculator: 'Calculator', labs: 'Lab values', shortcuts: 'Keyboard shortcuts' }[tool] + if (!title) return null + return + {tool === 'calculator' ? : tool === 'labs' ? : <> +

    Shortcuts pause while typing or using a dialog.

    + {shortcuts.map(([action, key]) => )}
    ActionKey
    {action}{key}
    + } +
    +} diff --git a/frontend/src/pages/CustomQuizPage.jsx b/frontend/src/pages/CustomQuizPage.jsx index 414c52f..a4d4ec8 100644 --- a/frontend/src/pages/CustomQuizPage.jsx +++ b/frontend/src/pages/CustomQuizPage.jsx @@ -1,5 +1,5 @@ import { useEffect, useState } from 'react' -import { Link, useNavigate } from 'react-router-dom' +import { Link, useNavigate, useSearchParams } from 'react-router-dom' import api from '../api/client' import { useAuth } from '../context/AuthContext' import './CustomQuizPage.css' @@ -7,8 +7,9 @@ import './CustomQuizPage.css' export default function CustomQuizPage() { const { user } = useAuth() const navigate = useNavigate() + const [searchParams] = useSearchParams() const [categories, setCategories] = useState([]) - const [categoryIds, setCategoryIds] = useState([]) + const [categoryIds, setCategoryIds] = useState(() => [...new Set(searchParams.getAll('category').map(Number).filter(id => Number.isSafeInteger(id) && id > 0))]) const [state, setState] = useState('all') const [shared, setShared] = useState(false) const [title, setTitle] = useState('My Custom Test') diff --git a/frontend/src/pages/QuizPage.jsx b/frontend/src/pages/QuizPage.jsx index 8bf54d8..a7216d5 100644 --- a/frontend/src/pages/QuizPage.jsx +++ b/frontend/src/pages/QuizPage.jsx @@ -3,6 +3,8 @@ import { useParams, useNavigate, useSearchParams, Link } from 'react-router-dom' import { useAuth } from '../context/AuthContext' import api from '../api/client' import MyNote from '../components/MyNote' +import QuizTools, { QuizDialog } from '../components/QuizTools' +import './QuizPlayer.css' const TeachChat = lazy(() => import('../components/TeachChat')) @@ -280,7 +282,7 @@ function QuizCodeBadge({ code }) { } function CourseQuizStart({ quiz, onStart }) { - const mode = quiz.mode === 'timed' ? 'exam' : 'study' + const mode = quiz.mode === 'timed' || quiz.allow_review === 0 ? 'exam' : 'study' const [error, setError] = useState('') const [starting, setStarting] = useState(false) const begin = async () => { @@ -327,7 +329,11 @@ function ModeSelectScreen({ quiz, voices, onStart }) { const [startingMode, setStartingMode] = useState('') const handleStart = async (mode) => { - const timerMinutes = mode === 'exam' && customTimer ? parseInt(customTimer) : null + if (mode === 'exam' && customTimer && (!Number.isInteger(Number(customTimer)) || Number(customTimer) < 1)) { + setStartError('Enter a positive whole number of minutes, or leave the timer blank.') + return + } + const timerMinutes = mode === 'exam' && customTimer ? Number(customTimer) : null setStartError('') setStartingMode(mode) try { @@ -355,7 +361,7 @@ function ModeSelectScreen({ quiz, voices, onStart }) { { mode: 'study', icon: '📖', label: 'Study Mode', desc: 'Answers & explanations shown as you go', color: '#22c55e', bg: '#f0fdf4' }, { mode: 'exam', icon: '🎯', label: 'Exam Mode', desc: 'Answers hidden until submitted', color: '#3b82f6', bg: '#eff6ff' }, ].map(({ mode, icon, label, desc, color, bg }) => ( -
    !startingMode && handleStart(mode)} +
    + ))} {startError && ( @@ -441,6 +447,12 @@ export default function QuizPage() { const [favorites, setFavorites] = useState([]) const [activeReadSegment, setActiveReadSegment] = useState(null) const [manualHighlights, setManualHighlights] = useState({}) + const [draftAnswer, setDraftAnswer] = useState('') + const [tool, setTool] = useState(null) + const [showReview, setShowReview] = useState(false) + const [responseStats, setResponseStats] = useState(null) + const [statsError, setStatsError] = useState('') + const [submitError, setSubmitError] = useState('') const timerRef = useRef(null) const toastRef = useRef(null) const hasStarted = useRef(false) @@ -559,6 +571,7 @@ export default function QuizPage() { useEffect(() => { setActiveReadSegment(null) setTtsActive(false) + setDraftAnswer('') savedHighlightSelectionRef.current = null clearTimeout(autoHighlightTimerRef.current) if (!readThrough) setActiveReadSegment(null) @@ -575,33 +588,13 @@ export default function QuizPage() { }, [quizMode, questions, currentIdx, selectedVoice, voices.length, fetchTtsAudio]) const resumeQuiz = useCallback(async (saved, availableVoices = []) => { - const savedMode = saved.mode || saved.quizMode - const mode = savedMode === 'exam' ? 'exam' : 'study' const savedIdx = saved.current_idx ?? saved.currentIdx ?? 0 const savedAnswers = saved.answers || {} - - const aid = saved.attempt_id || saved.attemptId || '' - // For feedback modes, load quiz with correct answers BEFORE showing. - if (mode === 'study') { - try { - const quizRes = await api.get(`/quizzes/${id}?study=true${aid ? `&attempt_id=${aid}` : ''}`) - setQuiz(quizRes.data) - } catch (err) { - console.error('Failed to load quiz:', err) - navigate('/') - return - } - } else { - // For exam mode, ensure quiz data is loaded - try { - const quizRes = await api.get(`/quizzes/${id}${aid ? `?attempt_id=${aid}` : ''}`) - setQuiz(quizRes.data) - } catch (err) { - console.error('Failed to load quiz:', err) - navigate('/') - return - } - } + const aid = saved.attempt_id || saved.attemptId + if (!aid) return + const quizRes = await api.get(`/quizzes/${id}?attempt_id=${aid}`) + const mode = quizRes.data.attempt_mode === 'study' ? 'study' : 'exam' + setQuiz(quizRes.data) hasStarted.current = true setQuizMode(mode) @@ -671,7 +664,8 @@ export default function QuizPage() { try { // Start attempt first (may select random question subset) - const attemptRes = await api.post(`/attempts/start?quiz_id=${id}`) + const attemptRes = await api.post(`/attempts/start?quiz_id=${id}&mode=${mode}`) + mode = attemptRes.data.mode || mode setAttemptId(attemptRes.data.id) const aid = attemptRes.data.id @@ -760,6 +754,25 @@ const timerStarted = timeLeft !== null }, [attemptId, quizMode, saveProgressNow]) const setAnswer = (questionId, value) => setAnswers(prev => ({ ...prev, [questionId]: value })) + const chooseAnswer = value => { + if (!current || (isStudy && answers[current.id])) return + if (isStudy) setDraftAnswer(value) + else setAnswer(current.id, value) + } + const submitStudyResponse = () => { + if (isStudy && current && !answers[current.id] && draftAnswer.trim()) setAnswer(current.id, draftAnswer) + } + + useEffect(() => { + let active = true + setResponseStats(null); setStatsError('') + if (isStudy && attemptId && current && answers[current.id]) { + api.get(`/study-tools/attempts/${attemptId}/questions/${current.id}/responses`) + .then(r => { if (active) setResponseStats(r.data) }) + .catch(() => { if (active) setStatsError('Response statistics are unavailable.') }) + } + return () => { active = false } + }, [isStudy, attemptId, current?.id, answers[current?.id]]) const clearCurrentHighlights = () => { if (!current || !manualHighlights[current.id]) return @@ -803,9 +816,8 @@ const timerStarted = timeLeft !== null showToast('No answers selected — submitting with 0 answered.') await new Promise(r => setTimeout(r, 1200)) } - clearInterval(timerRef.current) - api.delete(`/attempts/progress/${attemptId}`).catch(() => {}) setSubmitting(true) + setSubmitError('') try { const submission = { answers: Object.entries(answers).map(([qid, answer]) => ({ @@ -813,16 +825,42 @@ const timerStarted = timeLeft !== null })), } const res = await api.post(`/attempts/${attemptId}/submit`, submission) + clearInterval(timerRef.current) + api.delete(`/attempts/progress/${attemptId}`).catch(() => {}) if (returnTo) { navigate(`/results/${attemptId}?return_to=${encodeURIComponent(returnTo)}`, { state: { result: res.data } }) } else { navigate(`/results/${attemptId}`, { state: { result: res.data } }) } } catch (err) { - if (!autoSubmit) showToast(err.response?.data?.detail || 'Submission failed') + const detail = err.response?.data?.detail + setSubmitError(typeof detail === 'string' ? detail : 'Submission failed. Your answers are retained; try again.') } finally { setSubmitting(false) } }, [attemptId, answers, submitting, navigate, showToast]) + useEffect(() => { + if (!quizMode || !current) return + const keydown = event => { + if (event.ctrlKey || event.metaKey || event.altKey || event.target.closest?.('input, textarea, select, [contenteditable="true"]') || document.querySelector('dialog[open]')) return + if (expandedImagePath) { + if (event.key === 'Escape') { event.preventDefault(); setExpandedImagePath('') } + return + } + if (event.target.closest?.('button, a') && ['Enter', ' '].includes(event.key)) return + if (hasActiveTextSelection()) return + if (/^[1-9]$/.test(event.key) && current.options?.[Number(event.key) - 1] !== undefined) chooseAnswer(current.options[Number(event.key) - 1]) + else if (event.key === 'Enter' && isStudy) submitStudyResponse() + else if (event.key === 'ArrowLeft') safeNavigate(Math.max(0, currentIdx - 1)) + else if (event.key === 'ArrowRight' || event.key.toLowerCase() === 'n') safeNavigate(Math.min(questions.length - 1, currentIdx + 1)) + else if (event.key.toLowerCase() === 'b') toggleFavorite(current.id) + else if (event.key === ' ' && current.image_path) { setImageZoom(1); setExpandedImagePath(current.image_path) } + else return + event.preventDefault() + } + window.addEventListener('keydown', keydown) + return () => window.removeEventListener('keydown', keydown) + }, [quizMode, current, currentIdx, answers, draftAnswer, favorites, expandedImagePath]) + if (loading) return
    Loading quiz...
    if (!quiz) return null @@ -862,8 +900,8 @@ const timerStarted = timeLeft !== null {isLast ? ( - ) : ( @@ -911,8 +949,17 @@ const timerStarted = timeLeft !== null } return ( -
    +
    + {tool && setTool(null)} />} + {showReview && setShowReview(false)}> +

    {answeredCount} of {totalCount} questions answered. Unanswered questions count as incorrect.

    +
    {questions.map((question, index) => )}
    + +
    } + {submitError &&
    {submitError}
    } {/* In-app leave confirmation */} {leaveTarget && (
    @@ -1016,16 +1063,27 @@ const timerStarted = timeLeft !== null
    {/* Main content */}
    - {quizNavigation('top')} +
    + +
    + + + + + + +
    +
    + {navOpen &&
    {questions.map((q, i) => )}
    } {current && (
    -
    -

    - Q{currentIdx + 1}.{' '} + +
    +

    {current.options.map((opt, i) => { - const isSelected = answers[current.id] === opt + const isSelected = (answers[current.id] || draftAnswer) === opt const hasAnswered = isStudy && !!answers[current.id] const isCorrectOpt = opt.trim().toLowerCase() === (current.correct_answer || '').trim().toLowerCase() const showCorrect = hasAnswered && isCorrectOpt const showWrong = hasAnswered && isSelected && !isCorrectOpt - const letter = String.fromCharCode(65 + i) + const letter = i + 1 const activeOptionChunk = activeReadForCurrent && activeReadSegment.type === 'option' && activeReadSegment.index === i ? activeReadSegment.chunkIndex : null const optionSpeechRange = getSpeechChunkRange(opt, OPTION_HIGHLIGHT_WORDS, activeOptionChunk) const optionFieldKey = `option-${i}` return ( -
    !hasAnswered && !hasActiveTextSelection() && setAnswer(current.id, opt)} +
    + ) })}

    ) : ( setAnswer(current.id, e.target.value)} + value={answers[current.id] || draftAnswer} + readOnly={isStudy && Boolean(answers[current.id])} + onChange={e => chooseAnswer(e.target.value)} + onKeyDown={e => { if (e.key === 'Enter' && isStudy) { e.preventDefault(); submitStudyResponse() } }} style={{ marginTop: 10, width: '100%', padding: '10px 14px', border: '1px solid var(--border)', borderRadius: 8, background: 'var(--input-bg)', color: 'var(--text)' }} /> )} + {isStudy && !answers[current.id] && } {isStudy && answers[current.id] && ( <> +
    Preferred response{current.page_reference && Source page {current.page_reference}}
    + {responseStats &&

    {responseStats.sample_size ? `${responseStats.sample_size} recorded answers. ${responseStats.basis}` : 'No response statistics available yet.'}

    } + {statsError &&

    {statsError}

    } {(current.explanation || current.explanation_image_path) && (
    {current.explanation && <>Explanation: {current.explanation}} @@ -1194,17 +1262,10 @@ const timerStarted = timeLeft !== null {quizNavigation('bottom')} - {/* Mobile: collapsible number grid */} - {navOpen && ( -
    - {questions.map((q, i) => )} -
    - )} - {answeredCount > 0 && !isLast && (
    -
    )} @@ -1225,8 +1286,8 @@ const timerStarted = timeLeft !== null
    {answeredCount > 0 && !isLast && ( )}

    diff --git a/frontend/src/pages/QuizPage.test.jsx b/frontend/src/pages/QuizPage.test.jsx new file mode 100644 index 0000000..6d06a0c --- /dev/null +++ b/frontend/src/pages/QuizPage.test.jsx @@ -0,0 +1,128 @@ +import { afterAll, beforeAll, beforeEach, describe, expect, it, vi } from 'vitest' +import { fireEvent, render, screen, waitFor, within } from '@testing-library/react' +import userEvent from '@testing-library/user-event' +import { MemoryRouter, Route, Routes } from 'react-router-dom' +import QuizPage from './QuizPage' +import api from '../api/client' + +vi.mock('../api/client', () => ({ default: { get: vi.fn(), post: vi.fn(), delete: vi.fn() } })) +vi.mock('../context/AuthContext', () => ({ useAuth: () => ({ user: { id: 1, name: 'Learner', role: 'user' } }) })) +vi.mock('../components/MyNote', () => ({ default: () => null })) +vi.mock('../components/TeachChat', () => ({ default: () =>
    Study tutor
    })) + +const questions = [ + { id: 1, question_text: 'Full first clinical question.', question_type: 'mcq', options: ['First answer', 'Second answer'], category_breadcrumbs: [{ id: 10, name: 'Pediatrics' }, { id: 11, name: 'Neonatology' }] }, + { id: 2, question_text: 'Full second clinical question.', question_type: 'mcq', options: ['Third answer', 'Fourth answer'], category_breadcrumbs: [] }, +] +let mode +let showModal +let close +beforeAll(() => { + showModal = HTMLDialogElement.prototype.showModal + close = HTMLDialogElement.prototype.close + HTMLDialogElement.prototype.showModal = function () { this.setAttribute('open', '') } + HTMLDialogElement.prototype.close = function () { this.removeAttribute('open') } +}) +afterAll(() => { HTMLDialogElement.prototype.showModal = showModal; HTMLDialogElement.prototype.close = close }) +beforeEach(() => { + vi.resetAllMocks() + localStorage.clear() + mode = 'exam' + api.get.mockImplementation(url => { + if (url.startsWith('/quizzes/10')) return Promise.resolve({ data: { + id: 10, title: 'Personal test', mode: 'timed', questions_count: 2, user_id: 1, time_limit_minutes: null, + attempt_mode: url.includes('attempt_id=') ? mode : null, + questions: questions.map(q => url.includes('attempt_id=') && mode === 'study' ? { ...q, correct_answer: q.options[0], explanation: 'Full explanation, preserved without shortening.' } : q), + } }) + if (url === '/attempts/progress') return Promise.resolve({ data: null }) + if (url.startsWith('/study-tools/attempts/')) return Promise.resolve({ data: { sample_size: 10, options: [{ count: 8, percentage: 80 }, { count: 2, percentage: 20 }], basis: 'Recorded answers.' } }) + return Promise.resolve({ data: [] }) + }) + api.post.mockImplementation(url => { + if (url.startsWith('/attempts/start')) { mode = url.includes('mode=study') ? 'study' : 'exam'; return Promise.resolve({ data: { id: 50, mode } }) } + return Promise.resolve({ data: { id: 50, score: 1, total_questions: 2 } }) + }) + api.delete.mockResolvedValue({}) +}) + +function mount() { + render(} />Submitted results
    } />) +} +async function begin(study = true) { + mount() + await userEvent.click(await screen.findByRole('button', { name: study ? /Study Mode/ : /Exam Mode/ })) + await screen.findByText('Full first clinical question.') +} + +describe('quiz player', () => { + it('keeps a study selection provisional until confirmation and shows genuine response data', async () => { + await begin() + expect(screen.getByRole('link', { name: 'Neonatology' })).toHaveAttribute('href', '/quizzes/create?category=11') + fireEvent.keyDown(window, { key: '1' }) + expect(screen.queryByText(/Full explanation/)).not.toBeInTheDocument() + fireEvent.keyDown(window, { key: 'Enter' }) + expect(await screen.findByText(/Full explanation, preserved without shortening/)).toBeInTheDocument() + expect(await screen.findByText('8/10')).toBeInTheDocument() + expect(screen.getByText('80%')).toBeInTheDocument() + fireEvent.keyDown(window, { key: 'b' }) + await waitFor(() => expect(api.post).toHaveBeenCalledWith('/favorites', { question_id: 1 })) + }) + + it('offers a functional calculator without hijacking input shortcuts', async () => { + await begin() + await userEvent.click(screen.getByRole('button', { name: /Calculator/ })) + const dialog = screen.getByRole('dialog', { name: 'Calculator' }) + const input = within(dialog).getByLabelText('Calculation') + await userEvent.type(input, '(2+3)*4') + await userEvent.click(within(dialog).getByRole('button', { name: '=', exact: true })) + expect(input).toHaveValue('20') + expect(api.post.mock.calls.some(([url]) => url === '/favorites')).toBe(false) + await userEvent.click(within(dialog).getByRole('button', { name: 'Close Calculator' })) + expect(screen.queryByRole('dialog')).not.toBeInTheDocument() + expect(screen.getByRole('button', { name: 'Submit response' })).toBeDisabled() + }) + + it('keeps exam answers hidden and reviews unanswered questions before completing', async () => { + await begin(false) + fireEvent.keyDown(window, { key: '1' }) + expect(screen.queryByText(/Full explanation/)).not.toBeInTheDocument() + expect(api.get.mock.calls.some(([url]) => url.startsWith('/study-tools/attempts/'))).toBe(false) + await userEvent.click(screen.getAllByRole('button', { name: 'Review & Complete' })[0]) + const review = screen.getByRole('dialog', { name: 'Review & Complete' }) + expect(within(review).getByText(/1 of 2 questions answered/)).toBeInTheDocument() + await userEvent.click(within(review).getByRole('button', { name: '2 · Unanswered' })) + await screen.findByText('Full second clinical question.') + expect(api.post.mock.calls.some(([url]) => url === '/attempts/50/submit')).toBe(false) + await userEvent.click(screen.getAllByRole('button', { name: 'Review & Complete' })[0]) + await userEvent.click(within(screen.getByRole('dialog')).getByRole('button', { name: 'Complete test' })) + expect(await screen.findByText('Submitted results')).toBeInTheDocument() + expect(api.post).toHaveBeenCalledWith('/attempts/50/submit', { answers: [{ question_id: 1, user_answer: 'First answer' }] }) + }) + + it('rejects an invalid timer before creating an attempt', async () => { + mount() + await screen.findByRole('button', { name: /Exam Mode/ }) + fireEvent.change(screen.getByRole('spinbutton'), { target: { value: '-1' } }) + await userEvent.click(screen.getByRole('button', { name: /Exam Mode/ })) + expect(await screen.findByText(/Enter a positive whole number of minutes/)).toBeInTheDocument() + expect(api.post).not.toHaveBeenCalled() + }) + + it('retains answers and saved progress when submission fails', async () => { + await begin(false) + fireEvent.keyDown(window, { key: '2' }) + const originalPost = api.post.getMockImplementation() + let failed = false + api.post.mockImplementation((url, ...args) => { + if (url === '/attempts/50/submit' && !failed) { failed = true; return Promise.reject({ response: { data: { detail: 'Try again safely' } } }) } + return originalPost(url, ...args) + }) + await userEvent.click(screen.getAllByRole('button', { name: 'Review & Complete' })[0]) + await userEvent.click(within(screen.getByRole('dialog')).getByRole('button', { name: 'Complete test' })) + expect(await screen.findByRole('alert')).toHaveTextContent('Try again safely') + expect(api.delete).not.toHaveBeenCalled() + await userEvent.click(screen.getByRole('button', { name: 'Retry submission' })) + expect(await screen.findByText('Submitted results')).toBeInTheDocument() + expect(api.post).toHaveBeenLastCalledWith('/attempts/50/submit', { answers: [{ question_id: 1, user_answer: 'Second answer' }] }) + }) +}) diff --git a/frontend/src/pages/QuizPlayer.css b/frontend/src/pages/QuizPlayer.css new file mode 100644 index 0000000..688f73c --- /dev/null +++ b/frontend/src/pages/QuizPlayer.css @@ -0,0 +1,73 @@ +.container:has(> .quiz-player), .container:has(> .quiz-results) { max-width: 1500px; } +.quiz-player, .quiz-results { --primary: #496fa5; --primary-hover: #365b8d; --border: #e8eaf1; --card-shadow: none; --card-radius: 0; --text: #333; --text-muted: #737982; --correct-fg: #327b64; --correct-bg: #e6edf8; --wrong-fg: #a13c51; background: #fff; padding: 24px 32px 40px; min-width: 0; } +.quiz-player .quiz-header-card { padding: 0 0 18px; border: 0; border-bottom: 1px solid var(--border); box-shadow: none; } +.quiz-player .quiz-header-title { font-size: .9rem; font-weight: 500; color: #737982; } +.quiz-player .quiz-code-badge { font-size: .75rem; } +.quiz-player .quiz-code-badge code { background: transparent; border: 0; } +.quiz-player .quiz-layout { display: block; } +.quiz-player .quiz-sidebar { display: none; } +.quiz-player .quiz-nav-toggle { display: inline-flex; } +.quiz-player .progress-bar { height: 3px; } +.quiz-topbar { display: flex; justify-content: space-between; align-items: center; gap: 20px; padding: 10px 0 20px; margin-bottom: 0; border-bottom: 1px solid var(--border); } +.quiz-topbar button { border: 1px solid transparent; padding: 10px 13px; background: #f8f9fb; color: #333; cursor: pointer; font: inherit; border-radius: 2px; } +.quiz-topbar button:disabled { opacity: .35; cursor: not-allowed; } +.quiz-topbar .quiz-question-select { padding: 0; background: transparent; text-align: left; white-space: nowrap; font-size: 1.15rem; color: #898d92; } +.quiz-question-select small { display: block; font-size: .8rem; margin-bottom: 3px; color: #858b94; } +.quiz-question-select strong { color: #30343a; font-weight: 650; } +.quiz-top-actions { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; justify-content: flex-end; } +.quiz-top-actions button { font-size: .85rem; min-height: 42px; } +.quiz-top-actions button[title] { background: transparent; } +.quiz-top-actions .quiz-review-button { background: #496fa5; color: white; font-weight: 650; text-transform: uppercase; padding: 12px 18px; margin-left: 12px; } +.quiz-player button:focus-visible, .quiz-player a:focus-visible, .quiz-results a:focus-visible { outline: 3px solid #779ad1; outline-offset: 3px; } +.quiz-player .question-card { border: 0; padding: 0; border-radius: 0; box-shadow: none; margin-bottom: 22px; } +.quiz-breadcrumbs { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; min-height: 78px; padding: 20px 0; font-size: .95rem; color: #737982; } +.quiz-breadcrumbs a { color: #416fa7; text-decoration: none; } +.quiz-breadcrumbs a:hover { text-decoration: underline; } +.quiz-player .quiz-stem { padding: 12px 0 24px; } +.quiz-player .question-card h3 { font-size: 1.08rem; line-height: 1.65; font-weight: 400; font-family: inherit; } +.quiz-player .question-card .options { gap: 0; margin-top: 24px !important; padding: 18px 0 8px; border-top: 1px solid var(--border); } +.quiz-player .question-card .option { padding: 15px 12px; border: 0; border-radius: 0; gap: 18px; font: inherit; font-size: 1rem; text-align: left; background: white; } +.quiz-player .question-card .option:hover { background: #f4f6fb; } +.quiz-player .question-card .option.selected { background: #e5ecf8; } +.quiz-player .question-card .option.correct { color: #327b64; background: #eef7f3; } +.quiz-player .question-card .option.correct.selected { background: #e5ecf8; } +.quiz-player .question-card .option.incorrect { color: #a13c51; background: #fbecf0; } +.quiz-player .option-letter { width: 35px; height: 35px; font-size: .86rem; border: 1px solid #cdd0d5; background: #fff; color: #757a82; font-weight: 600; } +.quiz-player .option.selected .option-letter { border-color: #496fa5; background: #496fa5; color: white; } +.quiz-player .option.correct:not(.selected) .option-letter { color: #327b64; border-color: #77af99; } +.quiz-player .option.incorrect .option-letter { background: #a13c51; border-color: #a13c51; color: white; } +.quiz-player .option-text { flex: 1; } +.quiz-response-stat { display: flex; align-items: center; gap: 16px; color: #777d88; font-size: .78rem; font-weight: 400; margin-top: 6px; } +.quiz-response-track { display: block; width: min(36vw, 340px); height: 8px; background: #edeef4; flex-shrink: 1; } +.quiz-response-track > span { display: block; height: 100%; background: #444; } +.option.correct .quiz-response-track > span { background: #71b298; } +.quiz-review-tabs { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; border-bottom: 1px solid var(--border); padding: 10px 0; margin-top: 18px; } +.quiz-review-tabs > span:first-child { background: #333; color: white; padding: 11px 24px; font-size: .85rem; font-weight: 600; } +.quiz-review-tabs .quiz-source-page { color: #6f7886; padding: 10px; font-size: .84rem; } +.quiz-player .explanation { border: 0; border-radius: 0; background: transparent; padding: 16px 0; font-size: 1rem; line-height: 1.75; color: #383d43; } +.quiz-player .quiz-stats-note { color: #7a818c; font-size: .74rem; margin: 10px 0; } +.quiz-submit-response { margin: 16px 0; } +.quiz-submit-error { padding: 14px; color: #962b3e; background: #fff0f2; margin-bottom: 14px; } +.quiz-review-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: 8px; margin: 20px 0; } +.quiz-tool-body .quiz-complete-confirm { background: #496fa5; color: white; padding: 12px 20px; } +.quiz-player .quiz-nav-mobile-grid { box-shadow: none; border-radius: 0; margin-bottom: 16px; } +.quiz-player .manual-highlight-toolbar { position: static; width: auto; padding: 0; background: transparent; border: 0; box-shadow: none; } +.quiz-results .review-card { box-shadow: none; border: 0; border-bottom: 1px solid #e8eaf1; padding: 20px 0 32px; border-radius: 0; } +.quiz-results .score-display { padding: 20px 10px; } +.quiz-results .card { box-shadow: none; border-radius: 0; } +@media (max-width: 800px) { + .quiz-player, .quiz-results { padding: 16px; } + .quiz-topbar { align-items: flex-start; gap: 10px; } + .quiz-top-actions { gap: 5px; } + .quiz-top-actions button { padding: 8px; min-height: 40px; } + .quiz-top-actions button[title] span { display: none; } + .quiz-top-actions button[aria-label="Next question"] { font-size: 0; } + .quiz-top-actions button[aria-label="Next question"]::after { content: '›'; font-size: 1.25rem; } + .quiz-top-actions .quiz-review-button { padding: 9px; margin-left: 0; font-size: .73rem; } + .quiz-breadcrumbs { min-height: 60px; font-size: .86rem; } + .quiz-player .question-card .option { gap: 10px; padding: 13px 8px; } + .quiz-player .option-status { margin-left: 45px; } + .quiz-response-stat { flex-wrap: wrap; gap: 8px; } + .quiz-response-track { width: min(48vw, 240px); } +} +@media (max-width: 430px) { .quiz-topbar { flex-wrap: wrap; } .quiz-top-actions { justify-content: flex-start; width: 100%; } } diff --git a/frontend/src/pages/ResultsPage.jsx b/frontend/src/pages/ResultsPage.jsx index 0dcdad7..9d918ec 100644 --- a/frontend/src/pages/ResultsPage.jsx +++ b/frontend/src/pages/ResultsPage.jsx @@ -1,6 +1,8 @@ import { useState, useEffect } from 'react' import { useParams, useNavigate, useLocation, useSearchParams, Link } from 'react-router-dom' import api from '../api/client' +import QuizTools from '../components/QuizTools' +import './QuizPlayer.css' export default function ResultsPage() { const { id } = useParams() @@ -12,6 +14,9 @@ export default function ResultsPage() { const [loading, setLoading] = useState(!result) const [deleting, setDeleting] = useState(false) const [confirmDelete, setConfirmDelete] = useState(false) + const [reviewIndex, setReviewIndex] = useState(0) + const [tool, setTool] = useState(null) + const [responseStats, setResponseStats] = useState(null) const isCourseQuiz = result?.course_id != null const reviewAllowed = result?.allow_review !== false @@ -37,6 +42,15 @@ export default function ResultsPage() { } }, [id]) + const reviewQuestion = result?.answers?.[reviewIndex] + useEffect(() => { + let active = true + setResponseStats(null) + if (reviewQuestion && result?.completed_at && reviewAllowed) api.get(`/study-tools/attempts/${result.id}/questions/${reviewQuestion.question_id}/responses`) + .then(r => { if (active) setResponseStats(r.data) }).catch(() => {}) + return () => { active = false } + }, [result?.id, reviewQuestion?.question_id, reviewAllowed]) + if (loading) return
    Loading results...
    if (!result) return null @@ -46,7 +60,8 @@ export default function ResultsPage() { const total = result.total_questions return ( -
    +
    + {tool && setTool(null)} />} {/* Score card */}
    @@ -131,12 +146,19 @@ export default function ResultsPage() { ))}
    -

    Question Review

    +
    + +
    + +
    +
    - {result.answers.map((ans, idx) => { + {result.answers.slice(reviewIndex, reviewIndex + 1).map(ans => { + const idx = reviewIndex const cardClass = ans.is_correct ? 'correct-card' : ans.user_answer ? 'wrong-card' : 'skipped-card' return ( -
    +
    + {/* Question header */}
    @@ -156,14 +178,15 @@ export default function ResultsPage() {
    - {/* Options with letter badges */} + {ans.image_path && Question illustration} + {/* Numbered answers */} {ans.options && ans.options.length > 0 && (
    {ans.options.map((opt, i) => { const isCorrect = opt === ans.correct_answer const isUser = opt === ans.user_answer const isWrong = isUser && !isCorrect - const letter = String.fromCharCode(65 + i) + const letter = i + 1 let bg = 'var(--option-bg)', border = '1px solid var(--border)', color = 'var(--text)' if (isCorrect) { bg = 'var(--correct-bg)'; border = `1.5px solid var(--correct-bd)`; color = 'var(--correct-fg)' } if (isWrong) { bg = 'var(--wrong-bg)'; border = `1.5px solid var(--wrong-bd)`; color = 'var(--wrong-fg)' } @@ -176,7 +199,9 @@ export default function ResultsPage() { background: isCorrect ? 'var(--correct-fg)' : isWrong ? 'var(--wrong-fg)' : 'var(--border)', color: isCorrect || isWrong ? 'white' : 'var(--text-muted)', }}>{letter} - {opt} + {opt} + {responseStats?.sample_size > 0 && responseStats.options?.[i] && {responseStats.options[i].percentage}%{responseStats.options[i].count}/{responseStats.sample_size}} + {isCorrect && !isUser && ✓ Correct answer} {isCorrect && isUser && ✓ Your answer} {isWrong && ✗ Your answer} @@ -200,6 +225,8 @@ export default function ResultsPage() {
    )} +
    Preferred response{ans.page_reference && Source page {ans.page_reference}}
    + {responseStats &&

    {responseStats.sample_size ? `${responseStats.sample_size} recorded answers. ${responseStats.basis}` : 'No response statistics available yet.'}

    } {/* Explanation */} {(ans.explanation || ans.explanation_image_path) && (
    diff --git a/frontend/src/utils/calculator.js b/frontend/src/utils/calculator.js new file mode 100644 index 0000000..ee482b2 --- /dev/null +++ b/frontend/src/utils/calculator.js @@ -0,0 +1,39 @@ +// Arithmetic only: no eval, identifiers, calls or property access. +export function calculate(expression) { + const source = expression.replace(/\s/g, '').replaceAll('×', '*').replaceAll('÷', '/') + if (!source || source.length > 300) throw new Error('Enter an arithmetic expression (up to 300 characters).') + const tokens = source.match(/(?:\d+(?:\.\d*)?|\.\d+)|[()+\-*/^]/g) || [] + if (tokens.join('') !== source) throw new Error('Use numbers, parentheses and arithmetic operators only.') + let index = 0 + const precedence = { '+': 1, '-': 1, '*': 2, '/': 2, '^': 4 } + function parse(minimum = 0) { + const token = tokens[index++] + let value + if (token === '+' || token === '-') value = (token === '-' ? -1 : 1) * parse(3) + else if (token === '(') { + value = parse() + if (tokens[index++] !== ')') throw new Error('Check the parentheses.') + } else { + if (token === undefined || !/^(?:\d+(?:\.\d*)?|\.\d+)$/.test(token)) throw new Error('Expected a number.') + value = Number(token) + } + while (precedence[tokens[index]] >= minimum) { + const operator = tokens[index++] + const right = parse(precedence[operator] + (operator === '^' ? 0 : 1)) + if (operator === '+') value += right + if (operator === '-') value -= right + if (operator === '*') value *= right + if (operator === '/') { + if (right === 0) throw new Error('Cannot divide by zero.') + value /= right + } + if (operator === '^') value **= right + if (!Number.isFinite(value)) throw new Error('Result is outside the supported range.') + } + if (!Number.isFinite(value)) throw new Error('Result is outside the supported range.') + return value + } + const result = parse() + if (index !== tokens.length) throw new Error('Check the expression.') + return Object.is(result, -0) ? 0 : result +} diff --git a/frontend/src/utils/calculator.test.js b/frontend/src/utils/calculator.test.js new file mode 100644 index 0000000..3327797 --- /dev/null +++ b/frontend/src/utils/calculator.test.js @@ -0,0 +1,14 @@ +import { describe, expect, it } from 'vitest' +import { calculate } from './calculator' + +describe('study calculator', () => { + it.each([ + ['1 + 2 * 3', 7], ['(1 + 2) * 3', 9], ['12 ÷ 4 × 2', 6], + ['2^3^2', 512], ['-2^2', -4], ['(-2)^2', 4], ['2^-2', 0.25], + ['.5 + 1.5', 2], ['1--2', 3], ['-(2+3)', -5], ['0/2', 0], + ])('evaluates %s', (expression, result) => expect(calculate(expression)).toBe(result)) + + it.each(['', '1/0', '(1+2', '1+2)', '2(3)', '1e3', '1..2', '1+', '2**3', '2^9999', 'Math.random()', 'globalThis', 'alert(1)', '1;2', '1'.repeat(301)])( + 'rejects invalid or unsafe input %s', expression => expect(() => calculate(expression)).toThrow(), + ) +})