A secure, role-based, and user-friendly frontend application for a Digital Wallet System, built with React.js, Redux Toolkit, and RTK Query. This application provides a seamless interface for Users, Agents, and Admins to perform financial operations and manage wallets.
- Polished Landing Page: A beautiful homepage with smooth transitions, a sticky navbar, and a clear call-to-action.
- Informational Pages: About, Features, Contact, and FAQ sections.
- Secure Authentication: JWT-based login and registration for
UsersandAgents. - Persistent State: Users remain logged in even after a page refresh.
- Role-Based Access: Automatic redirection to the appropriate dashboard upon login.
- Financial Overview: At-a-glance view of wallet balance and recent transactions.
- Core Wallet Actions: Deposit, Withdraw, and Send Money to other users.
- Complete History: View all transactions with pagination and filtering by type or date.
- Profile Management: Update name, phone number, and password.
- Agent-Specific Overview: Summary of cash-in/cash-out activities.
- Facilitate Transactions: Add money to a user's wallet or process withdrawals.
- Transaction Monitoring: View all transactions handled by the agent.
- Profile Management: Update personal and account information.
- System-Wide Overview: High-level stats on total users, agents, and transaction volume.
- User & Agent Management: View, block, unblock, approve, or suspend accounts.
- Advanced Transaction View: Access all system transactions with powerful filtering and search capabilities.
- Data Visualization: Dynamic cards, charts, and tables for intuitive data analysis.
- Guided Tour: An interactive tour for new users highlighting key features (powered by
react-joyride). - Toast Notifications: Instant feedback for user actions.
- Responsive Design: Fully optimized for desktop, tablet, and mobile devices.
- Loading Skeletons: Smooth loading states for a better user experience.
- Dark & Light Mode: A theme toggle for user preference.
- Framework: React.js
- State Management: Redux Toolkit & RTK Query
- Routing: React Router
- Language: TypeScript
- Styling: Tailwind CSS & shadcn/ui
- Form Management: React Hook Form with Zod for validation
- Build Tool: Vite
- Linting: ESLint
Follow these instructions to set up and run the project locally.
git clone https://github.com/MxAziz/WalletX.git
cd WalletXUsing Bun (recommended):
bun installOr with NPM:
npm installCreate a .env file in the root of the project and add the backend API URL.
VITE_API_BASE_URL=http://localhost:5000/api/v1Note: Replace the URL with your actual backend server address if it's different.
bun run devor
npm run devThe application should now be running on http://localhost:5173.
npm run dev: Starts the development server.npm run build: Builds the app for production.npm run lint: Lints the codebase using ESLint.npm run preview: Serves the production build locally.
You can use the following credentials to test the different roles:
- Admin:
- Phone:
01555555555 - Password:
Abcabc3#
- Phone:
- Agent:
- Email:
01111111111 - Password:
Abcabc3#
- Email:
- User:
- Email:
01333333333 - Password:
Abcabc3#
- Email: