A personal finance tracker to explore your expenses and understand where your money goes. Track spending on coffee, dining, travel, and more with powerful categorization and insights.
- π Expense Tracking - Import and analyze your bank transactions from CSV files
- π·οΈ Smart Categorization - Auto-categorize transactions using custom keywords and patterns
- π Visual Insights - Interactive charts and graphs to visualize spending patterns
- π Advanced Search - Quickly find and filter transactions
- β Exclude Transactions - Hide recurring bills or unwanted items from your analysis
- π‘ Category Management - Create and manage custom spending categories with keyword matching
- Framework: Next.js 16.1.1 (App Router)
- Language: TypeScript
- Database: SQLite with Prisma ORM
- Styling: Tailwind CSS
- UI Components: Radix UI
- Charts: Recharts
- CSV Parsing: PapaParse
- Node.js 18+ and npm
-
Clone the repository
git clone <repository-url> cd loot
-
Install dependencies
npm install
-
Set up the database
# Create the database file touch prisma/dev.db # Generate Prisma client npx prisma generate # Run migrations npx prisma migrate dev
-
Start the development server
npm run dev
-
Open the app Navigate to http://localhost:3000 in your browser
- Export your bank transactions as a CSV file
- Navigate to the Import page (
/import) - Upload your CSV file
- Transactions will be automatically imported and categorized
- Go to the Categories page (
/categories) - Add new categories and define keywords for automatic matching
- Keywords help automatically categorize transactions (e.g., "Starbucks" β "Coffee")
- Click the exclude button on any transaction to hide it from your analysis
- Manage excluded items in Settings (
/settings)
loot/
βββ app/ # Next.js app router pages
β βββ categories/ # Category management
β βββ import/ # CSV import functionality
β βββ search/ # Transaction search
β βββ settings/ # App settings
β βββ transactions/ # Transaction views
βββ components/ # React components
βββ lib/ # Utility functions and actions
β βββ actions.ts # Server actions
β βββ utils.ts # Helper functions
β βββ prismaClient.ts # Prisma client instance
βββ prisma/ # Database schema and migrations
β βββ schema.prisma # Database models
βββ public/ # Static assets
βββ types/ # TypeScript type definitions
- Transactions - Store imported bank transactions
- Category - User-defined spending categories
- Keyword - Keywords for automatic categorization
- Exclude - Excluded transaction patterns
# Development
npm run dev # Start dev server
npm run build # Build for production
npm run start # Start production server
# Database
npx prisma studio # Open Prisma Studio (database GUI)
npx prisma migrate dev # Run migrationsThis is a personal project, but contributions are welcome! Feel free to open issues or submit pull requests.
MIT
