A full-stack personal finance web app replacing Excel-based accounting. Tracks daily expenses, monthly budgets, credit card ledgers, advance budgets, and fund allocations.
- Backend: Express + TypeScript + Prisma + SQLite (port 3001)
- Frontend: React + Vite + TypeScript + Tailwind CSS (port 5173)
Open two terminals.
Terminal 1 — Backend:
cd C:\Users\Metz Embile\dev\kakei\backend
npm installTerminal 2 — Frontend:
cd C:\Users\Metz Embile\dev\kakei\frontend
npm installcd C:\Users\Metz Embile\dev\kakei\backend
npx prisma migrate dev --name init
npm run prisma:seedThis creates backend/dev.db with all tables and seeds the default accounts and categories.
Terminal 1 — Backend (port 3001):
cd C:\Users\Metz Embile\dev\kakei\backend
npm run devTerminal 2 — Frontend (port 5173):
cd C:\Users\Metz Embile\dev\kakei\frontend
npm run devOpen http://localhost:5173 in your browser.
- Monthly spending vs budget bar chart (Recharts)
- Quick stat cards: Total Spent, Income, CC Payment Fund, CC Allocation
- Recent 10 transactions
- CC payment balance per account
- Month/year selector
- Full transaction form with all fields:
- Basic: date, category, description
- Cash payments: Wallet, BDO Payroll, GCash
- CC charges: Miles+, Miles+ Oppa, BDO CC, BPI CC
- CC payment source: Budget, Payroll, Others
- Next-month CC charges and payment sources
- Edit and delete rows
- Column totals in footer
- Income setup: income, savings target, CC budget/payroll/others
- Per-category budget inputs with progress bars
- Budget vs actual spending side-by-side
- Values auto-saved on blur
- Ledger for CC payment allocations
- Types: "For CC Payment" and "Advance Payment"
- Filter by account and type
- Balance summary per account
- Types: General, Grocery, Budget Next Month
- Filter by account and type
- Per-account per-type balance table
Available fund types: Oppa, RK, Savings, Travel, Insurance, Forex, Investment (Peso), Investment (USD), Money 8
- Debit/credit ledger with running balance
- Per-account balance summary cards
- Filter by account
- Full matrix: each account × each fund type balance
- USD accounts converted to PHP using configurable exchange rate
- Grand total in PHP
- USD → PHP exchange rate
- Account management (add, edit, activate/deactivate, delete)
- Category management (add, edit, reorder, delete)
kakei/
backend/
prisma/
schema.prisma # Database schema
src/
index.ts # Express app + all API routes
seed.ts # Default data seeder
.env # DATABASE_URL, PORT
package.json
tsconfig.json
frontend/
src/
api/client.ts # API functions for all endpoints
components/
Layout.tsx # Sidebar navigation
pages/
Dashboard.tsx
Transactions.tsx
Budget.tsx
CreditCards.tsx
AdvBudget.tsx
FundLedger.tsx
Accounts.tsx
Settings.tsx
types/index.ts # TypeScript interfaces
App.tsx # Routes
main.tsx # Entry point
index.html
vite.config.ts # Proxy /api → :3001
tailwind.config.js
postcss.config.js
package.json
| Method | Path | Description |
|---|---|---|
| GET/POST/PUT/DELETE | /api/accounts |
Account CRUD |
| GET/POST/PUT/DELETE | /api/categories |
Category CRUD |
| GET/POST/PUT/DELETE | /api/transactions |
Transaction CRUD (filter: ?month=&year=) |
| GET/POST/PUT/DELETE | /api/monthly-budget |
Budget CRUD (filter: ?month=&year=) |
| GET/POST/PUT/DELETE | /api/monthly-income |
Income CRUD (filter: ?month=&year=) |
| GET/POST/PUT/DELETE | /api/cc-ledger |
CC Ledger CRUD (filter: ?accountId=&type=) |
| GET/POST/PUT/DELETE | /api/adv-budget |
Advance Budget CRUD |
| GET/POST/PUT/DELETE | /api/fund-ledger |
Fund Ledger CRUD (filter: ?fundType=&accountId=) |
| GET/PUT | /api/config |
App config (exchange rate) |
| GET | /api/reports/monthly-summary |
Monthly spending vs budget |
| GET | /api/reports/account-summary |
Per-account balance breakdown |
| GET | /api/reports/cc-balance |
CC payment fund balances |
Accounts: Wallet, GCash, BDO Payroll, BDO Peso, BDO Optimum, BDO Dollar, BDO Checking, BPI Savings
Categories: Bills & Service, Education, Childcare, Fare, Grocery, Delivery, Dine-out, Coffee, Shopping, Travel, Charity, Electronics, Home, Kikay, Transaction, Exercise, Ent & Lei
Config: usdToPhp = 58.05