Created
June 4, 2025 11:39
-
-
Save jcasabona/29de4ff091839d0615279e25bdf82620 to your computer and use it in GitHub Desktop.
Overwhelm Diagnostic
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<!DOCTYPE html> | |
<html lang="en"> | |
<head> | |
<meta charset="UTF-8"> | |
<meta name="viewport" content="width=device-width, initial-scale=1.0"> | |
<title>The Overwhelm Diagnostic - Streamlined Solopreneur</title> | |
<style> | |
* { | |
margin: 0; | |
padding: 0; | |
box-sizing: border-box; | |
} | |
body { | |
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif; | |
line-height: 1.6; | |
background: linear-gradient(135deg, #F7F4EB 0%, #ffffff 100%); | |
min-height: 100vh; | |
} | |
.container { | |
max-width: 800px; | |
margin: 0 auto; | |
padding: 20px; | |
} | |
.header { | |
text-align: center; | |
margin-bottom: 40px; | |
padding: 40px 20px; | |
background: white; | |
border-radius: 12px; | |
box-shadow: 0 4px 20px rgba(8, 44, 69, 0.1); | |
} | |
.header h1 { | |
color: #082C45; | |
font-size: 2.5rem; | |
font-weight: 700; | |
margin-bottom: 16px; | |
} | |
.header p { | |
color: #666; | |
font-size: 1.2rem; | |
max-width: 600px; | |
margin: 0 auto; | |
} | |
.quiz-container { | |
background: white; | |
border-radius: 12px; | |
padding: 40px; | |
box-shadow: 0 4px 20px rgba(8, 44, 69, 0.1); | |
margin-bottom: 30px; | |
} | |
.question { | |
margin-bottom: 30px; | |
padding: 24px; | |
border: 2px solid #f0f0f0; | |
border-radius: 8px; | |
transition: all 0.3s ease; | |
} | |
.question.answered { | |
border-color: #F7D677; | |
background: #fffbf0; | |
} | |
.question h3 { | |
color: #082C45; | |
font-size: 1.3rem; | |
margin-bottom: 16px; | |
font-weight: 600; | |
} | |
.options { | |
display: flex; | |
flex-direction: column; | |
gap: 12px; | |
} | |
.option { | |
display: flex; | |
align-items: center; | |
padding: 16px; | |
border: 2px solid #e5e5e5; | |
border-radius: 8px; | |
cursor: pointer; | |
transition: all 0.3s ease; | |
background: white; | |
} | |
.option:hover { | |
border-color: #F7D677; | |
background: #fffbf0; | |
} | |
.option.selected { | |
border-color: #F7D677; | |
background: #F7D677; | |
color: #082C45; | |
font-weight: 600; | |
} | |
.option input[type="radio"] { | |
margin-right: 12px; | |
transform: scale(1.2); | |
} | |
.email-section { | |
background: #082C45; | |
color: white; | |
padding: 40px; | |
border-radius: 12px; | |
text-align: center; | |
margin-top: 30px; | |
} | |
.email-section h2 { | |
font-size: 2rem; | |
margin-bottom: 16px; | |
color: #F7D677; | |
} | |
.email-section p { | |
font-size: 1.1rem; | |
margin-bottom: 24px; | |
opacity: 0.9; | |
} | |
.email-form { | |
display: flex; | |
gap: 12px; | |
max-width: 400px; | |
margin: 0 auto; | |
flex-wrap: wrap; | |
} | |
.email-form input[type="email"] { | |
flex: 1; | |
min-width: 250px; | |
padding: 16px; | |
border: none; | |
border-radius: 8px; | |
font-size: 1rem; | |
} | |
.btn { | |
background: #F7D677; | |
color: #082C45; | |
padding: 16px 24px; | |
border: none; | |
border-radius: 8px; | |
font-size: 1rem; | |
font-weight: 600; | |
cursor: pointer; | |
transition: all 0.3s ease; | |
white-space: nowrap; | |
} | |
.btn:hover { | |
background: #f5d155; | |
transform: translateY(-2px); | |
} | |
.btn:disabled { | |
background: #ccc; | |
cursor: not-allowed; | |
transform: none; | |
} | |
.progress-bar { | |
width: 100%; | |
height: 8px; | |
background: #e5e5e5; | |
border-radius: 4px; | |
margin-bottom: 30px; | |
overflow: hidden; | |
} | |
.progress-fill { | |
height: 100%; | |
background: linear-gradient(90deg, #F7D677, #f5d155); | |
width: 0%; | |
transition: width 0.5s ease; | |
} | |
.results { | |
display: none; | |
background: white; | |
border-radius: 12px; | |
padding: 40px; | |
box-shadow: 0 4px 20px rgba(8, 44, 69, 0.1); | |
text-align: center; | |
} | |
.results h2 { | |
color: #082C45; | |
font-size: 2.5rem; | |
margin-bottom: 20px; | |
} | |
.results .score { | |
font-size: 4rem; | |
font-weight: 700; | |
color: #F7D677; | |
margin-bottom: 20px; | |
} | |
.results .category { | |
font-size: 1.8rem; | |
font-weight: 600; | |
color: #082C45; | |
margin-bottom: 30px; | |
} | |
.results .description { | |
font-size: 1.2rem; | |
color: #666; | |
margin-bottom: 30px; | |
max-width: 600px; | |
margin-left: auto; | |
margin-right: auto; | |
} | |
@media (max-width: 768px) { | |
.header h1 { | |
font-size: 2rem; | |
} | |
.header p { | |
font-size: 1rem; | |
} | |
.quiz-container { | |
padding: 24px; | |
} | |
.question { | |
padding: 16px; | |
} | |
.email-form { | |
flex-direction: column; | |
} | |
.email-form input[type="email"] { | |
min-width: auto; | |
} | |
} | |
</style> | |
</head> | |
<body> | |
<div class="container"> | |
<div class="header"> | |
<h1>The Overwhelm Diagnostic</h1> | |
<p>Discover what's causing your business chaos in just 3 minutes</p> | |
</div> | |
<div class="progress-bar"> | |
<div class="progress-fill" id="progressFill"></div> | |
</div> | |
<form id="diagnosticQuiz" class="quiz-container"> | |
<div class="question" data-category="time"> | |
<h3>1. How often do you work past your intended hours?</h3> | |
<div class="options"> | |
<label class="option"> | |
<input type="radio" name="q1" value="3"> | |
<span>Daily - I can never seem to "turn off"</span> | |
</label> | |
<label class="option"> | |
<input type="radio" name="q1" value="2"> | |
<span>2-3 times per week - when things get busy</span> | |
</label> | |
<label class="option"> | |
<input type="radio" name="q1" value="1"> | |
<span>Occasionally - only during crunch periods</span> | |
</label> | |
<label class="option"> | |
<input type="radio" name="q1" value="0"> | |
<span>Rarely - I maintain good boundaries</span> | |
</label> | |
</div> | |
</div> | |
<div class="question" data-category="delegation"> | |
<h3>2. When you try to delegate tasks, what usually happens?</h3> | |
<div class="options"> | |
<label class="option"> | |
<input type="radio" name="q2" value="3"> | |
<span>It comes back wrong and I have to redo it</span> | |
</label> | |
<label class="option"> | |
<input type="radio" name="q2" value="2"> | |
<span>It takes longer to explain than to do myself</span> | |
</label> | |
<label class="option"> | |
<input type="radio" name="q2" value="1"> | |
<span>It works sometimes, but inconsistently</span> | |
</label> | |
<label class="option"> | |
<input type="radio" name="q2" value="0"> | |
<span>It works well - I have clear processes</span> | |
</label> | |
</div> | |
</div> | |
<div class="question" data-category="processes"> | |
<h3>3. How are your business processes documented?</h3> | |
<div class="options"> | |
<label class="option"> | |
<input type="radio" name="q3" value="3"> | |
<span>What documentation? It's all in my head</span> | |
</label> | |
<label class="option"> | |
<input type="radio" name="q3" value="2"> | |
<span>Random notes scattered across different tools</span> | |
</label> | |
<label class="option"> | |
<input type="radio" name="q3" value="1"> | |
<span>Some documented, but often outdated</span> | |
</label> | |
<label class="option"> | |
<input type="radio" name="q3" value="0"> | |
<span>Well-documented and regularly updated</span> | |
</label> | |
</div> | |
</div> | |
<div class="question" data-category="automation"> | |
<h3>4. How much of your routine work is automated?</h3> | |
<div class="options"> | |
<label class="option"> | |
<input type="radio" name="q4" value="3"> | |
<span>Almost nothing - I do everything manually</span> | |
</label> | |
<label class="option"> | |
<input type="radio" name="q4" value="2"> | |
<span>A few things, but mostly manual processes</span> | |
</label> | |
<label class="option"> | |
<input type="radio" name="q4" value="1"> | |
<span>Some automation, but could be much better</span> | |
</label> | |
<label class="option"> | |
<input type="radio" name="q4" value="0"> | |
<span>Most routine tasks run automatically</span> | |
</label> | |
</div> | |
</div> | |
<div class="question" data-category="focus"> | |
<h3>5. How often does "urgent" work interrupt your planned tasks?</h3> | |
<div class="options"> | |
<label class="option"> | |
<input type="radio" name="q5" value="3"> | |
<span>Constantly - I'm always putting out fires</span> | |
</label> | |
<label class="option"> | |
<input type="radio" name="q5" value="2"> | |
<span>Daily - something always comes up</span> | |
</label> | |
<label class="option"> | |
<input type="radio" name="q5" value="1"> | |
<span>Weekly - manageable but disruptive</span> | |
</label> | |
<label class="option"> | |
<input type="radio" name="q5" value="0"> | |
<span>Rarely - I work proactively, not reactively</span> | |
</label> | |
</div> | |
</div> | |
<div class="question" data-category="revenue"> | |
<h3>6. If you took a 2-week vacation, what would happen to your revenue?</h3> | |
<div class="options"> | |
<label class="option"> | |
<input type="radio" name="q6" value="3"> | |
<span>It would stop completely</span> | |
</label> | |
<label class="option"> | |
<input type="radio" name="q6" value="2"> | |
<span>It would drop significantly</span> | |
</label> | |
<label class="option"> | |
<input type="radio" name="q6" value="1"> | |
<span>Some impact, but not catastrophic</span> | |
</label> | |
<label class="option"> | |
<input type="radio" name="q6" value="0"> | |
<span>Business would continue running smoothly</span> | |
</label> | |
</div> | |
</div> | |
</form> | |
<div id="results" class="results"> | |
<div class="score" id="scoreDisplay">0</div> | |
<div class="category" id="categoryDisplay"></div> | |
<div class="description" id="descriptionDisplay"></div> | |
</div> | |
<div class="email-section"> | |
<h2>Get Your Complete Overwhelm Analysis</h2> | |
<p>Enter your email to receive your detailed results plus a custom action plan to fix your biggest bottleneck.</p> | |
<form class="email-form" id="emailForm"> | |
<input type="email" id="emailInput" placeholder="[email protected]" required> | |
<button type="submit" class="btn" id="submitBtn" disabled>Get My Results</button> | |
</form> | |
</div> | |
</div> | |
<script> | |
const quiz = document.getElementById('diagnosticQuiz'); | |
const progressFill = document.getElementById('progressFill'); | |
const results = document.getElementById('results'); | |
const scoreDisplay = document.getElementById('scoreDisplay'); | |
const categoryDisplay = document.getElementById('categoryDisplay'); | |
const descriptionDisplay = document.getElementById('descriptionDisplay'); | |
const emailForm = document.getElementById('emailForm'); | |
const emailInput = document.getElementById('emailInput'); | |
const submitBtn = document.getElementById('submitBtn'); | |
const totalQuestions = 6; | |
let answeredQuestions = 0; | |
let totalScore = 0; | |
const categories = { | |
0: { | |
title: "Systems Superstar", | |
description: "Congratulations! You've built a well-oiled business machine. Your systems are working, and you have the freedom to focus on growth and strategic work. Keep optimizing!" | |
}, | |
1: { | |
title: "Smooth Operator", | |
description: "You're on the right track with good systems in most areas. A few tweaks and optimizations could save you several hours per week and reduce the occasional stress." | |
}, | |
2: { | |
title: "Struggling Systematically", | |
description: "You're feeling the pain of missing systems. You're working harder than you need to, and some key processes need immediate attention to prevent burnout." | |
}, | |
3: { | |
title: "Chaos Commander", | |
description: "You're drowning in operational chaos. Every day feels like crisis management, and you're trapped in the day-to-day instead of growing your business. You need systems immediately." | |
} | |
}; | |
// Handle answer selection | |
quiz.addEventListener('change', function(e) { | |
if (e.target.type === 'radio') { | |
const question = e.target.closest('.question'); | |
question.classList.add('answered'); | |
// Update progress | |
answeredQuestions = quiz.querySelectorAll('.question.answered').length; | |
const progress = (answeredQuestions / totalQuestions) * 100; | |
progressFill.style.width = progress + '%'; | |
// Calculate score | |
calculateScore(); | |
// Enable email submission if all questions answered | |
if (answeredQuestions === totalQuestions) { | |
submitBtn.disabled = false; | |
showResults(); | |
} | |
} | |
}); | |
// Handle option click | |
quiz.addEventListener('click', function(e) { | |
if (e.target.classList.contains('option') || e.target.closest('.option')) { | |
const option = e.target.closest('.option'); | |
const radio = option.querySelector('input[type="radio"]'); | |
// Remove selected class from siblings | |
option.parentNode.querySelectorAll('.option').forEach(opt => { | |
opt.classList.remove('selected'); | |
}); | |
// Add selected class and check radio | |
option.classList.add('selected'); | |
radio.checked = true; | |
// Trigger change event | |
radio.dispatchEvent(new Event('change', { bubbles: true })); | |
} | |
}); | |
function calculateScore() { | |
totalScore = 0; | |
const formData = new FormData(quiz); | |
for (let i = 1; i <= totalQuestions; i++) { | |
const value = formData.get(`q${i}`); | |
if (value) { | |
totalScore += parseInt(value); | |
} | |
} | |
} | |
function showResults() { | |
const averageScore = Math.round(totalScore / totalQuestions); | |
const category = categories[averageScore]; | |
scoreDisplay.textContent = `${totalScore}/${totalQuestions * 3}`; | |
categoryDisplay.textContent = category.title; | |
descriptionDisplay.textContent = category.description; | |
results.style.display = 'block'; | |
results.scrollIntoView({ behavior: 'smooth' }); | |
} | |
// Handle email form submission | |
emailForm.addEventListener('submit', function(e) { | |
e.preventDefault(); | |
const email = emailInput.value; | |
if (email && answeredQuestions === totalQuestions) { | |
// Store results in memory for follow-up | |
const resultsData = { | |
email: email, | |
score: totalScore, | |
maxScore: totalQuestions * 3, | |
category: categories[Math.round(totalScore / totalQuestions)].title, | |
timestamp: new Date().toISOString() | |
}; | |
// In a real implementation, you'd send this to your email service | |
console.log('Results data:', resultsData); | |
// Show success message | |
submitBtn.textContent = 'Results Sent!'; | |
submitBtn.style.background = '#28a745'; | |
// Redirect or show next steps after a delay | |
setTimeout(() => { | |
alert('Check your email for your complete overwhelm analysis and action plan!'); | |
}, 1000); | |
} | |
}); | |
</script> | |
</body> | |
</html> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment