codingwithnsh/Banking-System
A feature-rich, command-line banking application built with Python. This project simulates real-world banking operations including account management, transactions, card issuance, fixed deposits, loans with EMI processing, UPI transfers, and investment services. All data is managed and persisted locally using CSV files.
Banking System
A comprehensive, command-line interface (CLI) based banking application built entirely in Python. This project simulates a wide range of real-world banking operations, from basic account management to complex financial services like loans, fixed deposits, and investments. It's designed as a robust demonstration of Python programming for handling data, user interactions, and business logic in a console environment.
โจ Features
The system is packed with features, categorized for clarity:
๐ฆ Core Banking & Accounts
- Create New Account: Onboard new customers with input validation for details like name, phone, and PAN.
- Login System: Secure login using account number and a hashed password (SHA-256).
- Account Management: Search for accounts, view details, and update personal information (address, phone, password).
- Balance Operations: Deposit and withdraw funds.
- Fund Transfers: Transfer money securely between accounts within the bank.
๐ณ Cards, Payments & UPI
- Debit/Credit Cards: Issue new cards with randomly generated numbers, expiry dates, and CVVs.
- Card Management: View, block, unblock, and request replacement cards.
- UPI Services: Create and manage unique UPI IDs (
@advbank). - UPI Payments: Send money instantly using UPI IDs.
๐ฐ Loans & Deposits
- Fixed Deposits (FDs): Create FDs for various tenures with different interest rates.
- FD Management: View all active FDs and break them prematurely with a penalty calculation.
- Automatic FD Maturity: The system automatically processes matured FDs upon startup.
- Loan Services: Apply for Personal, Home, Education, and Vehicle loans.
- EMI Calculation: Automatically calculates the Equated Monthly Installment (EMI) for new loans.
- Loan Repayment: View loan status, pay monthly EMIs, or pay off the entire loan amount.
๐ Investments
- Diverse Portfolio: Make investments in Mutual Funds, Stocks, Gold, and Government Bonds.
- Investment Management: View your investment portfolio with simulated current values.
- Sell Investments: Sell active investments with calculated profit/loss.
๐งพ Utilities & Reporting
- Transaction History: View a list of the last 100 recent transactions for your account.
- Export Transactions: Export transaction history to either CSV or JSON format for record-keeping.
- Data Persistence: All account, transaction, and financial product data is saved locally in
.csvfiles.
๐ ๏ธ Technologies Used
- Language: Python 3
- Standard Libraries:
csv,os,random,datetime,hashlib,re,json
No external libraries are required to run this application.
๐ Getting Started
Follow these instructions to get a copy of the project up and running on your local machine.
Prerequisites
You need to have Python 3 installed on your system. You can download it from python.org.
Installation & Usage
-
Clone the repository:
git clone [https://github.com/codingwithnsh/Banking-System.git](https://github.com/codingwithnsh/Banking-System.git) cd advanced-cli-banking-system -
Run the application:
python main.py
-
How it Works:
- The script will start, and you can interact with it through the command line.
- All necessary data files (
banking.csv,transactions.csv, etc.) will be automatically created in the same directory if they don't exist.
๐ File Structure
The script will generate the following CSV files to store data: