A comprehensive, production-ready admin panel built with React, TypeScript, and Tailwind CSS. Features a responsive sidebar, dark navy theme (#1F3556), and complete dashboard functionality.
- ✅ Responsive sidebar (overlay on mobile, persistent on desktop)
- ✅ Profile avatar toggle for sidebar control
- ✅ Smooth slide animations and focus management
- ✅ ESC key and backdrop click to close overlay
- ✅ Accessible keyboard navigation
- ✅ Dashboard - Stats cards, charts, quick actions
- ✅ User Management - Searchable table, CSV export, user actions
- ✅ KYC Management - Document review with approve/reject workflow
- ✅ Wallet Management - Top-up requests, manual credit/debit, low balance alerts
- ✅ Transaction Management - Filterable transactions, status updates, refunds
- ✅ Commission Settings - Editable service commission rates
- ✅ Service Control - Toggle services, configure API keys
- ✅ Reports - Charts for recharge, commission, wallet analytics
- ✅ Referral & Cashback - Manage referral programs and cashback campaigns
- ✅ Support & Feedback - Ticket management system
- ✅ CMS Management - WYSIWYG editor for content pages
- ✅ Notification Management - Send push/SMS/email broadcasts
- ✅ Admin Profile - Profile management and role-based permissions
- ✅ Navy theme (#1F3556) with light blue backgrounds (#EAF6FF)
- ✅ Semantic design tokens (HSL colors only)
- ✅ Custom component variants
- ✅ Pin input components with square boxes
- ✅ Consistent rounded cards (rounded-xl) and shadows
- ✅ TypeScript with strict typing
- ✅ React Query for data management
- ✅ React Router for navigation
- ✅ Heroicons for consistent iconography
- ✅ Recharts for data visualization
- ✅ React Quill for rich text editing
- ✅ CSV export functionality
- ✅ Mock data layer with realistic sample data
src/
├── components/
│ ├── layout/
│ │ ├── AdminLayout.tsx
│ │ ├── Header.tsx
│ │ └── Sidebar.tsx
│ └── ui/
│ ├── pin-input.tsx
│ └── [shadcn components]
├── contexts/
│ └── AuthContext.tsx
├── hooks/
│ ├── useKeyboardShortcuts.ts
│ ├── useFocusTrap.ts
│ └── use-mobile.tsx
├── mocks/
│ └── data.ts
├── pages/
│ ├── Dashboard.tsx
│ ├── UserManagement.tsx
│ ├── KYCManagement.tsx
│ ├── WalletManagement.tsx
│ ├── TransactionManagement.tsx
│ ├── CommissionSettings.tsx
│ ├── ServiceControl.tsx
│ ├── Reports.tsx
│ ├── ReferralCashback.tsx
│ ├── Support.tsx
│ ├── CMSManagement.tsx
│ └── NotificationManagement.tsx
├── lib/
│ └── utils.ts
└── App.tsx
- Install dependencies:
npm install- Start development server:
npm run dev- Build for production:
npm run build- Primary: #1F3556 (Dark Navy)
- Background: #EAF6FF (Light Blue)
- Cards: #FFFFFF (White)
- Success: Green variants
- Warning: Orange variants
- Error: Red variants
- Sidebar: Collapsible with smooth animations
- Header: Profile avatar, search, notifications
- Cards: Rounded corners (rounded-xl) with shadows
- Tables: Sortable, filterable, with pagination
- Forms: Consistent styling with focus states
Mock authentication is included. Default credentials:
- Email: admin@example.com
- Password: admin123
Comprehensive mock data includes:
- Users with KYC status and wallet balances
- Transaction history with various statuses
- KYC documents and approval workflow
- Commission settings for different services
- Support tickets and responses
- Referral and cashback data
- Mobile/Tablet (<1024px): Hidden by default, slides in as overlay
- Desktop (≥1024px): Persistent sidebar with collapse option
- Toggle: Profile avatar button in top-left header
- Accessibility: Focus trap, ESC key support, ARIA labels
- Real-time updates for status changes
- CSV export functionality
- Pagination and filtering
- Search across multiple fields
- Responsive design for all screen sizes
- Loading states and error handling
- Toast notifications for actions
- Keyboard shortcuts (Ctrl/Cmd + B for sidebar toggle)
The application is ready for deployment on any static hosting service:
npm run buildDeploy the dist folder to your preferred hosting platform (Vercel, Netlify, etc.).
- Create page component in
src/pages/ - Add route to
src/App.tsx - Add navigation item to
src/components/layout/Sidebar.tsx
- All colors are defined in
src/index.cssusing HSL - Component variants in Tailwind config
- Use semantic design tokens only
- Add new mock data to
src/mocks/data.ts - Follow existing patterns for data structure
This project is open source and available under the MIT License.