0% found this document useful (0 votes)
40 views38 pages

Mustafa Ip Project

Uploaded by

civicamir77
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
40 views38 pages

Mustafa Ip Project

Uploaded by

civicamir77
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 38

ST.

JOHN'S SENIOR SECONDARY SCHOOL & JUNIOR COLLEGE

INFORMATICS PRACTICES
PROJECT

TOPIC: BANK MANAGEMENT SYSTEM

NAME: MUSTAFA KUTUBUDDIN

CLASS/SEC: XII C

ROLL NUMBER: 12207

UNDER THE GUIDANCE OF: MRS.RUBY


Page 1 of 38
CERTIFICATE
This is to certify that Mustafa Kutubuddin, a
student of Class XII C, has successfully completed
the research on the INFORMATICS PRACTICES
PROJECT “Bank Management System” under
the guidance of Mrs. Ruby (subject teacher) during
the year 2024-2025 in partial fulfillment of the
practical examination. It is also certified that this
project is the individual work of the student and
can be submitted for evaluation. I certify that this
project is up to my expectations and as per the
guidelines issued by the CBSE.

Sign of Internal examiner:


Sign of External examiner:

Sign of Principal:
Sign of Student:
Page 2 of 38
Date of submission:

AKNOWLEDGEM
ENT
I am extremely thankful to my teacher Mrs.Ruby,
for the constant support, motivation and insights
provided throughout the project “BANK
MANAGEMENT SYSTEM”.
I sincerely appreciate our Senior Principal, Dr.
Nalini Wilson, for permitting access to the well-
equipped lab and the resources required for the
project.
My special thanks to my friends and family for
assisting me during the experiments and
measurements.
The encouragement from my teacher, principal and
friends was invaluable. I will always remain grateful
for their support.
Page 3 of 38
Mustafa Kutubuddin
XII C
Commerce

INDEX

Page 4 of 38
S.N Particulars Pag
O e
1. INTRODUCTION 6

2. Objectives of 8
Bank
Management
system
3. Problems faced by 10
offline Bank
Management
system
4. Introduction to 13
Python

5. Introduction to 16
CSV

6. MINIMUM SYSTEM 20
REQUIREMENTS

7. SOURCE 21
CODE+DATA FILE

Page 5 of 38
8. OUTPUT 30
INTRODUCTIO
N
to Bank Management Using Python and SQL in
Informatics Practices:

Bank management involves the systematic handling of


financial operations, customer data, and transactional
processes, all of which require accuracy, security, and
efficiency. In today's digital world, informatics plays a key
role in transforming traditional banking systems into
smart, automated solutions. Python and SQL are two
powerful tools used to manage these banking processes
efficiently, leveraging their respective strengths in data
handling, automation, and backend support.

Python, a versatile and easy-to-learn programming


language, is commonly used for building applications that
automate various banking operations, such as customer
account management, transaction processing, and fraud
detection. It provides libraries and frameworks like
Pandas, NumPy, and Flask that help in data analysis,
computation, and web development. Python’s ability to
work with large datasets, APIs, and integrate with other

Page 6 of 38
systems makes it an ideal choice for building robust bank
management systems.

On the other hand, SQL (Structured Query Language) is


the backbone of database management. It allows efficient
storage, retrieval, and manipulation of data, which is
critical for banking systems where information such as
customer records, account balances, and transaction logs
must be stored securely. SQL’s querying capabilities
ensure that the data can be accessed in real time,
ensuring that banking operations such as deposits,
withdrawals, and balance checks are processed swiftly
and accurately.

Together, Python and SQL form a strong foundation for


informatics practices in bank management. Python can
automate tasks such as generating financial reports or
monitoring transactions for fraud, while SQL ensures the
secure storage and retrieval of the necessary data. By
combining these tools, informatics professionals can build
efficient, reliable, and scalable systems to manage
banking operations, making them essential components
in the modernization of financial institutions.

Page 7 of 38
OBJECTIVES OF BANK
MANAGEMENT SYSTEM:

1. Automate Core Banking Operations:

o Streamline essential banking functions such as account


management, transactions (deposits, withdrawals,
transfers), and customer service, reducing manual
workload and errors.
2. Efficient Account Creation and Management:
o Provide a user-friendly interface for creating various
types of accounts (e.g., savings, current, fixed deposit
accounts) and managing their details securely and
efficiently.
o Ensure each account type follows predefined rules,
such as minimum balance requirements, interest rates,
and transaction limits.
3. Data Security and Privacy:
o Implement strong data protection mechanisms to
ensure that sensitive customer information, such as
personal details and account balances, is securely
stored and protected from unauthorized access.
4. Real-Time Transaction Processing:
o Enable real-time updates of account balances and
transaction histories, ensuring accurate and timely
processing of customer transactions.
5. Financial Reporting and Monitoring:
Page 8 of 38
o Provide tools for generating financial reports, including
transaction summaries, account balances, and financial
statements, enabling customers and bank
administrators to monitor account activity.
6. Fraud Detection and Prevention:
o Implement algorithms to detect unusual or suspicious
activities, such as abnormal transaction patterns, and
alert bank administrators to prevent fraud.
7. Compliance with Regulatory Standards:
o Ensure the bank management system adheres to local
banking regulations and industry standards, such as
KYC (Know Your Customer) and AML (Anti-Money
Laundering) requirements.
8. Customer Account Access and Control:
o Provide customers with secure access to their accounts
through online banking platforms or mobile
applications, enabling them to view balances, make
transactions, and manage their accounts
independently.
9. Enhanced Customer Experience:
o Provide a seamless and efficient user experience for
customers through intuitive interfaces, easy account
setup, and quick transaction processing, enhancing
overall customer satisfaction.

Page 9 of 38
Problems Faced by
Offline Bank
Management Systems:
1. Manual Data Entry Errors:
- Human errors during data entry can lead to inaccuracies in
customer records, transaction details, and financial reporting,
causing discrepancies and potential financial losses.

2. Lack of Real-Time Access:


- Offline systems do not provide real-time transaction
processing or account updates, leading to delays in services such
as balance inquiries, fund transfers, and account statements.

3. Data Loss and Security Issues:


- Offline systems rely heavily on physical records or local
databases, making them vulnerable to data loss due to hardware
failure, natural disasters, or theft.
- Lack of advanced encryption and security measures in offline
systems increases the risk of unauthorized access and data
breaches.

4. Limited Accessibility:
- Customers and bank staff can only access the system from the
physical bank location, leading to inconvenience for users who
require services outside of banking hours or remotely.

Page 10 of 38
5. Inefficient Customer Service:
- Without automation, customer service relies on manual
processes, which can slow down account creation, transaction
approvals, and response times, negatively impacting customer
satisfaction.

6. Difficulty in Managing Large Volumes of Data:


- As the bank grows, managing increasing volumes of customer
and transaction data manually becomes complex and prone to
errors. Offline systems lack scalability, leading to inefficiencies.

7. Time-Consuming Audits and Reconciliation:


- Reconciling financial statements and conducting audits require
manual checks in offline systems, which is time-consuming and
prone to discrepancies, increasing the risk of accounting errors.

8. Fraud Detection Limitations:


- Offline systems lack advanced algorithms for detecting
suspicious activities or fraud. Fraudulent transactions may go
unnoticed for extended periods due to the absence of real-time
monitoring tools.

9. Inconsistent Record Keeping:


- Data inconsistency can arise when multiple branches or
departments maintain separate records without synchronization,
leading to conflicting information and errors in account details.

Page 11 of 38
10. High Operational Costs:
- Offline systems often require extensive manual labor and
paperwork, leading to higher operational costs, including physical
storage, document management, and employee workload.

11.Delayed Financial Reporting:


- Generating financial reports, such as daily transaction
summaries or balance sheets, can be slow in offline systems due
to manual data collection and processing, leading to delayed
decision-making.

12. Compliance and Regulatory Challenges:


- Ensuring compliance with banking regulations (e.g., KYC, AML)
is difficult in offline systems due to manual processes. It increases
the risk of non-compliance, penalties, and regulatory issues.

By addressing these challenges through online, automated, and


digitized banking systems, banks can improve efficiency, data
accuracy, security, and customer satisfaction.

Page 12 of 38
BRIEF INTRODUCTION ON
PYTHON:
Python is a "high-level" (essentially human readable -
not machine code) general purpose opensource programming
language that is used in a wide variety of applications like
scientific computing, data analysis, web development and
artificial intelligence. Because it is open source there are vast
quantities of freely accessible libraries along containing code that
can be integrated into projects. There are also robust
programming communities of coders who freely share information
over the web and thus there is an ecosystem we can tap into and
potentially contribute to, as we develop our projects. Python will
not be the only programming language we will need to use in this
class, but it is an ideal language to learn coding with.
By a high level program language we mean it is not running the
hardware, but run in a virtual environment using the python
interpreter (note, we capitalize Python when we refer to the
language, and do not capitalize python when referring to the
interpreter, which is essentially the virtual environment it runs in).
Because of this, it can be run on a wide variety of platforms, like
Windows, MacOS, Linux, and Unix.
How was Python Created?
Python is a general-purpose interpreted high-level programming
language that was created in the Netherlands by the Dutch
programmer Guido Van Rossum in 1991. It started as a hobby
project for the programmer to avoid boredom and keep himself
busy during the Christmas season.
The name "Python" came from Guido's being a big fan of the
comedy troupe "Monty Python's Flying Circus" from the 1970s.

Page 13 of 38
Python was mainly developed to help programmers express
concepts in fewer lines of code and to make their code more
readable.

Python is a versatile language that is widely used in various


industries and domains. Here are some examples of real-world
projects or use cases where Python is commonly used:
1. Web Development:
1. Instagram: Instagram's backend is built using Python,
with a focus on scalability and performance.
2. Pinterest: Pinterest's web application is built using
Python, with a focus on handling large amounts of user-
generated content.
3. Dropbox: Dropbox's web application is built using
Python, with a focus on file sharing and
synchronization.
2. Data Analysis and Science:
1. NASA: NASA uses Python for data analysis and
visualization of large datasets, including astronomical
data and climate data.
2. Google: Google uses Python for data analysis and
machine learning tasks, including natural language
processing and computer vision.
3. Netflix: Netflix uses Python for data analysis and
recommendation systems, to personalize user
experiences.
3. Artificial Intelligence and Machine Learning:
1. TensorFlow: TensorFlow is an open-source machine
learning library developed by Google, which is built
using Python.

Page 14 of 38
2. Keras: Keras is a popular deep learning library that is
built on top of TensorFlow and Theano, and is widely
used for building neural networks.
3. OpenCV: OpenCV is a computer vision library that is
widely used for image and video processing, and is built
using Python.
4. Automation:
1. Automation Anywhere: Automation Anywhere is a
robotic process automation (RPA) platform that uses
Python to automate repetitive tasks.
2. Ansible: Ansible is an automation tool that uses Python
to automate IT tasks, such as configuration
management and deployment.
3. SaltStack: SaltStack is an automation platform that
uses Python to automate IT tasks, such as configuration
management and deployment.
5. Education:
1. Codecademy: Codecademy is an online learning
platform that uses Python to teach programming
concepts and skills.
2. Coursera: Coursera is an online learning platform that
uses Python to teach data science and machine
learning courses.
3. edX: edX is an online learning platform that uses
Python to teach computer science and data science
courses.
These are just a few examples of the many ways that Python is
used in real-world projects and use cases. Python's versatility,
ease of use, and large community make it a popular choice for a
wide range of application.

Page 15 of 38
BRIEF INTRODUCTION ON
CSV:
(comma separated value)
Structured data plays a critical role in data management and
information exchange, and the CSV file format is one of the
simplest formats for representing structured data. Whether you're
a data analyst or software developer, or you work with data in any
capacity, understanding what the CSV file format is, when it’s
useful and how it works is a fundamental skill.
A CSV is a commonly used file extension for spreadsheets. Even
software programs that don't look and feel like a spreadsheet
application frequently offer a CSV file type as an output file for
downloading a dataset (like a contact list, a supply list or a report
of results or actions). Why? Because CSVs are incredibly easy to
edit and share!
In this post, we dive into what (exactly) a CSV file type is, how
they're used in different software applications and how to create,
edit, export and import them
What is a CSV file?
“CSV” refers to the CSV file extension, meaning any file that ends
in ".csv." The .csv file extension stands for "comma-separated
value” file, and it's one of the most common outputs for any
spreadsheet program.
A comma-separated value file refers to a file where the data is
input as data separated by commas. A spreadsheet application

Page 16 of 38
converts those comma-separated pieces of data into cells in
tables to make them easier to read and edit.
In Windows, you can click on any file to see a preview of it in the
file explorer folder on the right. If you click on an Excel CSV file,
you can actually see what it looks like behind the scenes: A mess
of data separated by commas. Thank goodness for programs like
Microsoft Excel and Google Sheets, which make this data much
more manageable than just a block of text with a ton of commas!
The types of software that use the CSV file format
Many types of software use the CSV file format. The two most
common ways a CSV file would be used are inputting and
outputting. On the input side, a CSV file will be imported, bringing
data in to be utilized within a software program. As for outputting,
a CSV is a standard output file format because software users can
easily edit and share CSV file reports or datasets.
Let's look at some examples to better understand how software
utilizes CSV files.
Common use cases for importing CSV files
One of the most common reasons to import a CSV file in the
business world is to upload a list of customer contacts. You might
do this when onboarding data to a new email marketing software
like Active Campaign.
Another type of software that could require you to upload a list of
customer contacts would be a CRM like HubSpot or Nutshell.
Referral marketing software like Grow Surf could also require you
to upload customer lists to add customers to your referral
program so they can generate a unique referral link to share your
business with their friends.
There are, of course, numerous other datasets you might want to
upload beyond customer lists. For example, if you're an
ecommerce company, you might need to upload a list of your
product SKUs to an inventory management system or order
fulfillment software.
Page 17 of 38
Common use cases for exporting CSV files Not only do many
software programs input CSVs, but they also output them. A CSV
file format is a standard exporting format because it's well-
recognized and widely used. Its simplicity has led to its adoption
by so many programs that few software developers want to stray
from CSVs with a different file format when exporting spreadsheet
data. Some programs will give you the option of exporting CSV or
PDF, such as Gusto's custom report builder, but when it comes to
spreadsheet data, a CSV export is the most common file format.

Key benefits of CSV files


Why use CSV files? Let's take a look at the most important
benefits:
 Widely adopted: People within your organization will likely
be accustomed to using CSV files. Most importantly, this file
type is not unique to Macs or PCs but can be used by any
desktop device and operating system.
 Easy to organize and edit: CSV files are editable, and the
changes are not locked unless, of course, a user locks a
specific set of cells from editing. The good news is that,
unlike PDF downloads of spreadsheet data, CSVs can be
changed later.
 Utilized by many business software programs: Many
enterprise software programs rely on CSV imports for
onboarding user data. At the same time, plenty of programs
have CSVs as their primary output for reports.
 Used by major spreadsheet applications: When you use
CSV files, you can create and edit them in any major
spreadsheet application like Microsoft Excel or Google
Sheets.

Page 18 of 38
Evaluating Flat file for your business needs?
Reach out to our experts today to scope your data conversion,
onboarding and migration processes

How to open and edit a CSV file


Excel is the most commonly used spreadsheet application for
opening and editing CSV files. You can download a CSV file from
many software programs. If you have Excel installed on your
computer, your computer will automatically default to it as your
spreadsheet application. So, after downloading the CSV file, just
double-click to open it in Excel. If you already have it in a file
folder, you can simply double-click to open it. To edit any piece of
data, just click once on the cell that contains the data. You can
edit the cell content directly in that cell or in the area called fx,
which stands for "Excel Functions." In this area, you can write
standard characters and text or any functions and formulas you
want to use.

How to create a CSV file


Want to create a brand new CSV file? Here's how:
Open up Microsoft Excel and save a new file as a CSV. You can
then edit it, and it will continue to save as a CSV whenever you
click save.
The most common way to get started is to create the headings for
your columns. Let's say you want to create a contact information
list for the people on your team. You can make one column for
first names, another for last names, another for phone numbers,
and another for email addresses.

How to import a CSV file

Page 19 of 38
Thousands of software programs utilize CSV files. The CSV import
process will differ slightly for each one, but due to
the consumerization of enterprise tech, even business programs
should have easy-to-use CSV import features.
Most CSV importers follow this process:
 Select the file you want to upload: From your computer,
select the correct CSV file you want to import to your
software program.
 Match the columns to the appropriate fields: The next
step is to match the headings in your CSV columns to the
data fields used and understood by your software.
 Address any errors: A quality CSV importer should be able
to explain if anything goes wrong clearly.

Page 20 of 38
MINIMUM SYSTEM
REQUIREMENTS:

Minimum Hardware Specifications:


These specifications will do for the simplest Python tasks, such as
scripting, basic web development, and learning:
 Central Processing Unit (CPU): Any simple processor
would be sufficient for the execution of some very basic
Python scripts and small projects.
 RAM: 2 GB The lowest amount of memory required to have
a Python interpreter and editor opened without major slow-
downs.
 Storage: 10 GB of available hard-disk space, Sufficient
space to install Python, libraries, and for saving small project
files.
 Operating System: Windows 7, 8, or 10, macOS or a Linux:
Python is available for all major operating systems, but most
software developers prefer using it on the flexibility that
Linux-based distributions give.

Recommended Hardware Specifications for Demanding


Tasks:
 Processor: Multi-core, 2.5 GHz or above
 RAM: 8 GB (16 GB recommended for data-intensive tasks)
 Storage: 100 GB SSD or more
 Operating System: Latest version of Windows, macOS, or
Linux

Page 21 of 38
 These specifications ensure optimal performance for data
analysis, machine learning, and larger-scale projects,
enabling efficient multitasking, data management, and fast
processing.

SOURCE CODE:
import csv
import os

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("Enter 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")
Page 22 of 38
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):

Page 23 of 38
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**********************")
input("Press Enter To Continue: ")

def writeAccount():
account = Account()
account.createAccount()
writeAccountsFile(account)

def displayAll():
with open('accounts.csv', 'r') as csvfile:
reader = csv.DictReader(csvfile)
for row in reader:
print(row['accNo'], " ", row['name'], " ", row['type'], " ",
row['deposit'])

Page 24 of 38
def displaySp(num):
with open('accounts.csv', 'r') as csvfile:
reader = csv.DictReader(csvfile)
found = False
for row in reader:
if int(row['accNo']) == num:
print("Your account Balance is = ", row['deposit'])
found = True
if not found:
print("No existing record with this number")

def depositAndWithdraw(num1, num2):


with open('accounts.csv', 'r') as csvfile:
reader = csv.DictReader(csvfile)
mylist = []
for row in reader:
mylist.append(row)
for item in mylist:
if int(item['accNo']) == num1:
if num2 == 1:
amount = int(input("Enter the amount to deposit : "))
item['deposit'] = str(int(item['deposit']) + amount)
print("Your account is updated")
elif num2 == 2:
amount = int(input("Enter the amount to withdraw : "))

Page 25 of 38
if amount <= int(item['deposit']):
item['deposit'] = str(int(item['deposit']) - amount)
else:
print("You cannot withdraw larger amount")
with open('accounts.csv', 'w', newline='') as csvfile:
fieldnames = ['accNo', 'name', 'type', 'deposit']
writer = csv.DictWriter(csvfile, fieldnames=fieldnames)
writer.writeheader()
writer.writerows(mylist)

def deleteAccount(num):
with open('accounts.csv', 'r') as csvfile:
reader = csv.DictReader(csvfile)
mylist = []
for row in reader:
mylist.append(row)
newlist = []
for item in mylist:
if int(item['accNo']) != num:
newlist.append(item)
with open('accounts.csv', 'w', newline='') as csvfile:
fieldnames = ['accNo', 'name', 'type', 'deposit']
writer = csv.DictWriter(csvfile, fieldnames=fieldnames)
writer.writeheader()
writer.writerows(newlist)

Page 26 of 38
def modifyAccount(num):
with open('accounts.csv', 'r') as csvfile:
reader = csv.DictReader(csvfile)
mylist = []
for row in reader:
mylist.append(row)
for item in mylist:
if int(item['accNo']) == num:
item['name'] = input("Enter the account holder name : ")
item['type'] = input("Enter the account Type : ")
item['deposit'] = input("Enter the Amount : ")
with open('accounts.csv', 'w', newline='') as csvfile:
fieldnames = ['accNo', 'name', 'type', 'deposit']
writer = csv.DictWriter(csvfile, fieldnames=fieldnames)
writer.writeheader()
writer.writerows(mylist)

def writeAccountsFile(account):
with open('accounts.csv', 'a', newline='') as csvfile:
fieldnames = ['accNo', 'name', 'type', 'deposit']
writer = csv.DictWriter(csvfile, fieldnames=fieldnames)
if csvfile.tell() == 0:
writer.writeheader()

Page 27 of 38
writer.writerow({'accNo': str(account.accNo), 'name':
account.name, 'type': account.type, 'deposit':
str(account.deposit)})

# 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()

Page 28 of 38
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 : ")

DATA FILE
Page 29 of 38
Page 30 of 38
OUTPUT

Page 31 of 38
Page 32 of 38
Page 33 of 38
Page 34 of 38
Page 35 of 38
Page 36 of 38
BIBLIOGRAPHY

 SUMITA ARORA IP CLASS 11 textbook

 SUMITA ARORA IP CLASS 12 textbook

 www.teradata.com

 www.python.org

 www.flatfile.com

 www.fundrecs.com

 Google images

Page 37 of 38
THANK
YOU!

Page 38 of 38

You might also like