commit 231f2feadc5a6c561c7cd42afd5a68456979d40d
Author: root <root@hub.scroll.pub>
Date: 2025-01-05 05:35:55 +0000
Subject: Initial commit
diff --git a/body.html b/body.html
new file mode 100644
index 0000000..16fb14b
--- /dev/null
+++ b/body.html
@@ -0,0 +1,63 @@
+<header>
+ <nav>
+ <h1>Should I Drop My PhD?</h1>
+ </nav>
+</header>
+
+<main>
+ <section class="hero">
+ <h2>Let's Help You Make This Important Decision</h2>
+ <p>A structured approach to evaluate your PhD journey</p>
+ </section>
+
+ <section class="decision-tool">
+ <div class="progress-bar">
+ <div class="progress"></div>
+ </div>
+
+ <div class="question-container">
+ <div class="question current" data-weight="3">
+ <h3>How passionate are you about your research topic?</h3>
+ <div class="options">
+ <button data-value="1">Not at all</button>
+ <button data-value="2">Somewhat</button>
+ <button data-value="3">Moderately</button>
+ <button data-value="4">Very</button>
+ <button data-value="5">Extremely</button>
+ </div>
+ </div>
+
+ <div class="question" data-weight="2">
+ <h3>How is your relationship with your advisor?</h3>
+ <div class="options">
+ <button data-value="1">Very poor</button>
+ <button data-value="2">Poor</button>
+ <button data-value="3">Neutral</button>
+ <button data-value="4">Good</button>
+ <button data-value="5">Excellent</button>
+ </div>
+ </div>
+
+ <div class="question" data-weight="2">
+ <h3>Are you experiencing financial strain?</h3>
+ <div class="options">
+ <button data-value="5">None</button>
+ <button data-value="4">Little</button>
+ <button data-value="3">Moderate</button>
+ <button data-value="2">Significant</button>
+ <button data-value="1">Severe</button>
+ </div>
+ </div>
+ </div>
+
+ <div class="result hidden">
+ <h3>Your Analysis</h3>
+ <div class="result-content"></div>
+ <button class="restart-btn">Start Over</button>
+ </div>
+ </section>
+</main>
+
+<footer>
+ <p>This tool is meant to help with reflection and should not be the sole basis for your decision.</p>
+</footer>
diff --git a/index.scroll b/index.scroll
new file mode 100644
index 0000000..595da06
--- /dev/null
+++ b/index.scroll
@@ -0,0 +1,8 @@
+buildHtml
+baseUrl https://phdchoice.scroll.pub
+metaTags
+editButton /edit.html
+title Should I Drop My PhD? | PhD Decision Helper
+style.css
+body.html
+script.js
diff --git a/prompt.json b/prompt.json
new file mode 100644
index 0000000..644315d
--- /dev/null
+++ b/prompt.json
@@ -0,0 +1,20 @@
+{
+ "id": "msg_0198rGScW9G1igfHTb3VAcFF",
+ "type": "message",
+ "role": "assistant",
+ "model": "claude-3-5-sonnet-20241022",
+ "content": [
+ {
+ "type": "text",
+ "text": "I'll help create a decision-helper website for PhD students considering dropping out. For the domain, I suggest:\n\n---domain---\nphdchoice.scroll.pub\n\n---index.scroll---\nbuildHtml\nbaseUrl https://phdchoice.scroll.pub\nmetaTags\neditButton /edit.html\ntitle Should I Drop My PhD? | PhD Decision Helper\nstyle.css\nbody.html\nscript.js\n\n---body.html---\n<header>\n <nav>\n <h1>Should I Drop My PhD?</h1>\n </nav>\n</header>\n\n<main>\n <section class=\"hero\">\n <h2>Let's Help You Make This Important Decision</h2>\n <p>A structured approach to evaluate your PhD journey</p>\n </section>\n\n <section class=\"decision-tool\">\n <div class=\"progress-bar\">\n <div class=\"progress\"></div>\n </div>\n \n <div class=\"question-container\">\n <div class=\"question current\" data-weight=\"3\">\n <h3>How passionate are you about your research topic?</h3>\n <div class=\"options\">\n <button data-value=\"1\">Not at all</button>\n <button data-value=\"2\">Somewhat</button>\n <button data-value=\"3\">Moderately</button>\n <button data-value=\"4\">Very</button>\n <button data-value=\"5\">Extremely</button>\n </div>\n </div>\n\n <div class=\"question\" data-weight=\"2\">\n <h3>How is your relationship with your advisor?</h3>\n <div class=\"options\">\n <button data-value=\"1\">Very poor</button>\n <button data-value=\"2\">Poor</button>\n <button data-value=\"3\">Neutral</button>\n <button data-value=\"4\">Good</button>\n <button data-value=\"5\">Excellent</button>\n </div>\n </div>\n\n <div class=\"question\" data-weight=\"2\">\n <h3>Are you experiencing financial strain?</h3>\n <div class=\"options\">\n <button data-value=\"5\">None</button>\n <button data-value=\"4\">Little</button>\n <button data-value=\"3\">Moderate</button>\n <button data-value=\"2\">Significant</button>\n <button data-value=\"1\">Severe</button>\n </div>\n </div>\n </div>\n\n <div class=\"result hidden\">\n <h3>Your Analysis</h3>\n <div class=\"result-content\"></div>\n <button class=\"restart-btn\">Start Over</button>\n </div>\n </section>\n</main>\n\n<footer>\n <p>This tool is meant to help with reflection and should not be the sole basis for your decision.</p>\n</footer>\n\n---style.css---\n:root {\n --primary: #2a4365;\n --secondary: #4299e1;\n --accent: #90cdf4;\n --background: #f7fafc;\n --text: #2d3748;\n}\n\n* {\n margin: 0;\n padding: 0;\n box-sizing: border-box;\n}\n\nbody {\n font-family: system-ui, -apple-system, sans-serif;\n line-height: 1.6;\n color: var(--text);\n background: var(--background);\n}\n\nheader {\n background: var(--primary);\n color: white;\n padding: 1.5rem;\n box-shadow: 0 4px 6px rgba(0,0,0,0.1);\n}\n\nh1 {\n font-size: 2rem;\n font-weight: 700;\n text-align: center;\n}\n\n.hero {\n text-align: center;\n padding: 4rem 1rem;\n background: linear-gradient(135deg, var(--secondary), var(--primary));\n color: white;\n}\n\n.hero h2 {\n font-size: 2.5rem;\n margin-bottom: 1rem;\n}\n\n.decision-tool {\n max-width: 800px;\n margin: 2rem auto;\n padding: 0 1rem;\n}\n\n.progress-bar {\n height: 8px;\n background: #e2e8f0;\n border-radius: 4px;\n margin: 2rem 0;\n overflow: hidden;\n}\n\n.progress {\n height: 100%;\n width: 0;\n background: var(--secondary);\n transition: width 0.3s ease;\n}\n\n.question {\n display: none;\n animation: fadeIn 0.5s ease;\n}\n\n.question.current {\n display: block;\n}\n\n.question h3 {\n font-size: 1.5rem;\n margin-bottom: 2rem;\n color: var(--primary);\n}\n\n.options {\n display: grid;\n gap: 1rem;\n}\n\nbutton {\n padding: 1rem 2rem;\n border: none;\n border-radius: 8px;\n background: white;\n box-shadow: 0 2px 4px rgba(0,0,0,0.1);\n font-size: 1rem;\n cursor: pointer;\n transition: all 0.3s ease;\n}\n\nbutton:hover {\n transform: translateY(-2px);\n box-shadow: 0 4px 6px rgba(0,0,0,0.15);\n background: var(--accent);\n color: var(--primary);\n}\n\n.result {\n text-align: center;\n padding: 2rem;\n background: white;\n border-radius: 12px;\n box-shadow: 0 4px 6px rgba(0,0,0,0.1);\n}\n\n.hidden {\n display: none;\n}\n\n.restart-btn {\n margin-top: 2rem;\n background: var(--primary);\n color: white;\n}\n\nfooter {\n text-align: center;\n padding: 2rem;\n background: var(--primary);\n color: white;\n margin-top: 4rem;\n}\n\n@keyframes fadeIn {\n from { opacity: 0; transform: translateY(20px); }\n to { opacity: 1; transform: translateY(0); }\n}\n\n@media (max-width: 768px) {\n .hero h2 {\n font-size: 2rem;\n }\n \n .question h3 {\n font-size: 1.25rem;\n }\n \n button {\n padding: 0.75rem 1.5rem;\n }\n}\n\n---script.js---\ndocument.addEventListener('DOMContentLoaded', () => {\n const questions = document.querySelectorAll('.question');\n const progressBar = document.querySelector('.progress');\n const resultDiv = document.querySelector('.result');\n const resultContent = document.querySelector('.result-content');\n const restartBtn = document.querySelector('.restart-btn');\n \n let currentQuestion = 0;\n let scores = [];\n \n function updateProgress() {\n const progress = ((currentQuestion) / questions.length) * 100;\n progressBar.style.width = `${progress}%`;\n }\n \n function showResult() {\n const weightedSum = scores.reduce((acc, score, index) => {\n const weight = parseInt(questions[index].dataset.weight);\n return acc + (score * weight);\n }, 0);\n \n const totalWeight = Array.from(questions).reduce((acc, q) => \n acc + parseInt(q.dataset.weight), 0);\n \n const finalScore = (weightedSum / (totalWeight * 5)) * 100;\n \n let recommendation;\n if (finalScore >= 80) {\n recommendation = \"Based on your responses, you seem to be in a good position to continue your PhD. The challenges you're facing appear manageable.\";\n } else if (finalScore >= 60) {\n recommendation = \"You have some significant concerns, but they might be addressable. Consider discussing these with your advisor or department.\";\n } else {\n recommendation = \"You're facing several serious challenges. While the decision is yours, you might want to carefully evaluate if continuing serves your best interests.\";\n }\n \n questions.forEach(q => q.style.display = 'none');\n resultDiv.classList.remove('hidden');\n resultContent.innerHTML = `\n <p class=\"score\">Score: ${Math.round(finalScore)}%</p>\n <p class=\"recommendation\">${recommendation}</p>\n `;\n }\n \n document.addEventListener('click', (e) => {\n if (!e.target.matches('button[data-value]')) return;\n \n const value = parseInt(e.target.dataset.value);\n scores.push(value);\n \n if (currentQuestion < questions.length - 1) {\n questions[currentQuestion].classList.remove('current');\n currentQuestion++;\n questions[currentQuestion].classList.add('current');\n updateProgress();\n } else {\n showResult();\n }\n });\n \n restartBtn.addEventListener('click', () => {\n currentQuestion = 0;\n scores = [];\n resultDiv.classList.add('hidden');\n questions.forEach((q, i) => {\n q.style.display = i === 0 ? 'block' : 'none';\n if (i === 0) q.classList.add('current');\n });\n updateProgress();\n });\n \n updateProgress();\n});\n\n---end---\n\nThis creates a sleek, professional decision helper tool that guides users through important questions about their PhD journey. The design features smooth animations, a progress bar, and a weighted scoring system that provides nuanced recommendations. The interface is fully responsive and accessible, with clear visual hierarchy and intuitive interactions."
+ }
+ ],
+ "stop_reason": "end_turn",
+ "stop_sequence": null,
+ "usage": {
+ "input_tokens": 288,
+ "cache_creation_input_tokens": 0,
+ "cache_read_input_tokens": 0,
+ "output_tokens": 2485
+ }
+}
\ No newline at end of file
diff --git a/readme.scroll b/readme.scroll
new file mode 100644
index 0000000..d670ce8
--- /dev/null
+++ b/readme.scroll
@@ -0,0 +1,2 @@
+# phdchoice.scroll.pub
+Website generated by Claude from prompt: I want a website that will help me decide if I should drop out the ph.d
\ No newline at end of file
diff --git a/script.js b/script.js
new file mode 100644
index 0000000..d213251
--- /dev/null
+++ b/script.js
@@ -0,0 +1,72 @@
+document.addEventListener('DOMContentLoaded', () => {
+ const questions = document.querySelectorAll('.question');
+ const progressBar = document.querySelector('.progress');
+ const resultDiv = document.querySelector('.result');
+ const resultContent = document.querySelector('.result-content');
+ const restartBtn = document.querySelector('.restart-btn');
+
+ let currentQuestion = 0;
+ let scores = [];
+
+ function updateProgress() {
+ const progress = ((currentQuestion) / questions.length) * 100;
+ progressBar.style.width = `${progress}%`;
+ }
+
+ function showResult() {
+ const weightedSum = scores.reduce((acc, score, index) => {
+ const weight = parseInt(questions[index].dataset.weight);
+ return acc + (score * weight);
+ }, 0);
+
+ const totalWeight = Array.from(questions).reduce((acc, q) =>
+ acc + parseInt(q.dataset.weight), 0);
+
+ const finalScore = (weightedSum / (totalWeight * 5)) * 100;
+
+ let recommendation;
+ if (finalScore >= 80) {
+ recommendation = "Based on your responses, you seem to be in a good position to continue your PhD. The challenges you're facing appear manageable.";
+ } else if (finalScore >= 60) {
+ recommendation = "You have some significant concerns, but they might be addressable. Consider discussing these with your advisor or department.";
+ } else {
+ recommendation = "You're facing several serious challenges. While the decision is yours, you might want to carefully evaluate if continuing serves your best interests.";
+ }
+
+ questions.forEach(q => q.style.display = 'none');
+ resultDiv.classList.remove('hidden');
+ resultContent.innerHTML = `
+ <p class="score">Score: ${Math.round(finalScore)}%</p>
+ <p class="recommendation">${recommendation}</p>
+ `;
+ }
+
+ document.addEventListener('click', (e) => {
+ if (!e.target.matches('button[data-value]')) return;
+
+ const value = parseInt(e.target.dataset.value);
+ scores.push(value);
+
+ if (currentQuestion < questions.length - 1) {
+ questions[currentQuestion].classList.remove('current');
+ currentQuestion++;
+ questions[currentQuestion].classList.add('current');
+ updateProgress();
+ } else {
+ showResult();
+ }
+ });
+
+ restartBtn.addEventListener('click', () => {
+ currentQuestion = 0;
+ scores = [];
+ resultDiv.classList.add('hidden');
+ questions.forEach((q, i) => {
+ q.style.display = i === 0 ? 'block' : 'none';
+ if (i === 0) q.classList.add('current');
+ });
+ updateProgress();
+ });
+
+ updateProgress();
+});
diff --git a/style.css b/style.css
new file mode 100644
index 0000000..2435c1a
--- /dev/null
+++ b/style.css
@@ -0,0 +1,149 @@
+:root {
+ --primary: #2a4365;
+ --secondary: #4299e1;
+ --accent: #90cdf4;
+ --background: #f7fafc;
+ --text: #2d3748;
+}
+
+* {
+ margin: 0;
+ padding: 0;
+ box-sizing: border-box;
+}
+
+body {
+ font-family: system-ui, -apple-system, sans-serif;
+ line-height: 1.6;
+ color: var(--text);
+ background: var(--background);
+}
+
+header {
+ background: var(--primary);
+ color: white;
+ padding: 1.5rem;
+ box-shadow: 0 4px 6px rgba(0,0,0,0.1);
+}
+
+h1 {
+ font-size: 2rem;
+ font-weight: 700;
+ text-align: center;
+}
+
+.hero {
+ text-align: center;
+ padding: 4rem 1rem;
+ background: linear-gradient(135deg, var(--secondary), var(--primary));
+ color: white;
+}
+
+.hero h2 {
+ font-size: 2.5rem;
+ margin-bottom: 1rem;
+}
+
+.decision-tool {
+ max-width: 800px;
+ margin: 2rem auto;
+ padding: 0 1rem;
+}
+
+.progress-bar {
+ height: 8px;
+ background: #e2e8f0;
+ border-radius: 4px;
+ margin: 2rem 0;
+ overflow: hidden;
+}
+
+.progress {
+ height: 100%;
+ width: 0;
+ background: var(--secondary);
+ transition: width 0.3s ease;
+}
+
+.question {
+ display: none;
+ animation: fadeIn 0.5s ease;
+}
+
+.question.current {
+ display: block;
+}
+
+.question h3 {
+ font-size: 1.5rem;
+ margin-bottom: 2rem;
+ color: var(--primary);
+}
+
+.options {
+ display: grid;
+ gap: 1rem;
+}
+
+button {
+ padding: 1rem 2rem;
+ border: none;
+ border-radius: 8px;
+ background: white;
+ box-shadow: 0 2px 4px rgba(0,0,0,0.1);
+ font-size: 1rem;
+ cursor: pointer;
+ transition: all 0.3s ease;
+}
+
+button:hover {
+ transform: translateY(-2px);
+ box-shadow: 0 4px 6px rgba(0,0,0,0.15);
+ background: var(--accent);
+ color: var(--primary);
+}
+
+.result {
+ text-align: center;
+ padding: 2rem;
+ background: white;
+ border-radius: 12px;
+ box-shadow: 0 4px 6px rgba(0,0,0,0.1);
+}
+
+.hidden {
+ display: none;
+}
+
+.restart-btn {
+ margin-top: 2rem;
+ background: var(--primary);
+ color: white;
+}
+
+footer {
+ text-align: center;
+ padding: 2rem;
+ background: var(--primary);
+ color: white;
+ margin-top: 4rem;
+}
+
+@keyframes fadeIn {
+ from { opacity: 0; transform: translateY(20px); }
+ to { opacity: 1; transform: translateY(0); }
+}
+
+@media (max-width: 768px) {
+ .hero h2 {
+ font-size: 2rem;
+ }
+
+ .question h3 {
+ font-size: 1.25rem;
+ }
+
+ button {
+ padding: 0.75rem 1.5rem;
+ }
+}