GitHub - shahbaz-kamal/vaultpay-client: VaultPay is a secure digital wallet and payment platform built with React, TypeScript, Node.js, and MongoDB. It allows users to add, withdraw, and transfer money safely, with real-time transaction updates and role-based access for Admins, Agents, and Users. · GitHub
Skip to content

shahbaz-kamal/vaultpay-client

Repository files navigation

🏦 VaultPay - payment system

VaultPay is a secure and modern digital wallet platform built with React, TypeScript, Node.js, and MongoDB, enabling users to add, withdraw, and transfer money with seamless real-time processing. It features role-based access control (Admin, Agent, User), SSLCommerz-powered balance top-ups, and strong security powered by JWT authentication, Zod validation, and BcryptJS encryption. VaultPay ensures a smooth user experience enhanced with GSAP animations, making financial interactions both intuitive and visually dynamic.

🔗 Live link

Click Here

🔗 Backend link

Click Here

👨‍💼Login Info

✨ Features:

  • Role-Based Access Control — Separate functionalities for Admin, Super Admin, Agent, and User roles.

  • Secure Authentication — Implemented using JWT and BcryptJS for safe login and password protection.

    • Forget Password: All Users can easily set new password if password is forgotten through reset option sent via email.
    • Set Password: Users can set password, if initially registered with google. After setting passord he/she can use credential based login.
    • Change Password: Users can change password easily by providing old password.
    • OTP Verification: Users is verified via email by sending OTP upon register with email and password
  • Add Balance via SSLCommerz — Users can easily add money to their wallets using the SSLCommerze

  • SSLCommerz payment gateway. Also users can send money to other users.

  • Cash out, send money and cash in — Real-time transaction system for seamless fund management.

  • Invoice via Email — All users gets there there invoice as pdf instantly via email. Also can download transaction invoice any time from there dashboard.

  • Admin Dashboard — Admins can monitor total balance, manage commissions, and set transaction charges.

    • Analytics — Admins can view a huge nomber of statistical information in this page via different types of chart. like user & agent overview (totaluser/agents), active vs inactive users , system information, transaction overview by type and top performers for both users and agents.
    • Transaction History — Admins can view a total transaction history . Also can filter and search transaction history by user name, email , transaction date etc.
    • Agent and user Management — Admins can view agent and users information and also can update the status of user and some basic information of users
    • Client Messages — Admins can view client messages that came through contact us page from frontend.
    • NewsLetter Information — Admins can view emails, whose users subscribed for newsletter via newsletter section.
  • Agents Dashboard — Agents can perform cash in and add money as well as some more operation like can get statistical data, profile info etc.

    • Wallet Summary — Huge statistical data for logged in agent by using different types of chart.
    • Transaction History — Logged in agent can view his/her transaction history . Can use filter and search by different parameters.
  • Users Dashboard — Users can perform cash out,send money and add money as well as some more operation like can get statistical data, profile info etc.

    • Wallet Insights — Huge statistical data for logged in user through different types of chart.
    • Transaction History — Logged in user can view his/her transaction history . Can use filter and search by different parameters.
  • Data Validation — Robust input validation using Zod to ensure clean and error-free data.

  • Error Handling — Centralized error management with descriptive responses for smooth debugging.

  • TypeScript Support — Strongly typed backend ensuring better maintainability and scalability.

  • Database Management — Built with MongoDB (Mongoose) for flexible and efficient data modeling.

  • Users can

    • Add Money to their wallet from SSLCommerze
    • Send money to other users with a transaction charge.
    • Initiates cash out to agents to withdraw.
  • Agents can

    • Add Money to their wallet from SSLCommerze.
    • Initiates cash in to user wallet. (user will receive money from agent)
  • Admins can

    • View all transactions.
    • Update all users profiles certain fields.
  • Super Admin can

    • View all transactions.
    • Update users profiles as well as admin's profile .
    • can keep track of client message, newsletter subscriber

🛠 Technology Used

react logo tailwindcss logo redux logo typescript logo shadcn logo logo nodejs logo express logo express logo mongodb logo mongodb logo mongodb logo Zod Logo mongodb logo

💥 Dependencies:

{
    "@gsap/react": "^2.1.2",
    "@hookform/resolvers": "^5.2.2",
    "@radix-ui/react-accordion": "^1.2.12",
    "@radix-ui/react-avatar": "^1.1.11",
    "@radix-ui/react-checkbox": "^1.3.3",
    "@radix-ui/react-dialog": "^1.1.15",
    "@radix-ui/react-dropdown-menu": "^2.1.16",
    "@radix-ui/react-label": "^2.1.8",
    "@radix-ui/react-popover": "^1.1.15",
    "@radix-ui/react-select": "^2.2.6",
    "@radix-ui/react-separator": "^1.1.8",
    "@radix-ui/react-slot": "^1.2.4",
    "@radix-ui/react-switch": "^1.2.6",
    "@radix-ui/react-tabs": "^1.1.13",
    "@radix-ui/react-tooltip": "^1.2.8",
    "@reduxjs/toolkit": "^2.9.2",
    "@tailwindcss/vite": "^4.1.14",
    "@tanstack/react-table": "^8.21.3",
    "axios": "^1.13.1",
    "class-variance-authority": "^0.7.1",
    "clsx": "^2.1.1",
    "date-fns": "^4.1.0",
    "gsap": "^3.13.0",
    "input-otp": "^1.4.2",
    "lucide-react": "^0.545.0",
    "next-themes": "^0.4.6",
    "radix-ui": "^1.4.3",
    "react": "^19.1.1",
    "react-day-picker": "^9.11.1",
    "react-dom": "^19.1.1",
    "react-fast-marquee": "^1.6.5",
    "react-hook-form": "^7.66.0",
    "react-icons": "^5.5.0",
    "react-redux": "^9.2.0",
    "react-responsive": "^10.0.1",
    "react-router": "^7.9.4",
    "recharts": "^2.15.4",
    "sonner": "^2.0.7",
    "tailwind-merge": "^3.4.0",
    "tailwindcss": "^4.1.14",
    "zod": "^4.1.12"
}

💥Dev Dependencies:

{
    "@eslint/js": "^9.36.0",
    "@types/node": "^24.6.0",
    "@types/react": "^19.1.16",
    "@types/react-dom": "^19.1.9",
    "@vitejs/plugin-react": "^5.0.4",
    "eslint": "^9.36.0",
    "eslint-plugin-react-hooks": "^5.2.0",
    "eslint-plugin-react-refresh": "^0.4.22",
    "globals": "^16.4.0",
    "tw-animate-css": "^1.4.0",
    "typescript": "~5.9.3",
    "typescript-eslint": "^8.45.0",
    "vite": "^7.1.7",
    "vite-tsconfig-paths": "^5.1.4"
}

🔧 Installation Guidline:

  1. First clone the project by running
  git clone https://github.com/shahbaz-kamal/vaultpay-client.git
  1. Change your directory to the cloned folder by
  cd folder_name
  1. Run the following to install dependencies:
npm install
  1. Create a .env file in root directory of the project and add the following variable :
VITE_BASE_URL=https://vault-pay-server.vercel.app/api/v1

  1. Run the following command to run the project:
npm run dev

Thank you:

About

VaultPay is a secure digital wallet and payment platform built with React, TypeScript, Node.js, and MongoDB. It allows users to add, withdraw, and transfer money safely, with real-time transaction updates and role-based access for Admins, Agents, and Users.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

Contributors

Languages