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