Skip to content

JeffZl/CashCompass

Repository files navigation

πŸ’° CashCompass

A beautiful, modern personal finance tracker built with Next.js 15, featuring a premium glassmorphism UI, real-time data sync, and powerful analytics.

Next.js TypeScript Supabase Tailwind CSS

✨ Features

πŸ“Š Dashboard

  • Real-time Financial Overview - Total balance, income, expenses, and savings rate
  • Interactive Charts - Income vs Expense trends with Recharts
  • Expense Breakdown - Pie chart visualization by category
  • Spending Heatmap - Visualize spending patterns by day/time
  • Spending Insights - AI-powered anomaly detection and trends
  • Achievements System - Gamified financial milestones
  • 3D Tilt Cards - Premium hover effects on all components

πŸ’³ Accounts

  • Multi-account support (Bank, Credit Card, Cash, Investment)
  • Multi-currency support (USD, EUR, IDR, and more)
  • Real-time balance tracking
  • Credit card visual display

πŸ’Έ Transactions

  • Income & Expense tracking
  • Category assignment with icons
  • Smart filters (date, amount, category, account)
  • CSV Import/Export for bank statements
  • Tag system for organization

πŸ“ Categories

  • Custom income & expense categories
  • Icon picker with 50+ icons
  • Color customization
  • Usage analytics

πŸ“ˆ Budgets

  • Monthly budget creation per category
  • Progress tracking with visual indicators
  • Overspending alerts
  • Budget vs actual comparison

🎯 Financial Goals

  • Savings goal tracker
  • Progress visualization
  • Target date setting
  • Celebration confetti when goals are reached! πŸŽ‰

πŸ“… Transaction Calendar

  • Monthly calendar view
  • Daily transaction summary
  • Income/expense indicators
  • Heat map activity visualization

πŸ“Š Reports & Analytics

  • Time-based filtering (7d, 30d, 90d, 12m, All)
  • Category spending breakdown
  • Daily spending patterns
  • Top expenses ranking
  • CSV export functionality

πŸŽ† Year in Review

  • Annual financial summary
  • Animated slideshow presentation
  • Best/worst month highlights
  • Savings rate analysis

🎨 UI/UX Features

  • Glassmorphism Design - Modern frosted glass aesthetic
  • Dark/Light Mode - System-aware theme switching
  • iOS-inspired Animations - Smooth, buttery transitions
  • 3D Tilt Effects - Interactive card hover effects
  • Page Transitions - Framer Motion powered navigation
  • Skeleton Loading - Premium shimmer effects
  • Empty State Illustrations - Beautiful animated placeholders
  • Responsive Design - Mobile-first, works on all devices

πŸ› οΈ Tech Stack

Category Technology
Framework Next.js 15 (App Router)
Language TypeScript
Database Supabase (PostgreSQL)
Authentication Clerk
Styling Tailwind CSS + shadcn/ui
Charts Recharts
Animations Framer Motion
State Management Zustand
Icons Lucide React

πŸš€ Getting Started

Prerequisites

  • Node.js 18+
  • npm or yarn
  • Supabase account
  • Clerk account

Installation

  1. Clone the repository

    git clone https://github.com/JeffZl/CashCompass.git
    cd CashCompass
  2. Install dependencies

    npm install
  3. Set up environment variables

    cp .env.example .env.local

    Fill in your credentials:

    NEXT_PUBLIC_SUPABASE_URL=your_supabase_url
    NEXT_PUBLIC_SUPABASE_ANON_KEY=your_supabase_anon_key
    NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY=your_clerk_key
    CLERK_SECRET_KEY=your_clerk_secret
  4. Run Supabase migrations

    • Go to your Supabase SQL Editor
    • Run the migrations in supabase/migrations/
  5. Start the development server

    npm run dev
  6. Open the app Navigate to http://localhost:3000

πŸ“ Project Structure

cashcompass/
β”œβ”€β”€ app/
β”‚   β”œβ”€β”€ (routes)/           # Protected routes
β”‚   β”‚   β”œβ”€β”€ dashboard/      # Main dashboard
β”‚   β”‚   β”œβ”€β”€ accounts/       # Account management
β”‚   β”‚   β”œβ”€β”€ transactions/   # Transaction list
β”‚   β”‚   β”œβ”€β”€ categories/     # Category management
β”‚   β”‚   β”œβ”€β”€ budgets/        # Budget tracking
β”‚   β”‚   β”œβ”€β”€ goals/          # Financial goals
β”‚   β”‚   β”œβ”€β”€ reports/        # Analytics & reports
β”‚   β”‚   β”œβ”€β”€ calendar/       # Transaction calendar
β”‚   β”‚   └── settings/       # User settings
β”‚   β”œβ”€β”€ globals.css         # Global styles
β”‚   └── layout.tsx          # Root layout
β”œβ”€β”€ components/
β”‚   β”œβ”€β”€ dashboard/          # Dashboard widgets
β”‚   β”œβ”€β”€ transactions/       # Transaction components
β”‚   β”œβ”€β”€ ui/                 # Reusable UI components
β”‚   └── ...
β”œβ”€β”€ lib/
β”‚   β”œβ”€β”€ supabase/           # Database hooks & client
β”‚   β”œβ”€β”€ stores/             # Zustand stores
β”‚   β”œβ”€β”€ currency.ts         # Currency utilities
β”‚   └── export.ts           # CSV export utilities
└── supabase/
    └── migrations/         # Database migrations

πŸ” Security

  • Row Level Security (RLS) enabled on all tables
  • User data isolation - each user only sees their own data
  • Clerk authentication with secure session management
  • No sensitive data in client-side storage

πŸ“± PWA Support

CashCompass is a Progressive Web App! You can install it on:

  • Desktop (Chrome, Edge) - Click the install icon in the address bar
  • Android - "Add to Home Screen" from Chrome menu
  • iOS - "Add to Home Screen" from Safari share menu

🚧 Upcoming Features

  • Push Notifications for bill reminders
  • Recurring Transactions
  • Bank Account Sync (Plaid integration)
  • Investment Portfolio Tracking
  • Receipt Scanning with OCR
  • Multi-language Support

🀝 Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

πŸ“„ License

This project is licensed under the MIT License.


Made with ❀️ using Next.js and Supabase

About

Personal finance tracker with premium UI, multi-currency support, budgets, goals, and analytics. Next.js + Supabase + Clerk.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages