A modern finance dashboard built with Next.js 14, React 18, TypeScript, and Tailwind CSS. It includes pages for viewing balances, connected banks, transaction history, and payment transfers with a responsive UI.
- Responsive dashboard layout with sidebar and mobile navigation
- Total balance, bank cards, and doughnut chart visualizations
- Transaction history view
- Payment transfer flow UI
- Authentication layouts for sign in / sign up
- Built with reusable UI components
- Next.js 14 (App Router)
- React 18 + TypeScript
- Tailwind CSS + tailwind-merge + tailwindcss-animate
- Chart.js + react-chartjs-2
- Radix UI primitives and icons, lucide-react
- Node.js 18+ (recommended)
- PNPM/NPM/Yarn (examples below use npm)
npm installnpm run devThen open http://localhost:3000 in your browser.
npm run buildnpm run startnpm run lintapp/
(auth)/ # Auth layouts and routes (sign-in, sign-up)
(root)/ # Main app routes (dashboard pages)
layout.tsx # Root layout
globals.css # Global styles (Tailwind)
components/
ui/ # Reusable UI components (charts, cards, etc.)
constants/ # App-wide constants
lib/ # Utilities
public/icons/ # SVG icons and assets
Key routes:
app/(root)/page.tsx: Dashboard landingapp/(root)/my-banks/page.tsx: Connected banksapp/(root)/transaction-history/page.tsx: Transactionsapp/(root)/payment-transfer/page.tsx: Transfer flowapp/(auth)/sign-in/page.tsx,app/(auth)/sign-up/page.tsx: Auth pages
dev: Start Next.js dev serverbuild: Build the appstart: Start Next.js in production modelint: Run ESLint
Tailwind CSS is configured in tailwind.config.ts and app/globals.css.
- Use utility classes for layout and spacing
- Prefer component composition in
components/ui/for consistency
The doughnut chart uses Chart.js via react-chartjs-2. See components/ui/DoughnutChart.tsx for an example of dataset and options usage.
- Create a feature branch from
main - Ensure
npm run lintpasses - Submit a PR with a clear description and screenshots if UI changes
This project is provided as-is. Add a license file if you intend to distribute.