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
JavaScript
"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 `
<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>
`;
}