Skip to content

Prem759-0/Fintack

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

6 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

FinTrack Pro

๐Ÿ’Ž FinTrack Pro

Ultra-Premium Personal Finance Tracker


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.


Live Demo Documentation


๐ŸŽจ Color Palette & Design System

Token Color Hex Usage
๐ŸŸฃ Accent #6c63ff #6c63ff Primary brand, buttons, highlights
๐ŸŸข Income #10d9a8 #10d9a8 Income amounts, positive values
๐Ÿ”ด Expense #f0415a #f0415a Expense amounts, warnings
๐ŸŸก Savings #f59e0b #f59e0b Savings rate, goals progress
๐Ÿ”ต Accent 2 #a78bfa #a78bfa Gradients, secondary accents
โฌ› Dark BG #060912 #060912 Dark mode base background
โฌœ Surface #0c1020 #0c1020 Dark mode sidebar/cards
๐Ÿค Light BG #f5f7ff #f5f7ff Light mode base background

โœจ Features Overview

๐Ÿ“Š Core Finance

  • โœ… Add Income & Expense transactions
  • โœ… Real-time Balance, Income, Expense summary
  • โœ… Savings Rate with animated progress bar
  • โœ… Financial Health Score (0โ€“100)
  • โœ… Today's Snapshot (daily income/spend)
  • โœ… 7-day micro bar chart

๐ŸŽฏ Advanced Features

  • โœ… Monthly Budget Tracker with alerts
  • โœ… Savings Goals with emoji & funding
  • โœ… Multi-currency (USD, EUR, GBP, INR, JPY)
  • โœ… Transaction Tags (#work, #monthly)
  • โœ… Recurring Transactions toggle
  • โœ… CSV Export one-click

๐Ÿ“ˆ Analytics & Charts

  • โœ… Cash Flow Bar Chart (7/30/90 days)
  • โœ… Expense Donut Chart by category
  • โœ… Income vs Expense Trend line chart
  • โœ… Spending Heatmap (12 weeks)
  • โœ… Sparkline mini-charts on cards
  • โœ… Analytics Stats Row

๐ŸŽจ UI & UX

  • โœ… Dark & Light mode with saved preference
  • โœ… 6 Accent Color Picker
  • โœ… Animated floating orb background
  • โœ… Glassmorphism cards with shimmer
  • โœ… Confetti animation on income/goals
  • โœ… Notifications Panel with bell icon
  • โœ… FAB floating action button menu
  • โœ… Keyboard shortcut Ctrl+K

๐Ÿ—๏ธ Application Architecture

FinTrack Pro/
โ”‚
โ”œโ”€โ”€ ๐Ÿ“„ index.html          # Single-page app structure
โ”‚   โ”œโ”€โ”€ ๐Ÿ”ท Sidebar          # Navigation + stats + theme toggle
โ”‚   โ”œโ”€โ”€ ๐Ÿ”ท Topbar           # Search, currency, notifications, profile
โ”‚   โ”œโ”€โ”€ ๐Ÿ”ท Section: Dashboard    # Cards, add form, recent list
โ”‚   โ”œโ”€โ”€ ๐Ÿ”ท Section: Transactions # Filter, sort, search, full list
โ”‚   โ”œโ”€โ”€ ๐Ÿ”ท Section: Budgets      # Budget form + progress bars
โ”‚   โ”œโ”€โ”€ ๐Ÿ”ท Section: Goals        # Goal form + goal cards
โ”‚   โ”œโ”€โ”€ ๐Ÿ”ท Section: Analytics    # 4 charts + heatmap
โ”‚   โ”œโ”€โ”€ ๐Ÿ”ท Section: Settings     # Profile, theme, accent, data
โ”‚   โ”œโ”€โ”€ ๐Ÿ”ท FAB Menu         # Floating action button
โ”‚   โ”œโ”€โ”€ ๐Ÿ”ท Modal            # Confirm dialog
โ”‚   โ””โ”€โ”€ ๐Ÿ”ท Toast            # Notifications
โ”‚
โ”œโ”€โ”€ ๐ŸŽจ style.css           # Full design system (1400+ lines)
โ”‚   โ”œโ”€โ”€ CSS Variables       # Design tokens
โ”‚   โ”œโ”€โ”€ Animated BG         # Orbs + grid
โ”‚   โ”œโ”€โ”€ Sidebar             # Navigation styles
โ”‚   โ”œโ”€โ”€ Cards               # Glassmorphism + sparkline
โ”‚   โ”œโ”€โ”€ Charts              # Chart wrappers
โ”‚   โ”œโ”€โ”€ Budget/Goals        # Progress bars
โ”‚   โ””โ”€โ”€ Responsive          # Mobile breakpoints
โ”‚
โ””โ”€โ”€ โš™๏ธ app.js              # All application logic (700+ lines)
    โ”œโ”€โ”€ State Management    # Single state object S{}
    โ”œโ”€โ”€ LocalStorage        # Persist all data
    โ”œโ”€โ”€ Currency Engine     # Conversion + formatting
    โ”œโ”€โ”€ Animated Counters   # Count-up numbers
    โ”œโ”€โ”€ Charts Engine       # Chart.js wrappers
    โ”œโ”€โ”€ Health Score        # Financial scoring
    โ”œโ”€โ”€ Budget Alerts       # Over-budget detection
    โ”œโ”€โ”€ Confetti Engine     # Canvas particle animation
    โ””โ”€โ”€ Export Engine       # CSV generation

๐Ÿ”„ Application Flowchart

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
Loading

๐Ÿ—‚๏ธ Data Structure

// Transaction Object
{
  id:        "lp2x9abc",          // Unique ID
  type:      "income" | "expense",
  desc:      "Monthly Salary",    // Description
  amount:    3500,                 // Always stored in USD
  category:  "Salary",
  date:      "2026-07-05",
  notes:     "July payment",
  currency:  "INR",               // Currency when added
  tags:      ["#work","#monthly"],
  recurring: true,
  recurFreq: "monthly" | "weekly" | "yearly"
}

// Budget Object
{
  "Food": 200,        // USD limit per month
  "Transport": 100,
  "Shopping": 150
}

// Goal Object
{
  id:       "gx7k2mnp",
  name:     "Emergency Fund",
  emoji:    "๐Ÿ’ฐ",
  target:   5000,       // USD
  current:  1200,       // USD funded so far
  deadline: "2026-12-31"
}

๐Ÿ“ฑ Responsive Breakpoints

โ—€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ–ถ
 380px    540px         768px         900px         1100px      1440px
   โ”‚         โ”‚              โ”‚              โ”‚              โ”‚           โ”‚
   โ”‚ Stack   โ”‚ 2 col cards  โ”‚ Sidebar OFF  โ”‚ Single col   โ”‚ 4 cards   โ”‚
   โ”‚ all     โ”‚ 2x2 grid     โ”‚ Hamburger ON โ”‚ analytics    โ”‚ Full grid โ”‚
Breakpoint Layout Change
< 380px All cards stacked (1 column)
< 540px 2ร—2 card grid, toolbar stacks
< 768px Sidebar hidden, hamburger menu shown
< 900px Dashboard grid goes to 1 column
< 1100px Cards go to 2ร—2 grid
โ‰ฅ 1440px Full 4-column card grid

โšก Animation Catalogue

Animation Element Trigger Duration
๐ŸŒŠ Orb Float Background orbs Always 12s loop
โœจ Shimmer Stripe Card top border Always 3s loop
๐Ÿ”ข Counter Summary amounts Data change 0.9s ease
๐Ÿ“‰ Sparkline Card mini-charts Data change Instant
๐ŸŽด Section Fade Page sections Navigation 0.4s ease
๐Ÿƒ Card Lift Summary cards Hover 0.2s
๐Ÿ“‹ TX Slide Transaction items On add 0.35s + stagger
๐ŸŽฏ Progress Bar Budget/Goal bars On load 1.2s ease
๐ŸŽ‰ Confetti Canvas overlay Income added 200 frames
๐Ÿ”” Badge Pulse Budget alert Always 2s loop
๐Ÿ’ก Brand Glow Sidebar brand Always 4s loop
๐ŸŒ€ Ring Score Health score On load 0.8s
๐Ÿš€ FAB Spring FAB menu items FAB open 0.5s spring
๐Ÿ“ฆ Empty Float Empty state icon Always 3s loop
๐Ÿž Toast Notification Action 0.4s spring
๐Ÿ—” Modal Scale Confirm dialog Triggered 0.5s spring
๐Ÿ‘ค Profile Ripple Avatar ring Always 2.5s loop

๐Ÿš€ Getting Started

Option 1: Open directly in browser

# Simply open the file
index.html  โ†’  Double click or drag into browser

Option 2: Live Server (VS Code)

# Install Live Server extension in VS Code
# Right-click index.html โ†’ "Open with Live Server"
# App runs at: http://127.0.0.1:5500

Option 3: Deploy to Vercel (Free)

# 1. Go to vercel.com/new
# 2. Drag & drop the fintack/ folder
# 3. Click Deploy
# 4. Get your live URL instantly!

๐Ÿ“ File Structure

fintack/
โ”œโ”€โ”€ ๐Ÿ“„ index.html      # Main HTML (789 lines)
โ”œโ”€โ”€ ๐ŸŽจ style.css       # Design system (1400+ lines)
โ”œโ”€โ”€ โš™๏ธ app.js          # App logic (700+ lines)
โ””โ”€โ”€ ๐Ÿ“– README.md       # This file

โŒจ๏ธ Keyboard Shortcuts

Shortcut Action
Ctrl + K Open global search
Escape Close modal / FAB menu
Tab Navigate form fields

๐Ÿ”‘ Key Design Decisions

Decision Reason
Zero backend Works offline, no server costs, instant deploy
LocalStorage Simple, fast, no auth needed
USD as base currency Single conversion step, consistent math
Chart.js via CDN Lightweight, no build step needed
Google Fonts via CDN Premium typography with no setup
CSS Custom Properties Instant theme/accent switching
ES6+ Modules Modern JS, clean code structure
Canvas confetti Pure browser animation, no library needed

๐ŸŽ“ Learning Outcomes

This project demonstrates:

  • ๐Ÿ—๏ธ Single Page Application (SPA) architecture without a framework
  • ๐Ÿ’พ LocalStorage CRUD operations
  • ๐Ÿ“Š Chart.js integration with dynamic data
  • ๐ŸŽจ CSS Custom Properties for real-time theming
  • ๐ŸŽž๏ธ Web Animations API & CSS keyframes
  • ๐Ÿ–ฅ๏ธ Canvas API for confetti & sparklines
  • ๐Ÿ’ฑ Currency conversion logic
  • ๐Ÿ“ค CSV file generation in browser
  • โ™ฟ Accessibility with ARIA labels & semantic HTML
  • ๐Ÿ“ฑ Responsive design with CSS Grid & Flexbox

๐Ÿ‘ค Author

Built with โค๏ธ for 50x Extension โ€“ Cohort 3.0

FinTrack Pro ยท Personal Finance Tracker

Deploy Status Assignment Points


โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ•— โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ•—  โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ•—
โ–ˆโ–ˆโ•”โ•โ•โ–ˆโ–ˆโ•—โ–ˆโ–ˆโ•”โ•โ•โ–ˆโ–ˆโ•—โ–ˆโ–ˆโ•”โ•โ•โ•โ–ˆโ–ˆโ•—
โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ•”โ•โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ•”โ•โ–ˆโ–ˆโ•‘   โ–ˆโ–ˆโ•‘
โ–ˆโ–ˆโ•”โ•โ•โ•โ• โ–ˆโ–ˆโ•”โ•โ•โ–ˆโ–ˆโ•—โ–ˆโ–ˆโ•‘   โ–ˆโ–ˆโ•‘
โ–ˆโ–ˆโ•‘     โ–ˆโ–ˆโ•‘  โ–ˆโ–ˆโ•‘โ•šโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ•”โ•
โ•šโ•โ•     โ•šโ•โ•  โ•šโ•โ• โ•šโ•โ•โ•โ•โ•โ•

FinTrack Pro โ€” Track Smart. Grow Faster.

Releases

Packages

Contributors

Languages