PayGuard is a full-stack digital wallet application built with React, Node.js, Express, and PostgreSQL. It allows users to register securely, authenticate using JWT, transfer money between users and view transaction history through a clean and responsive interface.
- User Registration
- Secure Login
- Password Hashing using bcrypt
- JWT Authentication
- Protected Routes
- Automatic wallet creation on registration
- View current wallet balance
- Display Account Number and User ID
- Transfer money between users
- Balance validation
- Prevent invalid transactions
- Atomic database transactions using PostgreSQL
- View recent transactions
- Sent & Received transaction indicators
- Transaction timestamp
- Account information
- Modern dark theme
- Responsive layout
- Reusable authentication components
- Custom PayGuard branding
- React.js
- React Router DOM
- Axios
- CSS3
- Node.js
- Express.js
- PostgreSQL
- JWT
- bcryptjs
Money_wallet/
β
βββ payguard-frontend/
β βββ src/
β β βββ components/
β β βββ pages/
β β βββ services/
β β βββ assets/
β β
β βββ public/
β
βββ routes/
βββ middleware/
βββ db.js
βββ server.js
βββ package.json
git clone https://github.com/Ayush9545/Digital_Money.gitcd PayGuard
Install dependencies
npm installCreate a .env file
PORT=3000
JWT_SECRET=your_secret_key
DB_USER=your_database_user
DB_PASSWORD=your_database_password
DB_HOST=localhost
DB_PORT=5432
DB_NAME=payguardStart the backend
npm startcd payguard-frontend
npm install
npm run devThe project uses PostgreSQL.
Main Tables:
- Users
- Wallets
- Transactions
- User registers
- Password is hashed using bcrypt
- User logs in
- JWT token is generated
- Token stored in Local Storage
- Protected routes verify JWT
- Authorized users access dashboard
Sender
β
JWT Verification
β
Balance Check
β
PostgreSQL Transaction
β
Deduct Balance
β
Add Balance
β
Create Transaction Record
β
Commit
- Account Number based transfers
- Profile page
- Password reset
- Admin dashboard
Ayush Gotefode
GitHub: https://github.com/Ayush9545
LinkedIn: https://www.linkedin.com/in/ayushgotefode/