|
<!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> |