UNPKG

mcp-quiz-server

Version:

🧠 AI-Powered Quiz Management via Model Context Protocol (MCP) - Create, manage, and take quizzes directly from VS Code, Claude, and other AI agents.

63 lines (62 loc) • 1.95 kB
"use strict"; /** * @fileoverview Quiz Guest Routes - Guest mode quiz functionality * @version 1.0.0 * @since 2025-08-04 * @module QuizGuestRoutes * @description Handles guest mode quiz URLs with simplified interface * @contributors GitHub Copilot * @requirements REQ_ROUTES_001 * @lineCount < 200 */ var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.createQuizGuestRoutes = createQuizGuestRoutes; const express_1 = __importDefault(require("express")); const error_handler_1 = require("../../../../shared/error-handler"); function createQuizGuestRoutes(config) { const router = express_1.default.Router(); /** * Guest Quiz Route * GET /guest/:id * * Provides simplified quiz interface for guest users */ router.get('/:id', (0, error_handler_1.asyncHandler)(async (req, res) => { const quizId = req.params.id; const htmlContent = await generateGuestQuizHTML(quizId); res.send(htmlContent); })); return router; } async function generateGuestQuizHTML(quizId) { return ` <!DOCTYPE html> <html> <head> <title>Guest Quiz</title> <link href="/output.css" rel="stylesheet"> <style> body { margin: 0; padding: 1rem; font-family: sans-serif; } .guest-quiz { max-width: 600px; margin: 0 auto; } .guest-header { text-align: center; margin-bottom: 2rem; } </style> </head> <body> <div class="guest-quiz"> <div class="guest-header"> <h1>Guest Quiz Mode</h1> <p>Take this quiz without registration</p> </div> <div id="quiz-container"></div> </div> <script src="/dist/quiz-guest.js"></script> <script> window.initGuestQuiz('${quizId}'); </script> </body> </html> `; }