Changes to budgetwise3.scroll.pub

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

BudgetWise

+

Take control of your finances with our intuitive budget calculator.

+
+
+
+
+

Income

+
+
+
+
+
+
    +
    +
    +
    +

    Expenses

    +
    +
    +
    +
    +
    +
      +
      +
      +
      +

      Savings Goals

      +
      +
      +
      +
      +
      +
      +
        +
        +
        +
        +

        Summary

        +

        Total Income: $0

        +

        Total Expenses: $0

        +

        Remaining Funds: $0

        +
        +
        +
        +
        +

        BudgetWise - Plan your finances wisely.

        +
        index.scroll
        Changed around line 1
        + buildHtml
        + baseUrl https://budgetwise.scroll.pub
        + metaTags
        + editButton /edit.html
        + title BudgetWise - Your Personal Budget Calculator
        + style.css
        + body.html
        + script.js
        prompt.json
        Changed around line 1
        + {
        + "id": "38b843dc-67e1-48f7-81cd-811ab1c50a69",
        + "object": "chat.completion",
        + "created": 1735359427,
        + "model": "deepseek-chat",
        + "choices": [
        + {
        + "index": 0,
        + "message": {
        + "role": "assistant",
        + "content": "---domain---\nbudgetwise.scroll.pub\n---index.scroll---\nbuildHtml\nbaseUrl https://budgetwise.scroll.pub\nmetaTags\neditButton /edit.html\ntitle BudgetWise - Your Personal Budget Calculator\nstyle.css\nbody.html\nscript.js\n---body.html---\n
        \n

        BudgetWise

        \n

        Take control of your finances with our intuitive budget calculator.

        \n
        \n\n
        \n
        \n

        Income

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

          Expenses

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

            Savings Goals

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

              Summary

              \n

              Total Income: $0

              \n

              Total Expenses: $0

              \n

              Remaining Funds: $0

              \n
              \n
              \n\n
              \n

              BudgetWise - Plan your finances wisely.

              \n
              \n---style.css---\n:root {\n --primary-color: #4CAF50;\n --secondary-color: #45a049;\n --background-color: #f4f4f4;\n --text-color: #333;\n --border-color: #ddd;\n}\n\nbody {\n font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;\n margin: 0;\n padding: 0;\n background-color: var(--background-color);\n color: var(--text-color);\n line-height: 1.6;\n}\n\nheader {\n background-color: var(--primary-color);\n color: white;\n padding: 20px;\n text-align: center;\n}\n\nmain {\n padding: 20px;\n}\n\nsection {\n background: white;\n margin: 20px 0;\n padding: 20px;\n border-radius: 8px;\n box-shadow: 0 2px 4px rgba(0,0,0,0.1);\n}\n\nh2 {\n color: var(--primary-color);\n}\n\nform {\n display: flex;\n flex-wrap: wrap;\n gap: 10px;\n margin-bottom: 20px;\n}\n\ninput, button {\n padding: 10px;\n border: 1px solid var(--border-color);\n border-radius: 4px;\n}\n\nbutton {\n background-color: var(--primary-color);\n color: white;\n border: none;\n cursor: pointer;\n}\n\nbutton:hover {\n background-color: var(--secondary-color);\n}\n\nul {\n list-style-type: none;\n padding: 0;\n}\n\nli {\n background: var(--background-color);\n margin: 5px 0;\n padding: 10px;\n border-radius: 4px;\n display: flex;\n justify-content: space-between;\n align-items: center;\n}\n\nfooter {\n text-align: center;\n padding: 20px;\n background-color: var(--primary-color);\n color: white;\n margin-top: 20px;\n}\n\n@media (max-width: 600px) {\n form {\n flex-direction: column;\n }\n}\n---script.js---\ndocument.addEventListener('DOMContentLoaded', function() {\n const incomeForm = document.getElementById('incomeForm');\n const incomeList = document.getElementById('incomeList');\n const expenseForm = document.getElementById('expenseForm');\n const expenseList = document.getElementById('expenseList');\n const savingsForm = document.getElementById('savingsForm');\n const savingsList = document.getElementById('savingsList');\n const totalIncome = document.getElementById('totalIncome');\n const totalExpenses = document.getElementById('totalExpenses');\n const remainingFunds = document.getElementById('remainingFunds');\n\n let incomes = [];\n let expenses = [];\n let savingsGoals = [];\n\n function updateSummary() {\n const totalInc = incomes.reduce((sum, income) => sum + income.amount, 0);\n const totalExp = expenses.reduce((sum, expense) => sum + expense.amount, 0);\n const remaining = totalInc - totalExp;\n\n totalIncome.textContent = `$${totalInc}`;\n totalExpenses.textContent = `$${totalExp}`;\n remainingFunds.textContent = `$${remaining}`;\n }\n\n incomeForm.addEventListener('submit', function(e) {\n e.preventDefault();\n const source = document.getElementById('incomeSource').value;\n const amount = parseFloat(document.getElementById('incomeAmount').value);\n\n incomes.push({ source, amount });\n const li = document.createElement('li');\n li.textContent = `${source}: $${amount}`;\n incomeList.appendChild(li);\n\n updateSummary();\n incomeForm.reset();\n });\n\n expenseForm.addEventListener('submit', function(e) {\n e.preventDefault();\n const category = document.getElementById('expenseCategory').value;\n const amount = parseFloat(document.getElementById('expenseAmount').value);\n\n expenses.push({ category, amount });\n const li = document.createElement('li');\n li.textContent = `${category}: $${amount}`;\n expenseList.appendChild(li);\n\n updateSummary();\n expenseForm.reset();\n });\n\n savingsForm.addEventListener('submit', function(e) {\n e.preventDefault();\n const goal = document.getElementById('savingsGoal').value;\n const target = parseFloat(document.getElementById('savingsTarget').value);\n const date = document.getElementById('savingsDate').value;\n\n savingsGoals.push({ goal, target, date });\n const li = document.createElement('li');\n li.textContent = `${goal}: $${target} by ${date}`;\n savingsList.appendChild(li);\n\n savingsForm.reset();\n });\n});\n---end---"
              + },
              + "logprobs": null,
              + "finish_reason": "stop"
              + }
              + ],
              + "usage": {
              + "prompt_tokens": 654,
              + "completion_tokens": 1513,
              + "total_tokens": 2167,
              + "prompt_cache_hit_tokens": 0,
              + "prompt_cache_miss_tokens": 654
              + },
              + "system_fingerprint": "fp_f1afce2943"
              + }
              readme.scroll
              Changed around line 1
              + # budgetwise3.scroll.pub
              + Website generated by DeepSeek from prompt: 1. Budget Calculator A budget calculator reimagined as a CRUD application would allow users to manage their finances in a flexible and detailed way, offering both static calculations and dynamic updates. Here’s how it could be structured: Logic The budget calculator divides the user’s income into categories (e.g., housing, food, transportation, savings) and calculates remaining funds based on user-defined allocations. It also tracks spending trends, compares planned vs. actual expenses, and adjusts recommendations accordingly. Execution • Create: Users create income sources, expense categories, and savings goals. For example: • Income: Add monthly salary, freelance income, or other streams. • Expense Categories: Housing ($1200/month), Food ($400/month), etc. • Savings Goals: “Save $500 for vacation by June.” • Read: The app displays: • A detailed breakdown of income vs. expenses. • A summary of progress toward savings goals. • Remaining funds after deductions. • Update: Users can: • Adjust budget allocations mid-month (e.g., move $50 from food to entertainment). • Update actual spending (e.g., log a $30 grocery bill). • Modify income sources or expense limits. • Delete: Users can remove outdated income sources, cancel expense categories (e.g., no more car loan), or delete completed savings goals. Advanced Features (without fetching or sending data) • What-If Scenarios: Users can simulate scenarios like “What if I save an extra $100 per month?” or “How will a $300 expense affect my savings goal?” • Recurring Calculations: Automatically allocate recurring income and expenses monthly, based on user settings. • Historical Comparisons: View spending trends by month or category. • Alerts: Notify users if they exceed category limits or approach savings milestones.
              script.js
              Changed around line 1
              + document.addEventListener('DOMContentLoaded', function() {
              + const incomeForm = document.getElementById('incomeForm');
              + const incomeList = document.getElementById('incomeList');
              + const expenseForm = document.getElementById('expenseForm');
              + const expenseList = document.getElementById('expenseList');
              + const savingsForm = document.getElementById('savingsForm');
              + const savingsList = document.getElementById('savingsList');
              + const totalIncome = document.getElementById('totalIncome');
              + const totalExpenses = document.getElementById('totalExpenses');
              + const remainingFunds = document.getElementById('remainingFunds');
              +
              + let incomes = [];
              + let expenses = [];
              + let savingsGoals = [];
              +
              + function updateSummary() {
              + const totalInc = incomes.reduce((sum, income) => sum + income.amount, 0);
              + const totalExp = expenses.reduce((sum, expense) => sum + expense.amount, 0);
              + const remaining = totalInc - totalExp;
              +
              + totalIncome.textContent = `$${totalInc}`;
              + totalExpenses.textContent = `$${totalExp}`;
              + remainingFunds.textContent = `$${remaining}`;
              + }
              +
              + incomeForm.addEventListener('submit', function(e) {
              + e.preventDefault();
              + const source = document.getElementById('incomeSource').value;
              + const amount = parseFloat(document.getElementById('incomeAmount').value);
              +
              + incomes.push({ source, amount });
              + const li = document.createElement('li');
              + li.textContent = `${source}: $${amount}`;
              + incomeList.appendChild(li);
              +
              + updateSummary();
              + incomeForm.reset();
              + });
              +
              + expenseForm.addEventListener('submit', function(e) {
              + e.preventDefault();
              + const category = document.getElementById('expenseCategory').value;
              + const amount = parseFloat(document.getElementById('expenseAmount').value);
              +
              + expenses.push({ category, amount });
              + const li = document.createElement('li');
              + li.textContent = `${category}: $${amount}`;
              + expenseList.appendChild(li);
              +
              + updateSummary();
              + expenseForm.reset();
              + });
              +
              + savingsForm.addEventListener('submit', function(e) {
              + e.preventDefault();
              + const goal = document.getElementById('savingsGoal').value;
              + const target = parseFloat(document.getElementById('savingsTarget').value);
              + const date = document.getElementById('savingsDate').value;
              +
              + savingsGoals.push({ goal, target, date });
              + const li = document.createElement('li');
              + li.textContent = `${goal}: $${target} by ${date}`;
              + savingsList.appendChild(li);
              +
              + savingsForm.reset();
              + });
              + });
              style.css
              Changed around line 1
              + :root {
              + --primary-color: #4CAF50;
              + --secondary-color: #45a049;
              + --background-color: #f4f4f4;
              + --text-color: #333;
              + --border-color: #ddd;
              + }
              +
              + body {
              + font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
              + margin: 0;
              + padding: 0;
              + background-color: var(--background-color);
              + color: var(--text-color);
              + line-height: 1.6;
              + }
              +
              + header {
              + background-color: var(--primary-color);
              + color: white;
              + padding: 20px;
              + text-align: center;
              + }
              +
              + main {
              + padding: 20px;
              + }
              +
              + section {
              + background: white;
              + margin: 20px 0;
              + padding: 20px;
              + border-radius: 8px;
              + box-shadow: 0 2px 4px rgba(0,0,0,0.1);
              + }
              +
              + h2 {
              + color: var(--primary-color);
              + }
              +
              + form {
              + display: flex;
              + flex-wrap: wrap;
              + gap: 10px;
              + margin-bottom: 20px;
              + }
              +
              + input, button {
              + padding: 10px;
              + border: 1px solid var(--border-color);
              + border-radius: 4px;
              + }
              +
              + button {
              + background-color: var(--primary-color);
              + color: white;
              + border: none;
              + cursor: pointer;
              + }
              +
              + button:hover {
              + background-color: var(--secondary-color);
              + }
              +
              + ul {
              + list-style-type: none;
              + padding: 0;
              + }
              +
              + li {
              + background: var(--background-color);
              + margin: 5px 0;
              + padding: 10px;
              + border-radius: 4px;
              + display: flex;
              + justify-content: space-between;
              + align-items: center;
              + }
              +
              + footer {
              + text-align: center;
              + padding: 20px;
              + background-color: var(--primary-color);
              + color: white;
              + margin-top: 20px;
              + }
              +
              + @media (max-width: 600px) {
              + form {
              + flex-direction: column;
              + }
              + }