A modern transaction management interface built with Svelte 5, featuring smart categorization, advanced filtering, and comprehensive analytics for personal expense tracking.
$state
, $derived
)Install dependencies:
npm install
Start development server:
npm run dev
Open your browser:
Navigate to http://localhost:5173
src/
āāā lib/
ā āāā components/
ā ā āāā TransactionTable.svelte # Sortable transaction table
ā ā āāā TransactionFilters.svelte # Filtering interface
ā ā āāā Analytics.svelte # Analytics dashboard
ā āāā stores/
ā ā āāā transactionStore.svelte.ts # State management with Svelte 5 runes
ā āāā data/
ā ā āāā transactions.json # Sample transaction data
ā āāā categorizer.ts # Smart categorization logic
ā āāā types.ts # TypeScript type definitions
āāā routes/
ā āāā +layout.svelte # Main layout with header
ā āāā +page.svelte # Main application page
āāā app.css # TailwindCSS configuration
āāā app.html # HTML template
$state
: Reactive state for transactions, filters, and sort configuration$derived
: Computed values for filtered transactions, category stats, and totals$derived.by
: Complex derivations with custom logic// Example categorization rules
const CATEGORY_RULES = {
'Coffee': ['STARBUCKS', 'DUNKIN', 'COFFEE'],
'Groceries': ['WHOLE FOODS', 'TRADER JOE', 'COSTCO'],
'Gas': ['SHELL', 'EXXON', 'CHEVRON'],
// ... more categories
};
npm run build
npm run preview
npm run check