commit b4882705560c2d446e9b65fb8906bb0cff91a0d5
Author: root <root@hub.scroll.pub>
Date: 2025-01-03 16:08:15 +0000
Subject: Initial commit
diff --git a/body.html b/body.html
new file mode 100644
index 0000000..06555d4
--- /dev/null
+++ b/body.html
@@ -0,0 +1,51 @@
+<header>
+ <h1>Rent or Sell?</h1>
+ <p>An Interactive Financial Model for Real Estate Decisions</p>
+</header>
+
+<main>
+ <section class="calculator">
+ <h2>Financial Calculator</h2>
+ <form id="propertyForm">
+ <div class="input-group">
+ <label for="propertyValue">Current Property Value ($):</label>
+ <input type="number" id="propertyValue" required>
+ </div>
+ <div class="input-group">
+ <label for="rentalIncome">Monthly Rental Income ($):</label>
+ <input type="number" id="rentalIncome" required>
+ </div>
+ <div class="input-group">
+ <label for="expenses">Monthly Expenses ($):</label>
+ <input type="number" id="expenses" required>
+ </div>
+ <div class="input-group">
+ <label for="years">Timeframe (Years):</label>
+ <input type="number" id="years" required>
+ </div>
+ <button type="submit">Calculate</button>
+ </form>
+ </section>
+
+ <section class="results">
+ <h2>Results</h2>
+ <div class="result-cards">
+ <div class="card">
+ <h3>Rental Profit</h3>
+ <p id="rentalProfit">-</p>
+ </div>
+ <div class="card">
+ <h3>Sale Profit</h3>
+ <p id="saleProfit">-</p>
+ </div>
+ <div class="card">
+ <h3>Recommendation</h3>
+ <p id="recommendation">-</p>
+ </div>
+ </div>
+ </section>
+</main>
+
+<footer>
+ <p>Disclaimer: This tool provides estimates only. Consult a financial advisor for professional advice.</p>
+</footer>
\ No newline at end of file
diff --git a/index.scroll b/index.scroll
new file mode 100644
index 0000000..321479a
--- /dev/null
+++ b/index.scroll
@@ -0,0 +1,8 @@
+buildHtml
+baseUrl https://rentorsell.scroll.pub
+metaTags
+editButton /edit.html
+title Rent or Sell? - Interactive Financial Model
+style.css
+body.html
+script.js
\ No newline at end of file
diff --git a/prompt.json b/prompt.json
new file mode 100644
index 0000000..bdbc199
--- /dev/null
+++ b/prompt.json
@@ -0,0 +1,25 @@
+{
+ "id": "1d0f264e-3428-4fb0-a857-7003557eb964",
+ "object": "chat.completion",
+ "created": 1735920470,
+ "model": "deepseek-chat",
+ "choices": [
+ {
+ "index": 0,
+ "message": {
+ "role": "assistant",
+ "content": "---domain---\nrentorsell.scroll.pub\n---index.scroll---\nbuildHtml\nbaseUrl https://rentorsell.scroll.pub\nmetaTags\neditButton /edit.html\ntitle Rent or Sell? - Interactive Financial Model\nstyle.css\nbody.html\nscript.js\n---body.html---\n<header>\n <h1>Rent or Sell?</h1>\n <p>An Interactive Financial Model for Real Estate Decisions</p>\n</header>\n\n<main>\n <section class=\"calculator\">\n <h2>Financial Calculator</h2>\n <form id=\"propertyForm\">\n <div class=\"input-group\">\n <label for=\"propertyValue\">Current Property Value ($):</label>\n <input type=\"number\" id=\"propertyValue\" required>\n </div>\n <div class=\"input-group\">\n <label for=\"rentalIncome\">Monthly Rental Income ($):</label>\n <input type=\"number\" id=\"rentalIncome\" required>\n </div>\n <div class=\"input-group\">\n <label for=\"expenses\">Monthly Expenses ($):</label>\n <input type=\"number\" id=\"expenses\" required>\n </div>\n <div class=\"input-group\">\n <label for=\"years\">Timeframe (Years):</label>\n <input type=\"number\" id=\"years\" required>\n </div>\n <button type=\"submit\">Calculate</button>\n </form>\n </section>\n\n <section class=\"results\">\n <h2>Results</h2>\n <div class=\"result-cards\">\n <div class=\"card\">\n <h3>Rental Profit</h3>\n <p id=\"rentalProfit\">-</p>\n </div>\n <div class=\"card\">\n <h3>Sale Profit</h3>\n <p id=\"saleProfit\">-</p>\n </div>\n <div class=\"card\">\n <h3>Recommendation</h3>\n <p id=\"recommendation\">-</p>\n </div>\n </div>\n </section>\n</main>\n\n<footer>\n <p>Disclaimer: This tool provides estimates only. Consult a financial advisor for professional advice.</p>\n</footer>\n---style.css---\n:root {\n --primary-color: #2c3e50;\n --secondary-color: #3498db;\n --accent-color: #e74c3c;\n --background-color: #f5f6fa;\n --text-color: #2c3e50;\n --card-bg: #ffffff;\n --shadow: 0 2px 10px rgba(0, 0, 0, 0.1);\n}\n\n* {\n margin: 0;\n padding: 0;\n box-sizing: border-box;\n}\n\nbody {\n font-family: 'Segoe UI', system-ui, sans-serif;\n line-height: 1.6;\n color: var(--text-color);\n background-color: var(--background-color);\n padding: 2rem;\n max-width: 1200px;\n margin: 0 auto;\n}\n\nheader {\n text-align: center;\n margin-bottom: 2rem;\n}\n\nheader h1 {\n font-size: 2.5rem;\n color: var(--primary-color);\n margin-bottom: 0.5rem;\n}\n\nheader p {\n font-size: 1.2rem;\n color: var(--secondary-color);\n}\n\n.calculator {\n background: var(--card-bg);\n padding: 2rem;\n border-radius: 10px;\n box-shadow: var(--shadow);\n margin-bottom: 2rem;\n}\n\n.input-group {\n margin-bottom: 1.5rem;\n}\n\nlabel {\n display: block;\n margin-bottom: 0.5rem;\n font-weight: 600;\n}\n\ninput {\n width: 100%;\n padding: 0.8rem;\n border: 1px solid #ddd;\n border-radius: 5px;\n font-size: 1rem;\n}\n\nbutton {\n background: var(--secondary-color);\n color: white;\n border: none;\n padding: 1rem 2rem;\n border-radius: 5px;\n font-size: 1rem;\n cursor: pointer;\n width: 100%;\n transition: background 0.3s ease;\n}\n\nbutton:hover {\n background: #2980b9;\n}\n\n.results {\n background: var(--card-bg);\n padding: 2rem;\n border-radius: 10px;\n box-shadow: var(--shadow);\n}\n\n.result-cards {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));\n gap: 1.5rem;\n margin-top: 1.5rem;\n}\n\n.card {\n background: var(--background-color);\n padding: 1.5rem;\n border-radius: 8px;\n text-align: center;\n}\n\n.card h3 {\n color: var(--primary-color);\n margin-bottom: 1rem;\n}\n\n.card p {\n font-size: 1.5rem;\n font-weight: bold;\n}\n\nfooter {\n text-align: center;\n margin-top: 2rem;\n color: #666;\n font-size: 0.9rem;\n}\n\n@media (max-width: 768px) {\n body {\n padding: 1rem;\n }\n\n header h1 {\n font-size: 2rem;\n }\n\n .result-cards {\n grid-template-columns: 1fr;\n }\n}\n---script.js---\ndocument.getElementById('propertyForm').addEventListener('submit', function(e) {\n e.preventDefault();\n \n // Get input values\n const propertyValue = parseFloat(document.getElementById('propertyValue').value);\n const rentalIncome = parseFloat(document.getElementById('rentalIncome').value);\n const expenses = parseFloat(document.getElementById('expenses').value);\n const years = parseFloat(document.getElementById('years').value);\n \n // Calculations\n const totalRentalProfit = ((rentalIncome - expenses) * 12 * years).toFixed(2);\n const saleProfit = (propertyValue * 1.03 ** years).toFixed(2); // Assuming 3% annual appreciation\n \n // Display results\n document.getElementById('rentalProfit').textContent = `$${totalRentalProfit}`;\n document.getElementById('saleProfit').textContent = `$${saleProfit}`;\n \n // Recommendation\n const recommendation = totalRentalProfit > saleProfit ? \"Continue Renting\" : \"Sell the Property\";\n document.getElementById('recommendation').textContent = recommendation;\n \n // Add visual feedback\n const resultCards = document.querySelectorAll('.card');\n resultCards.forEach(card => card.classList.add('show'));\n});\n---end---"
+ },
+ "logprobs": null,
+ "finish_reason": "stop"
+ }
+ ],
+ "usage": {
+ "prompt_tokens": 262,
+ "completion_tokens": 1474,
+ "total_tokens": 1736,
+ "prompt_cache_hit_tokens": 0,
+ "prompt_cache_miss_tokens": 262
+ },
+ "system_fingerprint": "fp_3a5770e1b4"
+}
\ No newline at end of file
diff --git a/readme.scroll b/readme.scroll
new file mode 100644
index 0000000..bb97129
--- /dev/null
+++ b/readme.scroll
@@ -0,0 +1,2 @@
+# rentorsell1.scroll.pub
+Website generated by DeepSeek from prompt: build me a website that provides an interactive financial model to help users decide if it is worth selling a real estate property or continue renting the property.
\ No newline at end of file
diff --git a/script.js b/script.js
new file mode 100644
index 0000000..41f8933
--- /dev/null
+++ b/script.js
@@ -0,0 +1,25 @@
+document.getElementById('propertyForm').addEventListener('submit', function(e) {
+ e.preventDefault();
+
+ // Get input values
+ const propertyValue = parseFloat(document.getElementById('propertyValue').value);
+ const rentalIncome = parseFloat(document.getElementById('rentalIncome').value);
+ const expenses = parseFloat(document.getElementById('expenses').value);
+ const years = parseFloat(document.getElementById('years').value);
+
+ // Calculations
+ const totalRentalProfit = ((rentalIncome - expenses) * 12 * years).toFixed(2);
+ const saleProfit = (propertyValue * 1.03 ** years).toFixed(2); // Assuming 3% annual appreciation
+
+ // Display results
+ document.getElementById('rentalProfit').textContent = `$${totalRentalProfit}`;
+ document.getElementById('saleProfit').textContent = `$${saleProfit}`;
+
+ // Recommendation
+ const recommendation = totalRentalProfit > saleProfit ? "Continue Renting" : "Sell the Property";
+ document.getElementById('recommendation').textContent = recommendation;
+
+ // Add visual feedback
+ const resultCards = document.querySelectorAll('.card');
+ resultCards.forEach(card => card.classList.add('show'));
+});
\ No newline at end of file
diff --git a/style.css b/style.css
new file mode 100644
index 0000000..8b719bc
--- /dev/null
+++ b/style.css
@@ -0,0 +1,135 @@
+:root {
+ --primary-color: #2c3e50;
+ --secondary-color: #3498db;
+ --accent-color: #e74c3c;
+ --background-color: #f5f6fa;
+ --text-color: #2c3e50;
+ --card-bg: #ffffff;
+ --shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
+}
+
+* {
+ margin: 0;
+ padding: 0;
+ box-sizing: border-box;
+}
+
+body {
+ font-family: 'Segoe UI', system-ui, sans-serif;
+ line-height: 1.6;
+ color: var(--text-color);
+ background-color: var(--background-color);
+ padding: 2rem;
+ max-width: 1200px;
+ margin: 0 auto;
+}
+
+header {
+ text-align: center;
+ margin-bottom: 2rem;
+}
+
+header h1 {
+ font-size: 2.5rem;
+ color: var(--primary-color);
+ margin-bottom: 0.5rem;
+}
+
+header p {
+ font-size: 1.2rem;
+ color: var(--secondary-color);
+}
+
+.calculator {
+ background: var(--card-bg);
+ padding: 2rem;
+ border-radius: 10px;
+ box-shadow: var(--shadow);
+ margin-bottom: 2rem;
+}
+
+.input-group {
+ margin-bottom: 1.5rem;
+}
+
+label {
+ display: block;
+ margin-bottom: 0.5rem;
+ font-weight: 600;
+}
+
+input {
+ width: 100%;
+ padding: 0.8rem;
+ border: 1px solid #ddd;
+ border-radius: 5px;
+ font-size: 1rem;
+}
+
+button {
+ background: var(--secondary-color);
+ color: white;
+ border: none;
+ padding: 1rem 2rem;
+ border-radius: 5px;
+ font-size: 1rem;
+ cursor: pointer;
+ width: 100%;
+ transition: background 0.3s ease;
+}
+
+button:hover {
+ background: #2980b9;
+}
+
+.results {
+ background: var(--card-bg);
+ padding: 2rem;
+ border-radius: 10px;
+ box-shadow: var(--shadow);
+}
+
+.result-cards {
+ display: grid;
+ grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
+ gap: 1.5rem;
+ margin-top: 1.5rem;
+}
+
+.card {
+ background: var(--background-color);
+ padding: 1.5rem;
+ border-radius: 8px;
+ text-align: center;
+}
+
+.card h3 {
+ color: var(--primary-color);
+ margin-bottom: 1rem;
+}
+
+.card p {
+ font-size: 1.5rem;
+ font-weight: bold;
+}
+
+footer {
+ text-align: center;
+ margin-top: 2rem;
+ color: #666;
+ font-size: 0.9rem;
+}
+
+@media (max-width: 768px) {
+ body {
+ padding: 1rem;
+ }
+
+ header h1 {
+ font-size: 2rem;
+ }
+
+ .result-cards {
+ grid-template-columns: 1fr;
+ }
+}
\ No newline at end of file