A comprehensive admin portal for SpeedwaveMFB built with Next.js 14, Material-UI, and TypeScript.
- Authentication: Secure JWT-based authentication with session management
- Dashboard: Real-time statistics and analytics
- User Management: View, search, filter, and manage user accounts
- Transaction Management: Monitor all transactions with advanced filtering
- Status Management: Suspend/activate user accounts
- Export Functionality: Export data to CSV, Excel, and PDF
- Responsive Design: Works on desktop and tablet devices
- Framework: Next.js 14 (App Router)
- UI Library: Material-UI (MUI) v5
- State Management: Zustand
- Data Fetching: TanStack Query (React Query)
- Charts: Recharts
- Tables: MUI DataGrid
- Forms: React Hook Form with Yup validation
- Date Handling: date-fns
- File Export: xlsx, jspdf
- API Client: Axios
- Node.js 18+ and npm
# Install dependencies
npm install
# Run development server
npm run dev
# Build for production
npm run build
# Start production server
npm startThe application will be available at http://localhost:3000
Use your admin credentials provided by the SpeedwaveMFB system to login.
src/
├── app/ # Next.js app directory
│ ├── (auth)/ # Authentication routes
│ ├── (protected)/ # Protected routes (requires auth)
│ ├── layout.tsx # Root layout
│ └── theme.ts # MUI theme configuration
├── components/
│ ├── layout/ # Layout components (Sidebar, Header)
│ ├── dashboard/ # Dashboard components
│ ├── shared/ # Shared/reusable components
│ ├── users/ # User-specific components
│ └── transactions/ # Transaction-specific components
├── lib/
│ ├── api/ # API client and endpoints
│ ├── hooks/ # React Query hooks
│ ├── store/ # Zustand stores
│ └── utils/ # Utility functions
└── types/ # TypeScript type definitions
- JWT token-based authentication
- Session timeout after 30 minutes of inactivity
- Auto-logout on 401 responses
- Secure token storage
- Real-time platform statistics
- User metrics (total, active, suspended, verified)
- Transaction metrics (completed, pending, failed)
- Financial overview (deposits, withdrawals, transfers)
- System health monitoring
- Nomba balance tracking
- Paginated user table with search
- Filter by status and verification
- User detail view with profile and transactions
- Suspend/activate user accounts
- Export user data
- Comprehensive transaction table
- Filter by type, status, date range, user
- Transaction statistics
- Export transaction data
- Detailed transaction view
- Support for all transaction types
The portal integrates with the Speedwave backend API at:
https://speedwave-backend.onrender.com/api/v1
POST /admin/login- Admin authenticationGET /admin/dashboard/stats- Dashboard statisticsGET /admin/users- List usersGET /admin/users/:id- User detailsPUT /admin/users/:id/status- Update user statusGET /admin/transactions- List transactionsGET /admin/transactions/stats- Transaction statisticsGET /health- System health checkGET /admin/nomba/balance- Nomba account balance
No environment variables are required for the base configuration. The API base URL is configured in src/lib/api/client.ts.
The project uses ESLint for code quality. Run:
npm run lintnpm run build- JWT token-based authentication
- Automatic session timeout
- Auto-logout on unauthorized access
- Secure API client with interceptors
- Role-based access control (planned)
- Bill payments management
- KYC verification workflow
- Virtual accounts management
- Beneficiaries overview
- Audit logs
- Reports and analytics
- Admin user management
- Two-factor authentication
- Email notifications
- Real-time updates via WebSocket
Proprietary - SpeedwaveMFB
For support, contact the SpeedwaveMFB development team.