You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
FinTrack Pro is a feature-rich, single-page personal finance tracker with stunning glassmorphism design, animated charts, budget tracking, savings goals, multi-currency support, and a financial health score โ all running entirely in the browser with zero backend.
flowchart TD
A([๐ App Start]) --> B[Load LocalStorage]
B --> C{First Visit?}
C -->|Yes| D[Load Sample Data]
C -->|No| E[Load Saved Data]
D & E --> F[Apply Theme & Profile]
F --> G[Render Dashboard]
G --> H{User Action}
H -->|Add Transaction| I[Fill Form]
I --> J{Valid Input?}
J -->|No| K[โ Show Error Toast]
K --> I
J -->|Yes| L[Convert to USD & Save]
L --> M{Type?}
M -->|Income| N[๐ Confetti Animation]
M -->|Expense| O{Budget Exceeded?}
O -->|Yes| P[โ ๏ธ Show Alert Toast]
O -->|No| Q[โ Success Toast]
N & P & Q --> R[Update All UI]
H -->|Change Currency| S[Convert All Amounts]
S --> R
H -->|Set Budget| T[Save Budget Limit]
T --> U[Check vs Current Spend]
U --> V[Render Progress Bar]
H -->|Create Goal| W[Save Goal Data]
W --> X[Render Goal Card]
X --> Y{Fund Goal?}
Y -->|Yes| Z[Add Funds to Goal]
Z --> AA{Goal Reached?}
AA -->|Yes| AB[๐ Confetti + Toast]
AA -->|No| AC[Update Progress]
H -->|View Analytics| AD[Render 4 Charts]
AD --> AE[Cash Flow Bar]
AD --> AF[Category Donut]
AD --> AG[Monthly Trend]
AD --> AH[Spending Heatmap]
H -->|Export CSV| AI[Generate CSV File]
AI --> AJ[๐ฅ Download]
H -->|Toggle Theme| AK[Dark โ Light]
AK --> AL[Re-render Charts]
R --> H
style A fill:#6c63ff,color:#fff,stroke:#a78bfa
style D fill:#f59e0b,color:#fff,stroke:#fbbf24
style L fill:#10d9a8,color:#fff,stroke:#34d399
style N fill:#10d9a8,color:#fff,stroke:#34d399
style P fill:#f0415a,color:#fff,stroke:#fb7185
style AB fill:#6c63ff,color:#fff,stroke:#a78bfa
style AJ fill:#3b82f6,color:#fff,stroke:#60a5fa
Loading
๐ฐ Transaction Flow
sequenceDiagram
actor U as ๐ค User
participant F as ๐ Form
participant V as โ Validator
participant E as โ๏ธ Engine
participant S as ๐พ Storage
participant UI as ๐ฅ๏ธ UI
U->>F: Enter transaction details
F->>V: Submit form
V-->>F: Invalid? Show error
V->>E: Valid โ Process
E->>E: Convert amount to USD
E->>E: Parse tags & notes
E->>S: Save to LocalStorage
E->>UI: Update summary cards
E->>UI: Animate counter numbers
E->>UI: Add to transaction list
E->>UI: Update sparklines
E->>UI: Update health score
E->>UI: Check budget limits
alt Income transaction
E->>UI: ๐ Launch confetti
end
alt Budget exceeded
E->>UI: โ ๏ธ Budget alert toast
end
UI-->>U: Show success toast
Loading
๐ฏ Budget Alert System
flowchart LR
A[New Expense Added] --> B[Find Category Budget]
B --> C{Budget Set?}
C -->|No| D[Skip check]
C -->|Yes| E[Sum Month Expenses]
E --> F{Percentage?}
F -->|0โ79%| G[๐ข Green Bar\nAll good]
F -->|80โ99%| H[๐ก Yellow Bar\nโก Warning Toast]
F -->|100%+| I[๐ด Red Bar\n๐จ Over Budget!\nDanger animation]
style G fill:#10d9a8,color:#fff,stroke:none
style H fill:#f59e0b,color:#fff,stroke:none
style I fill:#f0415a,color:#fff,stroke:none
Loading
๐ Financial Health Score
flowchart TD
HS([Financial Health Score\n0โ100]) --> A
HS --> B
HS --> C
HS --> D
HS --> E
A[๐ Savings Rate\n+30 pts max] --> A1[">30% saved โ 30 pts"]
B[๐ Expense Ratio\n+25 pts] --> B1["<70% of income โ 25 pts"]
C[๐ Activity\n+20 pts] --> C1[">5 transactions โ 20 pts"]
D[๐ฏ Has Budgets\n+15 pts] --> D1["Any budget set โ 15 pts"]
E[๐ Has Goals\n+10 pts] --> E1["Any goal created โ 10 pts"]
style HS fill:#6c63ff,color:#fff,stroke:#a78bfa,stroke-width:3px
style A fill:#10d9a8,color:#fff,stroke:none
style B fill:#3b82f6,color:#fff,stroke:none
style C fill:#f59e0b,color:#fff,stroke:none
style D fill:#a78bfa,color:#fff,stroke:none
style E fill:#f0415a,color:#fff,stroke:none
Loading
Score
Rating
Color
Meaning
80โ100
๐ Excellent
๐ข #10d9a8
Finances in great shape
60โ79
๐ Good
๐ต #6c63ff
On the right track
40โ59
โก Fair
๐ก #f59e0b
Some areas need attention
1โ39
๐ Needs Work
๐ด #f0415a
Start tracking & budgeting
๐งญ Navigation Flow
stateDiagram-v2
[*] --> Dashboard
Dashboard --> Transactions : View All โ
Dashboard --> Transactions : Search
Dashboard --> Settings : Profile Button
Transactions --> Dashboard : Nav
Transactions --> Analytics : Nav
Transactions --> Budget : Nav
Transactions --> Goals : Nav
Budget --> Dashboard : Nav
Goals --> Dashboard : Nav
Analytics --> Dashboard : Nav
Settings --> Dashboard : Nav
Dashboard --> Dashboard : Add Transaction
Budget --> Budget : Set Budget
Goals --> Goals : Create Goal
Goals --> Goals : Fund Goal
note right of Dashboard
Summary Cards
Add Transaction Form
Recent Transactions
Today's Snapshot
end note
note right of Analytics
Cash Flow Chart
Category Donut
Monthly Trend
Spending Heatmap
end note
Loading
๐ฑ Multi-Currency Engine
flowchart LR
INP["User Input\ne.g. โน500"] --> A[Detect active currency INR]
A --> B["Convert to USD\nโน500 รท 83.5 = $5.99"]
B --> C[("๐พ Store in USD\n$5.99")]
C --> D[User switches to EUR]
D --> E["Display: $5.99 ร 0.92 = โฌ5.51"]
style C fill:#6c63ff,color:#fff,stroke:#a78bfa
Loading
Currency
Flag
Symbol
Rate (vs USD)
US Dollar
๐บ๐ธ
$
1.0000
Euro
๐ช๐บ
โฌ
0.9200
British Pound
๐ฌ๐ง
ยฃ
0.7900
Indian Rupee
๐ฎ๐ณ
โน
83.500
Japanese Yen
๐ฏ๐ต
ยฅ
157.80
Note: All amounts stored internally in USD. Display values converted on-the-fly.
๐ฅ๏ธ Tech Stack
graph TD
subgraph Frontend ["๐ฅ๏ธ Frontend (Browser-Only)"]
H[HTML5\nSemantic Structure]
C[CSS3\nGlassmorphism + Animations]
J[JavaScript ES6+\nAll App Logic]
end
subgraph Libraries ["๐ฆ Libraries"]
CJ[Chart.js 4.4\nBar, Line, Donut Charts]
GF[Google Fonts\nInter + Space Grotesk\n+ JetBrains Mono]
end
subgraph Storage ["๐พ Data Layer"]
LS[LocalStorage API\nAll data persisted]
end
subgraph Output ["๐ค Output"]
CSV[CSV Export\nDownload file]
PDF[Print / PDF\nBrowser print]
end
H --> C --> J
J --> CJ
J --> LS
J --> CSV
H --> GF
style Frontend fill:#6c63ff22,stroke:#6c63ff
style Libraries fill:#10d9a822,stroke:#10d9a8
style Storage fill:#f59e0b22,stroke:#f59e0b
style Output fill:#f0415a22,stroke:#f0415a