A clean and interactive frontend-only finance dashboard built with React (JavaScript), Vite, and mock data.
- Install dependencies:
npm install- Start development server:
npm run dev- Build for production:
npm run build- Summary cards: Total Balance, Income, Expenses
- Time-based visualization: monthly balance/income/expense trend (line chart)
- Categorical visualization: spending breakdown by category (pie chart)
- Transaction list with date, description, amount, category, and type
- Simple filtering:
- text search
- type filter
- category filter
- month filter
- Sorting:
- date (asc/desc)
- amount (asc/desc)
- Highest spending category
- Monthly expense comparison (current vs previous)
- Savings rate insight
- Centralized app state using React Context +
useReducer - Managed state includes:
- transactions
- filters
- sort options
- theme
- Clean card-based layout
- Responsive behavior for desktop/tablet/mobile
- Empty/no-result states for charts and transaction list
- Dark mode toggle
- Local storage persistence for transactions, filters, sorting, and theme
src/context/AppStateContext.jsx- centralized state and persistencesrc/utils/financeSelectors.js- calculations and derived insightssrc/components/*- reusable UI sections and controlssrc/styles/app.css- responsive styling and light/dark theme variables
- Uses mock data only; no backend or authentication
- Focused on clarity and modularity over advanced enterprise patterns