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.
|
|
|
|
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
OOP principles applied: Encapsulation Β· Inheritance Β· Polymorphism Β· Abstraction
Bank-Management-System/
βββ app.py # Main Streamlit application
βββ Bank Management.py # Core OOP implementation
βββ data.json # JSON database (auto-generated)
βββ README.md
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.pyrequirements.txt
streamlit==1.28.0
plotly==5.17.0
pandas==2.0.3
streamlit-option-menu==0.3.6
Pillow==10.1.0
| 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 |
| 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
}- 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
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-improvementThen open a pull request.
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
