A modern, responsive financial management dashboard built with Next.js, TypeScript, and Tailwind CSS. Track your finances, manage multiple wallets, and visualize your spending habits with elegant UI components.
Features β’ Demo β’ Installation β’ Tech Stack β’ Project Structure
- π Authentication System - Secure login with mock authentication
- π Interactive Dashboard - Real-time financial overview with charts
- π° Multi-Wallet Support - Manage bank accounts, credit cards, cash, and crypto wallets
- π Financial Analytics - Income vs. Expense tracking with Recharts visualization
- π³ Virtual Credit Cards - Beautiful SVG-based card designs with chip & contactless icons
- π± Fully Responsive - Mobile-first design that works on all devices
- π¨ Modern UI Components - Built with Radix UI and shadcn/ui principles
- β‘ Turbopack Enabled - Lightning-fast development with Next.js Turbopack
- Glassmorphism effects on credit cards
- Smooth animations and transitions
- Dark mode ready architecture
- Accessible components (ARIA compliant)
- Skeleton loading states
- Toast notifications
The main dashboard provides a comprehensive view of your financial status:
- Total balance across all accounts
- Business capital tracking
- Transaction history with categorization
- Income/Expense trends visualization
- Scheduled transfers management
- Balance Cards - Display total and business capital
- Credit Card Visualizations - Front & back card designs
- Wallet Cards - Multi-currency wallet management
- Finance Charts - Interactive income/expense graphs
- Transaction Items - Detailed transaction list with icons and status
- Node.js 20.x or higher
- npm, yarn, pnpm, or bun package manager
- Clone the repository
git clone https://github.com/yourusername/magio.git
cd magio- Install dependencies
npm install
# or
yarn install
# or
pnpm install- Run the development server
npm run dev
# or
yarn dev
# or
pnpm dev- Open your browser
Navigate to http://localhost:3000
The application will automatically redirect to the sign-in page.
# Start development server with Turbopack
npm run dev
# Build for production
npm run build
# Start production server
npm run start
# Run ESLint
npm run lint- Next.js 15.5.4 - React framework with App Router
- React 19.1.0 - UI library
- TypeScript 5 - Type safety
- Tailwind CSS 4 - Utility-first CSS framework
- tw-animate-css - Animation utilities
- class-variance-authority - Component variants
- tailwind-merge - Merge Tailwind classes
- Radix UI - Unstyled, accessible components
- Avatar
- Slot (Polymorphic components)
- Lucide React - Beautiful icon system
- Recharts - Charting library
magio/
βββ public/
β βββ images/
β βββ signup.webp # Sign-in page illustration
βββ src/
β βββ app/
β β βββ dashboard/
β β β βββ page.tsx # Dashboard page
β β βββ sign-in/
β β β βββ page.tsx # Authentication page
β β βββ globals.css # Global styles
β β βββ layout.tsx # Root layout
β β βββ page.tsx # Home page (redirects to sign-in)
β βββ components/
β β βββ auth/
β β β βββ sign-in-form.tsx # Login form component
β β βββ dashboard/
β β β βββ balance-card.tsx
β β β βββ credit-card.tsx
β β β βββ finance-chart.tsx
β β β βββ header.tsx
β β β βββ scheduled-transfers.tsx
β β β βββ sidebar.tsx
β β β βββ transaction-item.tsx
β β β βββ wallet-card.tsx
β β βββ ui/
β β βββ avatar.tsx # shadcn/ui Avatar
β β βββ button.tsx # shadcn/ui Button
β β βββ card.tsx # shadcn/ui Card
β β βββ input.tsx # shadcn/ui Input
β β βββ google-icon.tsx
β β βββ logo.tsx
β βββ contexts/
β β βββ auth-context.tsx # Authentication context & provider
β βββ data/
β β βββ dummy.json # Mock data for development
β βββ lib/
β β βββ formatters.ts # Currency & date formatters
β β βββ utils.ts # Utility functions
β β βββ validators.ts # Form validation helpers
β βββ types/
β βββ index.ts # TypeScript interfaces
βββ .vscode/
β βββ settings.json # VS Code workspace settings
βββ components.json # shadcn/ui configuration
βββ eslint.config.mjs # ESLint configuration
βββ next.config.ts # Next.js configuration
βββ postcss.config.mjs # PostCSS configuration
βββ tailwind.config.js # Tailwind CSS configuration (auto-generated)
βββ tsconfig.json # TypeScript configuration
AuthProvider β useAuth() β Protected Routes- Header - User profile, notifications, search
- Sidebar - Navigation menu with icons
- Balance Cards - Financial overview cards
- Credit Cards - SVG-based card designs
- Wallet Cards - Multi-currency support
- Finance Chart - Recharts area chart
- Transaction List - Scrollable transaction feed
Create a .env.local file in the root directory:
# Add your environment variables here
# NEXT_PUBLIC_API_URL=your_api_urlThe project uses Tailwind CSS 4 with custom configuration:
- Custom color palette
- Extended spacing utilities
- Custom animation utilities
Strict mode enabled with Next.js specific settings:
- Path aliases:
@/*β./src/* - ES2017 target
- Strict type checking
// Global authentication state management
const { user, login, logout, isAuthenticated, isLoading } = useAuth();Supports 4 wallet types:
- π΅ Cash - Physical currency tracking
- π¦ Bank - Bank account balances
- π³ Credit - Credit card management
- βΏ Crypto - Cryptocurrency wallets
Track all financial activities:
- Income vs. Expense categorization
- Company/merchant information
- Status tracking (completed, pending, failed)
- Date-based filtering
interface User {
id: string;
email: string;
name: string;
avatar?: string;
}interface Transaction {
id: string;
type: 'income' | 'expense';
amount: number;
currency: string;
description: string;
company?: string;
category: string;
date: string;
status: 'completed' | 'pending' | 'failed';
}interface Wallet {
id: string;
name: string;
balance: number;
currency: string;
type: 'cash' | 'bank' | 'credit' | 'crypto';
}- Primary: Brand colors for main actions
- Secondary: Supporting UI elements
- Muted: Background and borders
- Accent: Highlights and notifications
- Headings: Bold, clear hierarchy
- Body: Readable, optimized line height
- Monospace: For card numbers and codes
Consistent spacing scale based on Tailwind's default configuration with custom extensions.
- β‘ Turbopack for faster development builds
- πΌοΈ Next.js Image Optimization ready
- π¦ Code Splitting with dynamic imports
- π― Tree Shaking for smaller bundles
- πΎ Static Generation where possible
The project structure supports:
- Unit testing with Jest (setup required)
- Component testing with React Testing Library (setup required)
- E2E testing with Playwright (setup required)
- Chrome (latest)
- Firefox (latest)
- Safari (latest)
- Edge (latest)
- Mobile browsers (iOS Safari, Chrome Mobile)
Contributions are welcome! Please follow these steps:
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
- Follow TypeScript best practices
- Maintain component modularity
- Write meaningful commit messages
- Add comments for complex logic
- Update documentation as needed
This project is licensed under the MIT License - see the LICENSE file for details.
- Next.js - The React Framework
- Tailwind CSS - Styling framework
- Radix UI - UI primitives
- Lucide - Icon system
- shadcn/ui - Component inspiration
- Recharts - Chart library
For questions or feedback, please open an issue on GitHub.
Made with β€οΈ using Next.js and TypeScript