Smart Digital Wallet & Personal Finance Platform built for secure money management. It supports user authentication, wallet balance tracking, money transfers, QR-based payments, saved cards, and categorised transaction history.
The project is currently under active development.
- User registration and login with JWT authentication
- Wallet balance management
- Add money to wallet
- Send money to another user
- QR code payment flow
- Transaction history with sender/receiver direction
- Transaction categories
- Default and system-managed categories
- Saved card support using tokenized card data
- Prisma ORM with MySQL
- React frontend with a Vite setup
- React
- TypeScript
- Vite
- React Router
- Axios
- Node.js
- Express
- Prisma
- MySQL
- JWT
- bcrypt
- Helmet
- Express Rate Limit
- QR Code generation
insightpay/
├── backend/
│ ├── prisma/
│ │ ├── migrations/
│ │ └── schema.prisma
│ └── src/
│ ├── features/
│ │ ├── auth/
│ │ ├── cards/
│ │ ├── categories/
│ │ ├── qr/
│ │ ├── transactions/
│ │ └── wallet/
│ ├── middlewares/
│ ├── utils/
│ ├── app.js
│ └── server.js
│
└── frontend/
└── src/
├── app/
├── features/
├── pages/
└── shared/Make sure you have the following installed:
- Node.js
- MySQL
- npm
cd backend
npm installCreate a .env file inside the backend directory:
DATABASE_URL="mysql://USER:PASSWORD@localhost:3306/insightpay"
JWT_SECRET="your_jwt_secret"
QR_SECRET="your_qr_secret"
PORT=5000Run Prisma migrations:
npx prisma migrate deployGenerate Prisma Client:
npx prisma generateStart the backend server:
npm run devThe backend runs on:
http://localhost:5000cd frontend
npm install
npm run devThe frontend runs on the URL shown in the terminal, usually:
http://localhost:5173/auth- user authentication/wallet- wallet balance, add money, send money, transaction history/transactions- transaction management/categories- transaction categories/cards- saved card operations/qr- QR payment generation, validation, and confirmation
InsightPay uses Prisma with MySQL. The main models include:
UserTransactionCategoryCard
Transactions support different types and methods, including manual wallet activity and QR-based payments.