Skip to content
VDB24Public

About

Cashistic - A Finance Management App.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

ย 

History

10 Commits

Folders and files

Repository files navigation

FMS101 - Personal Finance Management System# ๐Ÿ’ฐ Personal Finance Tracker

A comprehensive finance tracking application built with React, Vite, and Supabase.A minimalistic, responsive personal finance tracker web application inspired by Notion finance templates. Track your income, expenses, and savings throughout the year with beautiful visualizations and an intuitive interface.

๐Ÿš€ FeaturesFinance Tracker

Vite

  • Transaction Management - Track income and expenses with categoriesTailwind CSS

  • Budget Planning - Set and monitor budgets with alerts

  • Analytics Dashboard - Visualize spending patterns with charts (Week/Month/Year views)## โœจ Features

  • Savings Goals - Set and track financial targets

  • Stock Watchlist - Monitor your investment portfolio### ๐Ÿ“Š Dashboard Overview

  • Bank Statement Import - Import transactions from bank statements- Summary Cards: Quick view of total income, expenses, and net savings

  • Multi-Account Support - Manage multiple accounts- Yearly Savings Trend: Interactive line chart showing month-by-month savings

  • Dark Mode - Beautiful dark/light theme support- Category Breakdown: Pie charts for income and expense categories

  • User Authentication - Secure login with Supabase Auth- Recent Transactions: Latest financial activities at a glance

  • Notifications - Budget alerts and savings milestones

๐Ÿ“… Quarterly Organization

๐Ÿ“‹ Prerequisites- Q1-Q4 Division: Year divided into four quarters with distinct color themes

  • Q1 (Jan-Mar): Blue tones

  • Node.js (v16 or higher) - Q2 (Apr-Jun): Teal tones

  • npm or yarn - Q3 (Jul-Sep): Orange tones

  • Supabase account - Q4 (Oct-Dec): Purple tones

๐Ÿ› ๏ธ Installation### ๐Ÿ’ธ Transaction Management

  • CRUD Operations: Add, edit, and delete income/expense entries
  1. Clone the repository- Categorization: Pre-defined categories for easy tracking

    git clone <repository-url>  - Expenses: Groceries, Entertainment, Utilities, Healthcare, etc.
    
    cd fms101- **Monthly Breakdown**: Detailed view for each month
    

๐ŸŽจ User Experience

  1. Install dependencies- Dark/Light Mode: Smooth theme toggle with persistent preferences

    
    npm install- **Smooth Animations**: Fade-in, slide-up, and scale effects
    
    ```- **Color-Coded Visuals**: Green for income, red for expenses
    
    
    
    
  2. Set up environment variables### ๐Ÿ’พ Data Management

    • Local Storage: Automatic data persistence

    Copy .env.example to .env and add your Supabase credentials:- Export/Import: Save and restore data as JSON files

    
    VITE_SUPABASE_URL=your_supabase_url
    
    VITE_SUPABASE_ANON_KEY=your_supabase_anon_key## ๐Ÿš€ Getting Started
    
    

Prerequisites

  1. Set up the database- Node.js (v16 or higher)

    • npm or yarn

    Run the SQL migrations in your Supabase SQL Editor (in order):

    • supabase_migrations/finance_tables.sql### Installation

    • supabase_migrations/fix_signup_trigger.sql

    • supabase_migrations/add_missing_columns.sql (if needed)1. Install Dependencies

  2. Start the development server npm install

    bash

    npm run dev

    
    ```bash
    
    

๐Ÿ“ Project Structure npm run dev


fms101/3. Open in Browser

โ”œโ”€โ”€ api/ # API endpoints (Yahoo Finance, stock data) Navigate to http://localhost:3000

โ”œโ”€โ”€ docs/ # Documentation

โ”‚ โ”œโ”€โ”€ archive/ # Old migration/planning documents4. Build for Production

โ”‚ โ”œโ”€โ”€ API_OPTIMIZATION.md ```bash

โ”‚ โ”œโ”€โ”€ RATE_LIMIT_GUIDE.md npm run build

โ”‚ โ”œโ”€โ”€ SETUP_GUIDE.md ```

โ”‚ โ”œโ”€โ”€ SUPABASE_SETUP.md

โ”‚ โ””โ”€โ”€ VERCEL_DEPLOYMENT.md## ๐Ÿ“ Project Structure

โ”œโ”€โ”€ scripts/ # Build and utility scripts

โ”‚ โ”œโ”€โ”€ start.ps1```

โ”‚ โ””โ”€โ”€ vite-plugin-api.jsfms101/

โ”œโ”€โ”€ src/โ”œโ”€โ”€ src/

โ”‚ โ”œโ”€โ”€ components/ # React componentsโ”‚ โ”œโ”€โ”€ components/

โ”‚ โ”œโ”€โ”€ contexts/ # React Context providers (Auth, Finance, Theme, etc.)โ”‚ โ”‚ โ”œโ”€โ”€ CategoryChart.jsx # Pie charts for category breakdown

โ”‚ โ”œโ”€โ”€ hooks/ # Custom React hooksโ”‚ โ”‚ โ”œโ”€โ”€ Header.jsx # App header with theme toggle

โ”‚ โ”œโ”€โ”€ lib/ # Library configurations (Supabase)โ”‚ โ”‚ โ”œโ”€โ”€ MonthCard.jsx # Monthly transaction card

โ”‚ โ”œโ”€โ”€ pages/ # Page componentsโ”‚ โ”‚ โ”œโ”€โ”€ Navigation.jsx # Main navigation bar

โ”‚ โ””โ”€โ”€ utils/ # Utility functions and helpersโ”‚ โ”‚ โ”œโ”€โ”€ QuarterView.jsx # Quarterly overview

โ”œโ”€โ”€ supabase_migrations/ # Database migration SQL filesโ”‚ โ”‚ โ”œโ”€โ”€ RecentTransactions.jsx # Recent activity list

โ”œโ”€โ”€ tests/ # Test files and scriptsโ”‚ โ”‚ โ”œโ”€โ”€ SavingsChart.jsx # Yearly savings trend chart

โ”œโ”€โ”€ .env.example # Environment variables templateโ”‚ โ”‚ โ”œโ”€โ”€ StatsOverview.jsx # Summary statistics cards

โ”œโ”€โ”€ index.htmlโ”‚ โ”‚ โ””โ”€โ”€ TransactionModal.jsx # Add/Edit transaction form

โ”œโ”€โ”€ package.jsonโ”‚ โ”œโ”€โ”€ contexts/

โ”œโ”€โ”€ tailwind.config.jsโ”‚ โ”‚ โ”œโ”€โ”€ FinanceContext.jsx # Finance data state management

โ””โ”€โ”€ vite.config.jsโ”‚ โ”‚ โ””โ”€โ”€ ThemeContext.jsx # Theme state management


โ”‚   โ”‚   โ”œโ”€โ”€ Dashboard.jsx          # Dashboard page

## ๐Ÿ”ง Configurationโ”‚   โ”‚   โ”œโ”€โ”€ Expenses.jsx           # Expenses page

โ”‚   โ”‚   โ”œโ”€โ”€ Income.jsx             # Income page

### Supabase Setupโ”‚   โ”‚   โ””โ”€โ”€ TotalSavings.jsx       # Total savings page

โ”‚   โ”œโ”€โ”€ utils/

1. Create a new Supabase project at [supabase.com](https://supabase.com)โ”‚   โ”‚   โ””โ”€โ”€ helpers.js             # Utility functions

2. Run the SQL migrations from `supabase_migrations/` in orderโ”‚   โ”œโ”€โ”€ App.jsx                    # Main app component

3. Enable Row Level Security (RLS) - policies are included in migrationsโ”‚   โ”œโ”€โ”€ main.jsx                   # Entry point

4. Configure authentication settings (email/password enabled)โ”‚   โ””โ”€โ”€ index.css                  # Global styles

5. Copy your project URL and anon key to `.env`โ”œโ”€โ”€ index.html

โ”œโ”€โ”€ package.json

For detailed setup instructions, see `docs/SUPABASE_SETUP.md`โ”œโ”€โ”€ vite.config.js

โ”œโ”€โ”€ tailwind.config.js

## ๐Ÿ“Š Available Scriptsโ””โ”€โ”€ postcss.config.js

  • npm run dev - Start development server (port 5173)

  • npm run build - Build for production## ๐ŸŽฏ Usage Guide

  • npm run preview - Preview production build

  • npm run lint - Run ESLint### Adding Transactions

  1. Navigate to any month card

๐Ÿšข Deployment2. Click the "+ New" button under Income or Expenses

  1. Fill in the transaction details:

The app can be deployed to Vercel, Netlify, or any static hosting service. - Title (e.g., "Monthly Salary")

  • Amount (in โ‚น)

Quick Deploy to Vercel - Category

  1. Click "Add" to save
npm install -g vercel### Editing/Deleting Transactions

vercel1. Expand a month card

```2. Hover over any transaction

3. Click the **edit** icon to modify or **trash** icon to delete

See `docs/VERCEL_DEPLOYMENT.md` for detailed deployment instructions.

### Viewing Analytics

## ๐ŸŽจ Tech Stack- **Dashboard**: Overview of all financial data with charts

- **Total Savings**: Quarterly and monthly breakdowns

- **Frontend**: React 18, Vite- **Income/Expenses**: Focused views on specific transaction types

- **Styling**: Tailwind CSS

- **Backend**: Supabase (PostgreSQL)### Data Management

- **Authentication**: Supabase Auth- **Export**: Click the download icon to save data as JSON

- **Charts**: Recharts- **Import**: Click the upload icon to restore from JSON file

- **Icons**: Lucide React- **Reset**: Click the reset icon to clear all data (with confirmation)

- **Date Handling**: date-fns

- **Stock Data**: Yahoo Finance API## ๐Ÿ›  Tech Stack



## ๐Ÿ“ Key Features- **Frontend Framework**: React 18.2

- **Build Tool**: Vite 5.0

### Transaction Management- **Styling**: Tailwind CSS 3.3

- Add, edit, delete transactions- **Charts**: Recharts 2.10

- Categorize with pre-defined or custom categories- **Icons**: Lucide React

- Filter by date, category, account- **Routing**: React Router DOM 6.20

- Search functionality- **Date Handling**: date-fns 2.30

- Notes and tags support

## ๐ŸŽจ Color Theme

### Analytics Dashboard

- **Time Range Toggle**: View data by Week/Month/Year### Light Mode

  - Week view: Daily breakdown for last 7 days- Background: White/Light Gray

  - Month view: Weekly breakdown for current month- Text: Dark Gray/Black

  - Year view: Monthly breakdown for entire year- Income: Green shades

- Category breakdown charts- Expenses: Red shades

- Income vs expense comparison- Quarters: Blue, Teal, Orange, Purple

- Savings rate tracking

### Dark Mode

### Budgeting- Background: Dark Gray/Black

- Set category budgets- Text: White/Light Gray

- Budget alerts at 50%, 75%, 90%, and 100% thresholds- Income: Bright Green

- Monthly/quarterly/yearly periods- Expenses: Bright Red

- Real-time spending tracking- Quarters: Lighter Blue, Teal, Orange, Purple



### Savings Goals (Targets)## ๐Ÿ“ฑ Responsive Breakpoints

- Create savings targets with deadlines

- Track progress visually- **Mobile**: < 640px

- Milestone notifications- **Tablet**: 640px - 1024px

- Current vs target amount comparison- **Desktop**: > 1024px



### Stock Watchlist## ๐Ÿ”ฎ Future Enhancements

- Add stocks to personal watchlist

- Real-time price updates- [ ] Budget setting and alerts

- Portfolio value tracking- [ ] Savings goals tracker

- Gain/loss indicators- [ ] Expense limit warnings

- [ ] Monthly expense predictions

### Notifications- [ ] CSV export/import

- Budget threshold alerts- [ ] Multi-year support

- Savings goal milestones- [ ] Cloud sync (Firebase/Supabase)

- User-specific (not shared across accounts)- [ ] Receipt attachment support

- Toast notifications for important events- [ ] Advanced filtering and search

- [ ] Custom categories

## ๐Ÿ” Security

## ๐Ÿ“„ License

- Row Level Security (RLS) enabled on all tables

- User-specific data isolationMIT License - Feel free to use this project for personal or commercial purposes.

- Secure authentication with Supabase Auth

- Environment variables for sensitive data## ๐Ÿค Contributing



## ๐Ÿค ContributingContributions, issues, and feature requests are welcome!



Contributions are welcome! Please feel free to submit a Pull Request.## ๐Ÿ’ก Tips



## ๐Ÿ“„ License- **Regular Updates**: Add transactions regularly for accurate tracking

- **Categorize Properly**: Use appropriate categories for better insights

This project is licensed under the MIT License.- **Backup Data**: Export your data periodically as backup

- **Set Goals**: Use the insights to set and achieve financial goals

## ๐Ÿ› Known Issues

---

Check the GitHub Issues page for current known issues and planned features.

**Built with โค๏ธ using React + Vite + Tailwind CSS**

## ๐Ÿ“ง Support

For questions or support, please open an issue on GitHub.

---

Built with โค๏ธ by Vashisht using React, Vite, and Supabase

About

Cashistic - A Finance Management App.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages