Skip to content

Ayush9545/Digital_Money

Repository files navigation

πŸ›‘οΈ PayGuard

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.


πŸš€ Features

πŸ” Authentication

  • User Registration
  • Secure Login
  • Password Hashing using bcrypt
  • JWT Authentication
  • Protected Routes

πŸ’° Wallet

  • Automatic wallet creation on registration
  • View current wallet balance
  • Display Account Number and User ID

πŸ’Έ Money Transfer

  • Transfer money between users
  • Balance validation
  • Prevent invalid transactions
  • Atomic database transactions using PostgreSQL

πŸ“œ Transaction History

  • View recent transactions
  • Sent & Received transaction indicators
  • Transaction timestamp
  • Account information

🎨 User Interface

  • Modern dark theme
  • Responsive layout
  • Reusable authentication components
  • Custom PayGuard branding

πŸ› οΈ Tech Stack

Frontend

  • React.js
  • React Router DOM
  • Axios
  • CSS3

Backend

  • Node.js
  • Express.js
  • PostgreSQL
  • JWT
  • bcryptjs

πŸ“‚ Project Structure

Money_wallet/
β”‚
β”œβ”€β”€ payguard-frontend/
β”‚   β”œβ”€β”€ src/
β”‚   β”‚   β”œβ”€β”€ components/
β”‚   β”‚   β”œβ”€β”€ pages/
β”‚   β”‚   β”œβ”€β”€ services/
β”‚   β”‚   └── assets/
β”‚   β”‚
β”‚   └── public/
β”‚
β”œβ”€β”€ routes/
β”œβ”€β”€ middleware/
β”œβ”€β”€ db.js
β”œβ”€β”€ server.js
└── package.json

βš™οΈ Installation

Clone the repository

git clone https://github.com/Ayush9545/Digital_Money.git
cd PayGuard

Backend Setup

Install dependencies

npm install

Create 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=payguard

Start the backend

npm start

Frontend Setup

cd payguard-frontend

npm install

npm run dev

πŸ—„οΈ Database

The project uses PostgreSQL.

Main Tables:

  • Users
  • Wallets
  • Transactions

πŸ” Authentication Flow

  1. User registers
  2. Password is hashed using bcrypt
  3. User logs in
  4. JWT token is generated
  5. Token stored in Local Storage
  6. Protected routes verify JWT
  7. Authorized users access dashboard

πŸ’Έ Transfer Flow

Sender

↓

JWT Verification

↓

Balance Check

↓

PostgreSQL Transaction

↓

Deduct Balance

↓

Add Balance

↓

Create Transaction Record

↓

Commit

πŸ“Έ Screenshots

Login Page

Screenshot 2026-06-26 at 5 42 59β€―PM

Register Page

Screenshot 2026-06-26 at 5 43 46β€―PM

Dashboard

Screenshot 2026-06-26 at 5 44 51β€―PM Screenshot 2026-06-26 at 5 45 10β€―PM

🎯 Future Improvements

  • Account Number based transfers
  • Profile page
  • Password reset
  • Admin dashboard

πŸ‘¨β€πŸ’» Author

Ayush Gotefode

GitHub: https://github.com/Ayush9545

LinkedIn: https://www.linkedin.com/in/ayushgotefode/


⭐ If you found this project helpful, consider giving it a star!

About

No description, website, or topics provided.

Resources

Stars

2 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors