Skip to content

salik702/Bank-Management

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

14 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation


πŸ“Œ Overview

World Bank Management System is a full-featured banking application combining secure authentication, real-time transactions, and a modern UI. Built with Python OOP and Streamlit, it delivers a polished banking experience with PIN-based security, live balance updates, and full account management β€” all backed by a lightweight JSON database.

Designed as a practical demonstration of clean OOP architecture paired with a production-style Streamlit front end β€” no heavy framework, no external database, fully self-contained.


✨ Features

πŸ” Security

  • PIN-based authentication (4-digit)
  • Session-based access control
  • Input validation on every transaction
  • Confirmed, irreversible account deletion

πŸ’° Transactions

  • Deposit funds ($1 – $10,000 per transaction)
  • Withdraw with live balance validation
  • Instant balance updates on the dashboard
  • Transaction limits to prevent abuse

πŸ‘€ Account Management

  • Unique account number on signup
  • Create / view / update / delete account
  • Editable name, email, and PIN
  • Persistent JSON-backed storage

πŸ“Š Dashboard & UI

  • Real-time balance & account metrics
  • Quick-action shortcuts
  • Dark glassmorphism theme
  • Fully responsive layout with animations

🧱 System Architecture

flowchart LR
    A["User"] --> B["Login / Create Account"]
    B --> C{"PIN Valid?"}
    C -- No --> B
    C -- Yes --> D["Dashboard"]
    D --> E["Deposit"]
    D --> F["Withdraw"]
    D --> G["Update Profile"]
    D --> H["Delete Account"]
    E --> I[("data.json")]
    F --> I
    G --> I
    H --> I
Loading

πŸ› οΈ Tech Stack

OOP principles applied: Encapsulation Β· Inheritance Β· Polymorphism Β· Abstraction


πŸ“ Project Structure

Bank-Management-System/
β”œβ”€β”€ app.py                  # Main Streamlit application
β”œβ”€β”€ Bank Management.py      # Core OOP implementation
β”œβ”€β”€ data.json                # JSON database (auto-generated)
└── README.md

πŸ”§ Installation

git clone https://github.com/SalikAhmad702/Bank-Management-System.git
cd Bank-Management-System

python -m venv venv

# Windows
venv\Scripts\activate
# macOS/Linux
source venv/bin/activate

pip install -r requirements.txt
streamlit run app.py

requirements.txt

streamlit==1.28.0
plotly==5.17.0
pandas==2.0.3
streamlit-option-menu==0.3.6
Pillow==10.1.0

πŸ“– Usage

Action Steps
Create Account Sidebar β†’ fill details β†’ save your account number β†’ log in
Deposit Login β†’ Deposit β†’ enter PIN + amount β†’ confirm
Withdraw Login β†’ Withdraw β†’ enter PIN + amount β†’ system validates balance
Update Profile My Details β†’ Update β†’ change name, email, or PIN
Delete Account Delete Account β†’ enter PIN β†’ type DELETE to confirm

πŸ“Š API Reference

Method Parameters Returns Description
create_account name, age, email, pin (bool, str) Creates a new account
deposit_money account_no, pin, amount (bool, str) Deposits funds
withdraw_money account_no, pin, amount (bool, str) Withdraws funds
get_user_details account_no, pin (dict, str) Retrieves user info
update_details account_no, pin, name, email, new_pin (bool, str) Updates profile
delete_account account_no, pin (bool, str) Deletes account

Sample record (data.json)

{
  "name": "John Doe",
  "age": 25,
  "email": "john@example.com",
  "pin": 1234,
  "accountNo": "AbC12!3",
  "balance": 5000
}

πŸ—ΊοΈ Roadmap

  • Account creation & PIN auth
  • Deposit / withdraw
  • Profile management & dashboard
  • Transaction history
  • Email notifications & PDF statements
  • Interest calculation & multiple account types
  • PostgreSQL migration + Docker deployment
  • Two-factor authentication

🀝 Contributing

Contributions are welcome β€” especially transaction history, encryption, and unit tests.

git checkout -b feature/your-improvement
git commit -m "feat: describe your change"
git push origin feature/your-improvement

Then open a pull request.


πŸ“„ License

This project is free and open source β€” no license restrictions.

  • βœ… Free to use, modify, and distribute
  • βœ… Free for personal, academic, and commercial use
  • βœ… No attribution required
  • ⚠️ Provided "as-is" without warranty

πŸ“§ Lets Connect

Built with obsession by Salik Ahmad 🏦


Footer Typing



About

A full-featured Bank Management System with Python OOP backend and Streamlit frontend. Securely manage accounts with PIN-based authentication, perform deposits and withdrawals, track balances, and manage user profiles with an intuitive, glassmorphism UI design.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages