Skip to content

Latest commit

 

History

4 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

💸 UPI Wallet Engine (Java)

A Java-based console application that simulates a UPI Wallet System using clean OOPS principles, layered architecture, and service-based design.

This project demonstrates how real-world digital wallet systems work internally, including user management, wallet balance handling, secure PIN-based transactions, and transaction history tracking.


🚀 Features

  • 👤 Create User Account
  • 💰 Add Money to Wallet
  • 🔎 View Wallet Balance
  • 🔐 Send Money with PIN Verification
  • 🔁 Transfer Money Between Users
  • 📜 View Transaction History
  • 🧱 Clean Layered Architecture (Model, Service, Util, Main)
  • 🛡️ Basic Security using PIN Authentication

🛠️ Technologies & Concepts Used

  • Java
  • OOPS (Encapsulation, Abstraction, Composition)
  • Collections Framework (HashMap, ArrayList)
  • Service Layer Architecture
  • In-Memory Data Storage
  • Package-based Project Structure
  • Git & GitHub

🏗️ Project Structure

UPI-Wallet-Engine-Java/
 ├── Main.java
 ├── Model/
 │    ├── User.java
 │    ├── Wallet.java
 │    └── transaction.java
 ├── service/
 │    ├── UserService.java
 │    └── WalletService.java
 ├── util/
 │    └── DataStore.java
 ├── .gitignore
 └── Readme.md

▶️ How to Run the Project

1️⃣ Clone the repository:

git clone https://github.com/pranav440/UPI-Wallet-Engine-Java.git

2️⃣ Open in VS Code / IntelliJ / Eclipse

3️⃣ Run:

Main.java

🧪 How the System Works

  1. Create users using name, mobile number, and PIN

  2. Add money to wallet

  3. Send money to another user (PIN required)

  4. System checks:

    • Sender exists
    • Receiver exists
    • PIN is correct
    • Balance is sufficient
  5. Transaction is recorded in history

  6. You can view all transactions anytime


🧠 Core Concepts Implemented

  • Encapsulation (User controls PIN verification)
  • Separation of Concerns (Main, Service, Model, Util)
  • In-memory Database using HashMap
  • Business Logic Layer
  • Transaction Logging System

📈 Future Improvements

  • 💾 File-based data persistence
  • 🔒 Account lock after 3 wrong PIN attempts
  • 📊 Stream API based transaction reports
  • 🧾 Transaction filtering (date-wise, user-wise)
  • 🌐 Web version using Spring Boot
  • 🗄️ Database integration (MySQL)

👨‍💻 Author

Pranav Ganorkar Java Developer | Backend Enthusiast 🚀


⭐ If you like this project

Give it a ⭐ on GitHub and feel free to fork and improve it!


About

A Java-based UPI Wallet Simulation System with user management, secure PIN verification, money transfer, and transaction history.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages