Skip to content

Commit 50562be

Browse files
author
devnamdev2003
committed
update
1 parent 0c92caa commit 50562be

2 files changed

Lines changed: 55 additions & 3 deletions

File tree

assets/js/homeSection.js

Lines changed: 39 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,49 @@
11
import { ExpenseService } from './localStorage/expenseLocal.js';
22
import { CategoryService } from './localStorage/categoryLocal.js';
3+
import { BudgetService } from './localStorage/budgetLocal.js';
34

45
let charts = {};
56

67
function loadDashboardData() {
8+
const expenses = ExpenseService.getAll();
9+
const categories = CategoryService.getAll();
10+
11+
// Budget Section
12+
const budgets = BudgetService.getAll();
13+
const budgetSection = document.getElementById("budgetSection");
14+
const budgetBar = document.getElementById("budgetProgressBar");
15+
const budgetText = document.getElementById("budgetStatusText");
16+
17+
if (budgets.length > 0) {
18+
const latestBudget = budgets[budgets.length - 1];
19+
const totalBudget = parseFloat(latestBudget.amount);
20+
const fromDate = new Date(latestBudget.fromDate);
21+
const toDate = new Date(latestBudget.toDate);
22+
23+
const expensesInBudgetRange = expenses.filter(exp => {
24+
const expDate = new Date(exp.date);
25+
return expDate >= fromDate && expDate <= toDate;
26+
});
27+
28+
const spent = expensesInBudgetRange.reduce((acc, curr) => acc + parseFloat(curr.amount), 0);
29+
const percentage = Math.min(((spent / totalBudget) * 100), 100).toFixed(1);
30+
31+
budgetBar.style.width = `${percentage}%`;
32+
budgetBar.innerText = `${percentage}%`;
33+
34+
budgetText.innerText = `You have spent ₹${spent.toFixed(2)} out of ₹${totalBudget.toFixed(2)} between ${latestBudget.fromDate} and ${latestBudget.toDate}.`;
35+
36+
// ✅ Show the section
37+
budgetSection.classList.remove("hidden");
38+
39+
} else {
40+
// ❌ Hide the section
41+
budgetSection.classList.add("hidden");
42+
}
43+
44+
745
try {
8-
const expenses = ExpenseService.getAll();
9-
const categories = CategoryService.getAll();
46+
1047
const categoryMap = {};
1148
categories.forEach((cat) => {
1249
categoryMap[cat.category_id] = cat.name;

index.html

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -117,13 +117,26 @@ <h1 class="text-lg font-semibold">Expense Tracker</h1>
117117
<main class="flex-1 p-6 overflow-y-auto w-full h-full">
118118
<!-- 🏠 Home Section -->
119119
<section id="home" class="section grid grid-cols-1 md:grid-cols-2 gap-4">
120+
<!-- 🔥 Budget Progress Section -->
121+
<div id="budgetSection" class="bg-surface p-6 rounded-lg shadow-md col-span-1 md:col-span-2 hidden">
122+
<h2 class="text-xl font-semibold mb-4">💰 Budget Progress</h2>
123+
<div class="w-full bg-gray-200 dark:bg-gray-700 rounded-full h-6 overflow-hidden">
124+
<div id="budgetProgressBar"
125+
class="h-full bg-[var(--color-accent)] text-white text-sm font-medium text-center leading-6 rounded-full transition-all duration-500 ease-in-out">
126+
0%
127+
</div>
128+
</div>
129+
<p id="budgetStatusText" class="mt-2 text-sm text-[var(--color-text)]"></p>
130+
</div>
131+
120132
<!-- Daily Spending -->
121133
<div class="bg-surface p-4 rounded shadow flex justify-center">
122134
<div class="w-full max-w-xl">
123135
<h2 class="text-lg font-semibold mb-2" id="today-spending-home"></h2>
124136
<canvas id="dailyChart" class="w-full h-auto"></canvas>
125137
</div>
126138
</div>
139+
127140
<!-- Last 7 Days Spending -->
128141
<div class="bg-surface p-4 rounded shadow flex flex-col">
129142
<h2 class="text-lg font-semibold mb-2 text-left" id="last-7days-spending-home"></h2>
@@ -133,6 +146,7 @@ <h2 class="text-lg font-semibold mb-2 text-left" id="last-7days-spending-home"><
133146
</div>
134147
</div>
135148
</div>
149+
136150
<!-- Category Expenses -->
137151
<div class="bg-surface p-4 rounded shadow flex flex-col">
138152
<h2 class="text-lg font-semibold mb-2 text-left">💹 Category Overview</h2>
@@ -483,7 +497,8 @@ <h2 class="text-lg font-semibold">Set Budget</h2>
483497
<p id="amountError" class="text-red-500 text-sm hidden mt-1"></p>
484498
</div>
485499

486-
<button type="submit" id="budgetModalSubmitButton" class="bg-[var(--color-accent)] text-white px-4 py-2 rounded w-full"></button>
500+
<button type="submit" id="budgetModalSubmitButton"
501+
class="bg-[var(--color-accent)] text-white px-4 py-2 rounded w-full"></button>
487502
</form>
488503
</dialog>
489504

0 commit comments

Comments
 (0)