Skip to content

Commit 1145c1c

Browse files
committed
2 parents 08d5937 + d7fc26e commit 1145c1c

44 files changed

Lines changed: 2015 additions & 277 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

README.md

Lines changed: 24 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -91,38 +91,49 @@ All expenses are stored in the device's **LocalStorage** and reflected immediate
9191

9292
---
9393

94-
### 5. **Budget & Salary Management**
94+
### 5. **Budget & Income Management**
9595

96-
The **Budget & Salary** module provides a sophisticated financial dashboard that transitions between total income tracking and granular monthly budgeting.
96+
The **Budget & Income** module provides a sophisticated financial dashboard that transitions between total income tracking and granular monthly budgeting, along with advanced filtering capabilities for deeper financial insights.
9797

9898
**Key capabilities include:**
9999

100100
* 💼 **Dynamic Financial Modes**
101-
* **Salary Tracking:** Tracks total accumulated income and overall savings rates.
101+
* **Income Tracking:** Tracks total accumulated income and overall savings rates.
102102
* **Budget Tracking:** Focuses on a specific month's limits to prevent overspending.
103103
* The system intelligently calculates metrics based on the active `viewMode`.
104104

105+
* 🔎 **Income Date Range Filtering**
106+
* Users can filter income records between a selected **start month and end month**.
107+
* Displays income analytics based only on the selected period.
108+
* Allows better financial analysis such as:
109+
110+
* Tracking income trends over time.
111+
* Reviewing earnings for specific periods.
112+
* Simplifying historical income comparisons.
105113

106114
* 📊 **Advanced Financial Analytics**
107-
* **Salary Growth:** Automatically calculates the percentage increase or decrease in income compared to the previous month.
108-
* **Savings Rate:** Real-time calculation of the percentage of income retained after expenses:
115+
* **Income Growth:** Automatically calculates the percentage increase or decrease in income compared to the previous month.
116+
* **Savings Rate:** Real-time calculation of the percentage of income retained after expenses.
109117

110118

111-
* **Daily Spending Intelligence:**
119+
* 📅 **Daily Spending Intelligence**
112120
* **Allowed/Day:** Your theoretical daily limit based on the total budget and days in the month.
113121
* **Spent/Day:** Actual average spending calculated from the day of your first expense to today.
114-
* **Suggested/Day:** A dynamic "correction" metric that tells you exactly how much you can spend for the *remaining* days to stay on target.
122+
* **Suggested/Day:** A dynamic "correction" metric that tells you exactly how much you can spend for the remaining days to stay on target.
115123

116124
* 🎨 **Visual Feedback & Progress**
117125
* **Smart Progress Bar:** A multi-state indicator that shifts colors based on your spending velocity:
118-
* 🟢 **Green to Indigo:** (Below 50%) - Safe zone.
119-
* 🟠 **Orange:** (50% - 90%) - Warning zone.
120-
* 🔴 **Red:** (Above 90%) - Critical limit/Exceeded.
126+
* 🟢 **Green to Indigo:** (Below 50%) Safe zone.
127+
* 🟠 **Orange:** (50%90%) Warning zone.
128+
* 🔴 **Red:** (Above 90%) Critical limit / Exceeded.
121129
* **Contextual Status:** Text insights (e.g., *"Excellent! Saving > 50%"* or *"⚠️ You have exceeded your limit!"*).
122130

123131
* 🛠️ **Transaction Management**
124-
* **Full CRUD Operations:** Add, edit, and delete salary/budget records.
125-
* **Validation Layer:** Integrated error handling for amounts (max limit ), required notes, and month selection.
132+
* **Full CRUD Operations:** Add, edit, and delete income/budget records.
133+
* **Validation Layer:** Integrated error handling for:
134+
* Maximum amount limits
135+
* Required notes
136+
* Month selection validation
126137
---
127138

128139
### 6. **Settings View**
@@ -134,6 +145,7 @@ Provides customization and utility options for better personalization:
134145
* 📤 **Import Data** — Upload and import expense data into the application
135146
* 🔄 **Update App** — Update the application to the latest available version
136147
* ☁️ **Data Backup** — Enable automatic or manual data backup for data safety. When enabled, a backend API runs automatically in the background to upload your data to the database.
148+
***[Help & Support](https://devnamdev2003.github.io/angular-expense-tracker/public/help.html)** — Redirects to the external help center for FAQs, guides, and customer support
137149
***Add Category** — Create custom categories for better expense organization
138150
* ✏️ **Edit Category** — Update or rename existing categories
139151
***Delete Category** — Remove unused or incorrect categories

documentation/components/CalendarComponent.html

Lines changed: 33 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -544,8 +544,8 @@ <h3 id="methods">
544544

545545
<tr>
546546
<td class="col-md-4">
547-
<div class="io-line">Defined in <a href="" data-line="345"
548-
class="link-to-prism">src/app/features/calendar/calendar.component.ts:345</a></div>
547+
<div class="io-line">Defined in <a href="" data-line="346"
548+
class="link-to-prism">src/app/features/calendar/calendar.component.ts:346</a></div>
549549
</td>
550550
</tr>
551551

@@ -658,8 +658,8 @@ <h3 id="methods">
658658

659659
<tr>
660660
<td class="col-md-4">
661-
<div class="io-line">Defined in <a href="" data-line="477"
662-
class="link-to-prism">src/app/features/calendar/calendar.component.ts:477</a></div>
661+
<div class="io-line">Defined in <a href="" data-line="478"
662+
class="link-to-prism">src/app/features/calendar/calendar.component.ts:478</a></div>
663663
</td>
664664
</tr>
665665

@@ -719,8 +719,8 @@ <h3 id="methods">
719719

720720
<tr>
721721
<td class="col-md-4">
722-
<div class="io-line">Defined in <a href="" data-line="249"
723-
class="link-to-prism">src/app/features/calendar/calendar.component.ts:249</a></div>
722+
<div class="io-line">Defined in <a href="" data-line="250"
723+
class="link-to-prism">src/app/features/calendar/calendar.component.ts:250</a></div>
724724
</td>
725725
</tr>
726726

@@ -809,8 +809,8 @@ <h3 id="methods">
809809

810810
<tr>
811811
<td class="col-md-4">
812-
<div class="io-line">Defined in <a href="" data-line="175"
813-
class="link-to-prism">src/app/features/calendar/calendar.component.ts:175</a></div>
812+
<div class="io-line">Defined in <a href="" data-line="176"
813+
class="link-to-prism">src/app/features/calendar/calendar.component.ts:176</a></div>
814814
</td>
815815
</tr>
816816

@@ -883,8 +883,8 @@ <h3 id="methods">
883883

884884
<tr>
885885
<td class="col-md-4">
886-
<div class="io-line">Defined in <a href="" data-line="365"
887-
class="link-to-prism">src/app/features/calendar/calendar.component.ts:365</a></div>
886+
<div class="io-line">Defined in <a href="" data-line="366"
887+
class="link-to-prism">src/app/features/calendar/calendar.component.ts:366</a></div>
888888
</td>
889889
</tr>
890890

@@ -922,8 +922,8 @@ <h3 id="methods">
922922

923923
<tr>
924924
<td class="col-md-4">
925-
<div class="io-line">Defined in <a href="" data-line="279"
926-
class="link-to-prism">src/app/features/calendar/calendar.component.ts:279</a></div>
925+
<div class="io-line">Defined in <a href="" data-line="280"
926+
class="link-to-prism">src/app/features/calendar/calendar.component.ts:280</a></div>
927927
</td>
928928
</tr>
929929

@@ -963,8 +963,8 @@ <h3 id="methods">
963963

964964
<tr>
965965
<td class="col-md-4">
966-
<div class="io-line">Defined in <a href="" data-line="290"
967-
class="link-to-prism">src/app/features/calendar/calendar.component.ts:290</a></div>
966+
<div class="io-line">Defined in <a href="" data-line="291"
967+
class="link-to-prism">src/app/features/calendar/calendar.component.ts:291</a></div>
968968
</td>
969969
</tr>
970970

@@ -1039,8 +1039,8 @@ <h3 id="methods">
10391039

10401040
<tr>
10411041
<td class="col-md-4">
1042-
<div class="io-line">Defined in <a href="" data-line="315"
1043-
class="link-to-prism">src/app/features/calendar/calendar.component.ts:315</a></div>
1042+
<div class="io-line">Defined in <a href="" data-line="316"
1043+
class="link-to-prism">src/app/features/calendar/calendar.component.ts:316</a></div>
10441044
</td>
10451045
</tr>
10461046

@@ -1114,8 +1114,8 @@ <h3 id="methods">
11141114

11151115
<tr>
11161116
<td class="col-md-4">
1117-
<div class="io-line">Defined in <a href="" data-line="163"
1118-
class="link-to-prism">src/app/features/calendar/calendar.component.ts:163</a></div>
1117+
<div class="io-line">Defined in <a href="" data-line="164"
1118+
class="link-to-prism">src/app/features/calendar/calendar.component.ts:164</a></div>
11191119
</td>
11201120
</tr>
11211121

@@ -1153,8 +1153,8 @@ <h3 id="methods">
11531153

11541154
<tr>
11551155
<td class="col-md-4">
1156-
<div class="io-line">Defined in <a href="" data-line="377"
1157-
class="link-to-prism">src/app/features/calendar/calendar.component.ts:377</a></div>
1156+
<div class="io-line">Defined in <a href="" data-line="378"
1157+
class="link-to-prism">src/app/features/calendar/calendar.component.ts:378</a></div>
11581158
</td>
11591159
</tr>
11601160

@@ -1230,8 +1230,8 @@ <h3 id="methods">
12301230

12311231
<tr>
12321232
<td class="col-md-4">
1233-
<div class="io-line">Defined in <a href="" data-line="264"
1234-
class="link-to-prism">src/app/features/calendar/calendar.component.ts:264</a></div>
1233+
<div class="io-line">Defined in <a href="" data-line="265"
1234+
class="link-to-prism">src/app/features/calendar/calendar.component.ts:265</a></div>
12351235
</td>
12361236
</tr>
12371237

@@ -1304,8 +1304,8 @@ <h3 id="methods">
13041304

13051305
<tr>
13061306
<td class="col-md-4">
1307-
<div class="io-line">Defined in <a href="" data-line="193"
1308-
class="link-to-prism">src/app/features/calendar/calendar.component.ts:193</a></div>
1307+
<div class="io-line">Defined in <a href="" data-line="194"
1308+
class="link-to-prism">src/app/features/calendar/calendar.component.ts:194</a></div>
13091309
</td>
13101310
</tr>
13111311

@@ -1394,8 +1394,8 @@ <h3 id="methods">
13941394

13951395
<tr>
13961396
<td class="col-md-4">
1397-
<div class="io-line">Defined in <a href="" data-line="418"
1398-
class="link-to-prism">src/app/features/calendar/calendar.component.ts:418</a></div>
1397+
<div class="io-line">Defined in <a href="" data-line="419"
1398+
class="link-to-prism">src/app/features/calendar/calendar.component.ts:419</a></div>
13991399
</td>
14001400
</tr>
14011401

@@ -1431,8 +1431,8 @@ <h3 id="methods">
14311431

14321432
<tr>
14331433
<td class="col-md-4">
1434-
<div class="io-line">Defined in <a href="" data-line="456"
1435-
class="link-to-prism">src/app/features/calendar/calendar.component.ts:456</a></div>
1434+
<div class="io-line">Defined in <a href="" data-line="457"
1435+
class="link-to-prism">src/app/features/calendar/calendar.component.ts:457</a></div>
14361436
</td>
14371437
</tr>
14381438

@@ -1476,8 +1476,8 @@ <h3 id="methods">
14761476

14771477
<tr>
14781478
<td class="col-md-4">
1479-
<div class="io-line">Defined in <a href="" data-line="322"
1480-
class="link-to-prism">src/app/features/calendar/calendar.component.ts:322</a></div>
1479+
<div class="io-line">Defined in <a href="" data-line="323"
1480+
class="link-to-prism">src/app/features/calendar/calendar.component.ts:323</a></div>
14811481
</td>
14821482
</tr>
14831483

@@ -1515,8 +1515,8 @@ <h3 id="methods">
15151515

15161516
<tr>
15171517
<td class="col-md-4">
1518-
<div class="io-line">Defined in <a href="" data-line="401"
1519-
class="link-to-prism">src/app/features/calendar/calendar.component.ts:401</a></div>
1518+
<div class="io-line">Defined in <a href="" data-line="402"
1519+
class="link-to-prism">src/app/features/calendar/calendar.component.ts:402</a></div>
15201520
</td>
15211521
</tr>
15221522

@@ -2605,6 +2605,7 @@ <h3 id="inputs">
26052605
}
26062606
else {
26072607
this.showBudgetRadio &#x3D; false;
2608+
this.isBudgetRadioClicked &#x3D; false;
26082609
}
26092610
}
26102611

documentation/components/FooterComponent.html

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -380,7 +380,7 @@ <h3 id="inputs">
380380
<div class="tab-pane fade " id="templateData">
381381
<pre class="line-numbers"><code class="language-html">&lt;footer
382382
class&#x3D;&quot;hidden md:block fixed bottom-0 left-0 w-full bg-[var(--color-surface)] text-center text-sm py-2 z-50 text-muted&quot;&gt;
383-
© 2025 exwise. All rights reserved. v{{appVersion}}
383+
© 2026 exwise. All rights reserved. v{{appVersion}}
384384
&lt;/footer&gt;</code></pre>
385385
</div>
386386

@@ -410,7 +410,7 @@ <h3 id="inputs">
410410
<script src="../js/libs/htmlparser.js"></script>
411411
<script src="../js/libs/deep-iterator.js"></script>
412412
<script>
413-
var COMPONENT_TEMPLATE = '<div><footer class="hidden md:block fixed bottom-0 left-0 w-full bg-[var(--color-surface)] text-center text-sm py-2 z-50 text-muted"> © 2025 exwise. All rights reserved. v{{appVersion}}</footer></div>'
413+
var COMPONENT_TEMPLATE = '<div><footer class="hidden md:block fixed bottom-0 left-0 w-full bg-[var(--color-surface)] text-center text-sm py-2 z-50 text-muted"> © 2026 exwise. All rights reserved. v{{appVersion}}</footer></div>'
414414
var COMPONENTS = [{'name': 'AddExpenseComponent', 'selector': 'app-add-expense'},{'name': 'AiComponent', 'selector': 'app-ai'},{'name': 'AppComponent', 'selector': 'app-root'},{'name': 'CalendarComponent', 'selector': 'app-calendar'},{'name': 'CategoryDropdownComponent', 'selector': 'app-category-dropdown'},{'name': 'DownloadComponentComponent', 'selector': 'app-download-component'},{'name': 'ExpenseDetailsModalComponent', 'selector': 'app-expense-details-modal'},{'name': 'ExpenseListComponent', 'selector': 'app-expense-list'},{'name': 'ExpenseWiseComponent', 'selector': 'app-expense-wise'},{'name': 'FooterComponent', 'selector': 'app-footer'},{'name': 'FormModelComponent', 'selector': 'app-form-model'},{'name': 'GlobalLoaderComponent', 'selector': 'app-global-loader'},{'name': 'GraphsComponent', 'selector': 'app-graphs'},{'name': 'HamburgerMenuComponent', 'selector': 'app-hamburger-menu'},{'name': 'HelpDashboard', 'selector': 'app-help-dashboard'},{'name': 'HomeComponent', 'selector': 'app-home'},{'name': 'InstallAppPopupComponentComponent', 'selector': 'app-install-app-popup-component'},{'name': 'ListExpensesComponent', 'selector': 'app-list-expenses'},{'name': 'MusicComponent', 'selector': 'app-music'},{'name': 'NavbarComponent', 'selector': 'app-navbar'},{'name': 'PieChartComponent', 'selector': 'app-pie-chart'},{'name': 'PlaylistMusicComponent', 'selector': 'app-playlist-music'},{'name': 'SalaryComponent', 'selector': 'app-salary'},{'name': 'SearchButtonComponent', 'selector': 'app-search-button'},{'name': 'SearchMusicComponent', 'selector': 'app-search-music'},{'name': 'SettingItemComponent', 'selector': 'app-setting-item'},{'name': 'SettingsComponent', 'selector': 'app-settings'},{'name': 'SidebarComponent', 'selector': 'app-sidebar'},{'name': 'SplashScreenComponent', 'selector': 'app-splash-screen'},{'name': 'TemplatePlaygroundComponent', 'selector': 'template-playground-root'},{'name': 'ToastComponent', 'selector': 'app-toast'}];
415415
var DIRECTIVES = [];
416416
var ACTUAL_COMPONENT = {'name': 'FooterComponent'};

documentation/components/NavbarComponent.html

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -543,7 +543,7 @@ <h3 id="inputs">
543543
settings: &#x27;Settings&#x27;,
544544
expenses: &#x27;Expenses&#x27;,
545545
ai: &#x27;AI Analysis&#x27;,
546-
salary: &#x27;Salary&#x27;,
546+
salary: &#x27;Financial Dashboard&#x27;,
547547
calendar: &#x27;Calender&#x27;,
548548
list: &#x27;List&#x27;,
549549
add: &#x27;Add Expense&#x27;
@@ -649,7 +649,7 @@ <h3 id="inputs">
649649
settings: &#x27;Settings&#x27;,
650650
expenses: &#x27;Expenses&#x27;,
651651
ai: &#x27;AI Analysis&#x27;,
652-
salary: &#x27;Salary&#x27;,
652+
salary: &#x27;Financial Dashboard&#x27;,
653653
calendar: &#x27;Calender&#x27;,
654654
list: &#x27;List&#x27;,
655655
add: &#x27;Add Expense&#x27;

0 commit comments

Comments
 (0)