Python Banking Project [With Source Code] in 2020

The banking sector has many applications for programming and IT solutions. If you’re interested in working on a project for the banking sector, then you’ve come to the right place. In this article, we’ll talk about a detailed banking project in Python so you can get started with ease. We’ve shared source code for our project so you can take inspiration from the same and create a Python-based solution for a bank. Let’s begin. 

Prerequisites

Before you start working on the Python banking project we’ve discussed here, you should first be familiar with the following topics. This way, you wouldn’t face any difficulty while working on the project.

Programming in Python

To create a proper banking solution in Python, you should be familiar with the basics of this language. We also recommend that you understand how the code works before you copy it or start using it as a component in your project. Make sure that you know programming well. 

Experience in Working on Projects

You should have some experience in working on Python projects before working on this Python banking project. It’s not a beginner-level task and might cause you confusion at some instances if you’re inexperienced.

Database Management

A large section of our project focuses on database management. You’ll have to create a database for the banking solution to facilitate its functioning. You should be familiar with the basics of database management. 

Read: Career Opportunities in Python

Banking Project in Python

The Problem

Customer experience is an integral part of a bank’s operations. That’s why banks focus a lot on improving customer experience by removing hassles and enhancing the facilities they provide. Opening a new account in a bank usually requires a person to visit the bank, fill out a form, and submit the necessary papers. All of these tasks take up a lot of time and dampen the overall customer experience. Moreover, many people have to take time out of their schedules to go to a bank.

The Solution

You can solve this problem by creating a software solution where people can sign up and open a new account in a bank digitally. This way, the person wouldn’t have to visit the bank physically and thus, would save a lot of time and effort. The banking management system can also allow the user to make transactions, deposit and withdraw funds, and check the account balance. 

Your solution would need an admin section which would look after the users’ accounts and the overall wellbeing of the database. You’ll have to connect the software to a database which will store all user information in distinct storage.

How to Make the Project More Challenging

While this project is quite challenging, you can enhance its difficulty and take it a level further. To do so, you can add a layer of security, so the user’s data remains safe. Your software can have a login window where every user has to enter the password and username to access their accounts. You can also add a feature of opening multiple types of accounts. For example, banks offer Current accounts, Savings accounts, and others. Different accounts can have various facilities. 

Also Read: Python Tutorial

Source Code for Python Banking Project

Here’s source code for a banking project in Python. The following program has these features:

  • It allows users to open new accounts
  • Users can make transactions by entering the respective amounts
  • Users can check the balance of their accounts
  • Admin can view a list of users to see how many users there are along with their details

As you can see, it is quite basic, and you can add more functionalities according to your requirements. 

import pickle

import os

import pathlib

class Account :

   accNo = 0

   name = “

   deposit=0

   type = “

   def createAccount(self):

       self.accNo= int(input(“Enter the account no : “))

       self.name = input(“Enter the account holder name : “)

       self.type = input(“Ente the type of account [C/S] : “)

       self.deposit = int(input(“Enter The Initial amount(>=500 for Saving and >=1000 for current”))

       print(“\n\n\nAccount Created”)

   def showAccount(self):

       print(“Account Number : “,self.accNo)

       print(“Account Holder Name : “, self.name)

       print(“Type of Account”,self.type)

       print(“Balance : “,self.deposit)

   def modifyAccount(self):

       print(“Account Number : “,self.accNo)

       self.name = input(“Modify Account Holder Name :”)

       self.type = input(“Modify type of Account :”)

       self.deposit = int(input(“Modify Balance :”))

   def depositAmount(self,amount):

       self.deposit += amount  

   def withdrawAmount(self,amount):

       self.deposit -= amount  

   def report(self):

       print(self.accNo, ” “,self.name ,” “,self.type,” “, self.deposit)  

   def getAccountNo(self):

       return self.accNo

   def getAcccountHolderName(self):

       return self.name

   def getAccountType(self):

       return self.type

   def getDeposit(self):

       return self.deposit

def intro():

   print(“\t\t\t\t**********************”)

   print(“\t\t\t\tBANK MANAGEMENT SYSTEM”)

   print(“\t\t\t\t**********************”)

   print(“\t\t\t\tBrought To You By:”)

   print(“\t\t\t\tprojectworlds.in”)

   input()

def writeAccount():

   account = Account()

   account.createAccount()

   writeAccountsFile(account)

def displayAll():

   file = pathlib.Path(“accounts.data”)

   if file.exists ():

       infile = open(‘accounts.data’,’rb’)

       mylist = pickle.load(infile)

       for item in mylist :

           print(item.accNo,” “, item.name, ” “,item.type, ” “,item.deposit )

       infile.close()

   else :

       print(“No records to display”)

def displaySp(num):

   file = pathlib.Path(“accounts.data”)

   if file.exists ():

       infile = open(‘accounts.data’,’rb’)

       mylist = pickle.load(infile)

       infile.close()

       found = False

       for item in mylist :

           if item.accNo == num :

               print(“Your account Balance is = “,item.deposit)

               found = True

   else :

       print(“No records to Search”)

Get our free whitepaper!
Data Science in Healthcare
the next biggest thing
Download Now

   if not found :

       print(“No existing record with this number”)

def depositAndWithdraw(num1,num2):

   file = pathlib.Path(“accounts.data”)

   if file.exists ():

       infile = open(‘accounts.data’,’rb’)

       mylist = pickle.load(infile)

       infile.close()

       os.remove(‘accounts.data’)

       for item in mylist :

           if item.accNo == num1 :

               if num2 == 1 :

                   amount = int(input(“Enter the amount to deposit : “))

                   item.deposit += amount

                   print(“Your account is updted”)

               elif num2 == 2 :

                   amount = int(input(“Enter the amount to withdraw : “))

                   if amount <= item.deposit :

                       item.deposit -=amount

                   else :

                       print(“You cannot withdraw larger amount”)              

   else :

       print(“No records to Search”)

   outfile = open(‘newaccounts.data’,’wb’)

   pickle.dump(mylist, outfile)

   outfile.close()

   os.rename(‘newaccounts.data’, ‘accounts.data’)  

def deleteAccount(num):

   file = pathlib.Path(“accounts.data”)

   if file.exists ():

       infile = open(‘accounts.data’,’rb’)

       oldlist = pickle.load(infile)

       infile.close()

       newlist = []

       for item in oldlist :

           if item.accNo != num :

               newlist.append(item)

       os.remove(‘accounts.data’)

       outfile = open(‘newaccounts.data’,’wb’)

       pickle.dump(newlist, outfile)

       outfile.close()

       os.rename(‘newaccounts.data’, ‘accounts.data’)  

def modifyAccount(num):

   file = pathlib.Path(“accounts.data”)

   if file.exists ():

       infile = open(‘accounts.data’,’rb’)

       oldlist = pickle.load(infile)

       infile.close()

       os.remove(‘accounts.data’)

       for item in oldlist :

           if item.accNo == num :

               item.name = input(“Enter the account holder name : “)

               item.type = input(“Enter the account Type : “)

               item.deposit = int(input(“Enter the Amount : “))      

       outfile = open(‘newaccounts.data’,’wb’)

       pickle.dump(oldlist, outfile)

       outfile.close()

       os.rename(‘newaccounts.data’, ‘accounts.data’)

def writeAccountsFile(account) :  

   file = pathlib.Path(“accounts.data”)

   if file.exists ():

       infile = open(‘accounts.data’,’rb’)

       oldlist = pickle.load(infile)

       oldlist.append(account)

       infile.close()

       os.remove(‘accounts.data’)

   else :

       oldlist = [account]

   outfile = open(‘newaccounts.data’,’wb’)

   pickle.dump(oldlist, outfile)

   outfile.close()

   os.rename(‘newaccounts.data’, ‘accounts.data’)      

# start of the program

ch=”

num=0

intro()

while ch != 8:

   #system(“cls”);

   print(“\tMAIN MENU”)

   print(“\t1. NEW ACCOUNT”)

   print(“\t2. DEPOSIT AMOUNT”)

   print(“\t3. WITHDRAW AMOUNT”)

   print(“\t4. BALANCE ENQUIRY”)

   print(“\t5. ALL ACCOUNT HOLDER LIST”)

   print(“\t6. CLOSE AN ACCOUNT”)

   print(“\t7. MODIFY AN ACCOUNT”)

   print(“\t8. EXIT”)

   print(“\tSelect Your Option (1-8) “)

   ch = input()

   #system(“cls”);  

   if ch == ‘1’:

       writeAccount()

   elif ch ==’2′:

       num = int(input(“\tEnter The account No. : “))

       depositAndWithdraw(num, 1)

   elif ch == ‘3’:

       num = int(input(“\tEnter The account No. : “))

       depositAndWithdraw(num, 2)

   elif ch == ‘4’:

       num = int(input(“\tEnter The account No. : “))

       displaySp(num)

   elif ch == ‘5’:

       displayAll();

   elif ch == ‘6’:

       num =int(input(“\tEnter The account No. : “))

       deleteAccount(num)

   elif ch == ‘7’:

       num = int(input(“\tEnter The account No. : “))

       modifyAccount(num)

   elif ch == ‘8’:

       print(“\tThanks for using bank management system”)

       break

   else :

       print(“Invalid choice”)  

   ch = input(“Enter your choice : “)  

 

Learn More About Python

We hope you found this guide on doing a Python banking project useful. If you have any questions or suggestions, please let us know through the comment section. We’d love to hear from you. 

If you are curious about learning data science to be in the front of fast-paced technological advancements, check out upGrad & IIIT-B’s PG Diploma in Data Science.

Prepare for a Career of the Future

UPGRAD AND IIIT-BANGALORE'S PG DIPLOMA IN DATA SCIENCE
Enroll Today

Leave a comment

Your email address will not be published. Required fields are marked *

×
Download Whitepaper
Download Whitepaper
By clicking Download Whitepaper, you agree to our terms and conditions and our privacy policy.
Get our free whitepaper!
Data Science in Healthcare
the next biggest thing
Download Now
Aspire to be a Data Scientist
Download syllabus & join our Data Science Program and develop practical knowledge & skills.
Download syllabus
By clicking Download syllabus, I authorize upGrad and its representatives to contact me
via SMS / Email / Phone / WhatsApp / any other modes.
I agree to upGrad terms and conditions and our privacy policy.