Bug
Two separate 10-question module quizzes in lib/quizData.ts both use the slug "os-synchronization" (lines 2178 and 2258).
Impact
getQuizBySlug() (lib/quizData.ts:8799) does moduleQuizzes.find(q => q.slug === slug), which always returns the first matching quiz. The second os-synchronization quiz — a distinct 10-question set (different wording, options, and explanations) — is permanently unreachable:
/quiz/os-synchronization always serves the first quiz.
app/sem4/os/[chapter]/page.tsx ch4 maps to os-synchronization and renders the first quiz.
The second quiz's content (10 unique questions) can never be accessed by any user.
Expected
Quiz slugs must be unique. The duplicate should be renamed to a distinct slug (e.g. os-synchronization-2 or a proper moduleSlug-based slug) so both quizzes are reachable.
Files
lib/quizData.ts lines 2178 and 2258
Bug
Two separate 10-question module quizzes in
lib/quizData.tsboth use the slug"os-synchronization"(lines 2178 and 2258).Impact
getQuizBySlug()(lib/quizData.ts:8799) doesmoduleQuizzes.find(q => q.slug === slug), which always returns the first matching quiz. The secondos-synchronizationquiz — a distinct 10-question set (different wording, options, and explanations) — is permanently unreachable:/quiz/os-synchronizationalways serves the first quiz.app/sem4/os/[chapter]/page.tsxch4 maps toos-synchronizationand renders the first quiz.The second quiz's content (10 unique questions) can never be accessed by any user.
Expected
Quiz slugs must be unique. The duplicate should be renamed to a distinct slug (e.g.
os-synchronization-2or a propermoduleSlug-based slug) so both quizzes are reachable.Files
lib/quizData.tslines 2178 and 2258