| <!DOCTYPE html> |
| <html lang="en"> |
| <head> |
| <meta charset="UTF-8"> |
| <meta name="viewport" content="width=device-width, initial-scale=1.0"> |
| <title>Capybara Dating App - Personality Quiz</title> |
| <link href="https://fonts.googleapis.com/css2?family=Poppins:wght@300;400;600&display=swap" rel="stylesheet"> |
| <style> |
| body { |
| font-family: 'Poppins', sans-serif; |
| max-width: 800px; |
| margin: 0 auto; |
| padding: 20px; |
| background-color: #f0e6d2; |
| color: #5a3921; |
| line-height: 1.6; |
| } |
| .container { |
| background-color: #fff; |
| border-radius: 15px; |
| padding: 30px; |
| box-shadow: 0 4px 6px rgba(0,0,0,0.1); |
| } |
| h1 { |
| color: #ff6b35; |
| text-align: center; |
| font-size: 2.5em; |
| margin-bottom: 20px; |
| } |
| #question, #result { |
| font-size: 1.2em; |
| margin-bottom: 20px; |
| background-color: #fffaf0; |
| padding: 20px; |
| border-radius: 8px; |
| box-shadow: 0 2px 4px rgba(0,0,0,0.1); |
| } |
| #answer { |
| width: 100%; |
| padding: 15px; |
| margin-bottom: 20px; |
| border: 2px solid #ff6b35; |
| border-radius: 8px; |
| font-size: 1em; |
| transition: border-color 0.3s ease; |
| } |
| #answer:focus { |
| outline: none; |
| border-color: #ff4500; |
| } |
| button { |
| padding: 12px 24px; |
| font-size: 1em; |
| background-color: #ff6b35; |
| color: white; |
| border: none; |
| border-radius: 25px; |
| cursor: pointer; |
| transition: background-color 0.3s ease, transform 0.1s ease; |
| } |
| button:hover { |
| background-color: #ff4500; |
| transform: translateY(-2px); |
| } |
| button:active { |
| transform: translateY(0); |
| } |
| #history { |
| margin-top: 30px; |
| } |
| .history-item { |
| background-color: #fffaf0; |
| padding: 15px; |
| margin-bottom: 15px; |
| border-radius: 8px; |
| box-shadow: 0 2px 4px rgba(0,0,0,0.1); |
| } |
| .capybara-img { |
| max-width: 200px; |
| display: block; |
| margin: 0 auto 20px; |
| border-radius: 50%; |
| } |
| .quiz-progress { |
| text-align: center; |
| margin-bottom: 20px; |
| font-weight: 600; |
| color: #5a3921; |
| } |
| </style> |
| </head> |
| <body> |
| <div class="container"> |
| <img src="https://placekitten.com/200/200" alt="Cute Capybara" class="capybara-img"> |
| <h1>Capybara Dating App Personality Quiz</h1> |
| <div id="quiz"> |
| <div class="quiz-progress">Question <span id="current-question">1</span> of 5</div> |
| <div id="question"></div> |
| <textarea id="answer" rows="4" placeholder="Type your answer here... Be as honest as a capybara!"></textarea> |
| <button id="submit">Next Question</button> |
| </div> |
| <div id="result" style="display: none;"></div> |
| <div id="history"></div> |
| </div> |
|
|
| <script> |
| const API_URL = 'http://localhost:5000'; |
| let questions = []; |
| let answers = []; |
| let currentQuestion = ''; |
| |
| async function getNextQuestion() { |
| const response = await fetch(`${API_URL}/generate_question`, { |
| method: 'POST', |
| headers: { |
| 'Content-Type': 'application/json', |
| }, |
| body: JSON.stringify({ previous_questions: questions, previous_answers: answers }), |
| }); |
| const data = await response.json(); |
| return data.question; |
| } |
| |
| async function classifyPersonality() { |
| const response = await fetch(`${API_URL}/classify_personality`, { |
| method: 'POST', |
| headers: { |
| 'Content-Type': 'application/json', |
| }, |
| body: JSON.stringify({ questions, answers }), |
| }); |
| const data = await response.json(); |
| return data; |
| } |
| |
| async function startQuiz() { |
| currentQuestion = await getNextQuestion(); |
| document.getElementById('question').textContent = currentQuestion; |
| } |
| |
| document.getElementById('submit').addEventListener('click', async () => { |
| const answer = document.getElementById('answer').value.trim(); |
| if (answer) { |
| questions.push(currentQuestion); |
| answers.push(answer); |
| document.getElementById('history').innerHTML += ` |
| <div class="history-item"> |
| <p><strong>Q: ${currentQuestion}</strong></p> |
| <p>A: ${answer}</p> |
| </div> |
| `; |
| document.getElementById('answer').value = ''; |
| |
| if (questions.length < 5) { |
| currentQuestion = await getNextQuestion(); |
| document.getElementById('question').textContent = currentQuestion; |
| document.getElementById('current-question').textContent = questions.length + 1; |
| } else { |
| const result = await classifyPersonality(); |
| document.getElementById('quiz').style.display = 'none'; |
| document.getElementById('result').style.display = 'block'; |
| document.getElementById('result').innerHTML = ` |
| <h2>Your Capybara Dating Personality:</h2> |
| <p>${result.personality}</p> |
| <p>Your personality summary has been saved to: ${result.summary_file}</p> |
| <button onclick="location.reload()">Take Quiz Again</button> |
| `; |
| } |
| } |
| }); |
| |
| startQuiz(); |
| </script> |
| </body> |
| </html> |