A full-stack production-ready financial dashboard built with React, Vite, Node.js, Express, and MongoDB (optional).
- Dashboard — Live stats, cash flow chart, currency converter, recent transactions, virtual cards
- Transactions — Full CRUD with filter, sort, edit, and delete
- Payments — Deposit, withdraw, and transfer with balance updates
- Budgets — Create and track spending limits with progress bars
- Payment Links — Create shareable URLs, copy, pause/activate, delete
- Invoices — Create, send, mark paid (updates balance), delete
- Inbox — Notifications with read/unread state
- Cards — Add, view, and remove virtual cards
- Reports — Charts by payment method, country, and budget utilization
- Contacts — Contact management with search
- Sandbox — Generate and revoke API keys
- SDKs — Integration snippets with copy-to-clipboard
- Support — Create and resolve support tickets
- AI Assistant — Ask questions about your finances
- Dark mode, global search (⌘F / Ctrl+F), toast notifications
# Install dependencies
cd server && npm install
cd ../client && npm install
# Terminal 1 — API server (port 5000)
cd server && npm start
# Terminal 2 — Frontend dev server (port 5173)
cd client && npm run devOr run both servers together from the project root:
npm install
npm run devCreate server/.env:
MONGO_URI=mongodb://localhost:27017/finstack
PORT=5000
Without MongoDB, the app runs with in-memory data that persists for the server session.
| Method | Endpoint | Description |
|---|---|---|
| GET | /api/dashboard | Balance, income, expense, cashflow |
| GET | /api/balance | Current account balance |
| GET/POST/PUT/DELETE | /api/transactions | Transaction CRUD |
| POST | /api/payments | Deposit, withdraw, transfer |
| GET/POST/PUT/DELETE | /api/cards | Card management |
| POST | /api/convert | Currency conversion |
| GET/POST/PUT/DELETE | /api/budgets | Budget CRUD |
| GET/POST/PUT/DELETE | /api/payment-links | Payment link CRUD |
| GET/POST/PUT/DELETE | /api/invoices | Invoice management |
| GET | /api/inbox | Messages |
| PUT | /api/inbox/:id/read | Mark message read |
| GET/POST/PUT/DELETE | /api/contacts | Contact CRUD |
| GET/POST/PUT/DELETE | /api/tickets | Support tickets |
| GET | /api/reports | Analytics data |
| GET/POST/DELETE | /api/keys | API key management |
| POST | /api/ai | AI assistant |
| GET | /api/health | Health check |