Changes to phdchoice.scroll.pub

root
root
17 days ago
Initial commit
body.html
Changed around line 1
+
+
+

Should I Drop My PhD?

+
+
+
+
+
+

Let's Help You Make This Important Decision

+

A structured approach to evaluate your PhD journey

+
+
+
+
+
+
+
+
+
+

How passionate are you about your research topic?

+
+
+
+
+
+
+
+
+
+
+

How is your relationship with your advisor?

+
+
+
+
+
+
+
+
+
+
+

Are you experiencing financial strain?

+
+
+
+
+
+
+
+
+
+
+
+

Your Analysis

+
+
+
+
+
+
+
+

This tool is meant to help with reflection and should not be the sole basis for your decision.

+
index.scroll
Changed around line 1
+ 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
prompt.json
Changed around line 1
+ {
+ "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
\n \n
\n\n
\n
\n

Let's Help You Make This Important Decision

\n

A structured approach to evaluate your PhD journey

\n
\n\n
\n
\n
\n
\n \n
\n
\n

How passionate are you about your research topic?

\n
\n \n \n \n \n \n
\n
\n\n
\n

How is your relationship with your advisor?

\n
\n \n \n \n \n \n
\n
\n\n
\n

Are you experiencing financial strain?

\n
\n \n \n \n \n \n
\n
\n
\n\n
\n

Your Analysis

\n
\n \n
\n
\n
\n\n
\n

This tool is meant to help with reflection and should not be the sole basis for your decision.

\n
\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

Score: ${Math.round(finalScore)}%

\n

${recommendation}

\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
+ }
+ }
readme.scroll
Changed around line 1
+ # 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
script.js
Changed around line 1
+ 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 = `
+

Score: ${Math.round(finalScore)}%

+

${recommendation}

+ `;
+ }
+
+ 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();
+ });
style.css
Changed around line 1
+ :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;
+ }
+ }