0% found this document useful (0 votes)
7 views11 pages

Bank Management System Project Report

The document is a Python script that generates a PDF report for a bank management system project. It includes various sections such as a title page, certificate of completion, acknowledgements, table of contents, introduction, system requirements, project features, algorithms, source code, testing, and conclusion. The report is structured to provide a comprehensive overview of the project, its functionalities, and the technologies used.

Uploaded by

Ojal R෴
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)
7 views11 pages

Bank Management System Project Report

The document is a Python script that generates a PDF report for a bank management system project. It includes various sections such as a title page, certificate of completion, acknowledgements, table of contents, introduction, system requirements, project features, algorithms, source code, testing, and conclusion. The report is structured to provide a comprehensive overview of the project, its functionalities, and the technologies used.

Uploaded by

Ojal R෴
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

from [Link].

pagesizes import letter

from [Link] import SimpleDocTemplate, Paragraph, Spacer, PageBreak, Table, TableStyle,


Preformatted

from [Link] import getSampleStyleSheet, ParagraphStyle

from [Link] import TA_CENTER, TA_JUSTIFY, TA_LEFT

from [Link] import colors

def create_bank_report(filename):

doc = SimpleDocTemplate(filename, pagesize=letter,

rightMargin=72, leftMargin=72,

topMargin=72, bottomMargin=50)

Story = []

styles = getSampleStyleSheet()

# --- Custom Styles ---

title_style = ParagraphStyle('Title', parent=styles['Heading1'], alignment=TA_CENTER, fontSize=26,


spaceAfter=20)

subtitle_style = ParagraphStyle('Subtitle', parent=styles['Heading2'], alignment=TA_CENTER,


fontSize=18, spaceAfter=40)

header_style = ParagraphStyle('Header', parent=styles['Heading2'], fontSize=16, spaceAfter=12,


color=[Link])

normal_style = ParagraphStyle('Normal_Justified', parent=styles['Normal'], alignment=TA_JUSTIFY,


fontSize=12, leading=16, spaceAfter=12)

code_style = ParagraphStyle('Code', parent=styles['Code'], fontSize=8.5, leading=11,


fontName='Courier', spaceAfter=10)

# ================= PAGE 1: TITLE PAGE =================

[Link](Spacer(1, 80))

[Link](Paragraph("A COMPUTER SCIENCE PROJECT", subtitle_style))

[Link](Spacer(1, 10))

[Link](Paragraph("ON", subtitle_style))

[Link](Spacer(1, 10))

[Link](Paragraph("<b>BANK MANAGEMENT SYSTEM</b>", title_style))


[Link](Spacer(1, 80))

[Link](Paragraph("<i>Designed to automate banking transactions and user account


management using Python</i>", normal_style))

[Link](Spacer(1, 80))

# Details

[Link](Paragraph("<b>Submitted By:</b><br/>[Your Name]<br/>Roll No: [Your Roll


No]<br/>Class: XII / [Link]", styles['Normal']))

[Link](Spacer(1, 20))

[Link](Paragraph("<b>Under the Guidance of:</b><br/>[Teacher's Name]<br/>Dept. of


Computer Science", styles['Normal']))

[Link](PageBreak())

# ================= PAGE 2: CERTIFICATE =================

[Link](Paragraph("Certificate of Completion", title_style))

[Link](Spacer(1, 30))

[Link](Paragraph("This is to certify that <b>[Your Name]</b>, a student of class [Class


Name], has successfully completed the project on the topic <b>'Bank Management System'</b>
under my supervision.", normal_style))

[Link](Paragraph("During the tenure of this project, the student has shown great interest
and completed the project with diligence. The project fulfills the requirements of the computer
science curriculum.", normal_style))

[Link](Spacer(1, 80))

[Link](Paragraph("__________________________", styles['Normal']))

[Link](Paragraph("Internal Examiner", styles['Normal']))

[Link](Spacer(1, 30))

[Link](Paragraph("__________________________", styles['Normal']))

[Link](Paragraph("Principal / HOD", styles['Normal']))

[Link](PageBreak())
# ================= PAGE 3: ACKNOWLEDGEMENT =================

[Link](Paragraph("Acknowledgement", title_style))

[Link](Spacer(1, 20))

[Link](Paragraph("I would like to express my sincere gratitude to my Computer Science


teacher, <b>[Teacher Name]</b>, for their vital support, guidance, and encouragement, without
which this project would not have come to fruition.", normal_style))

[Link](Paragraph("I am also thankful to our Principal for providing the necessary facilities in
the computer lab. Finally, I would like to thank my parents and friends for their help in debugging
and documenting this system.", normal_style))

[Link](PageBreak())

# ================= PAGE 4: TABLE OF CONTENTS =================

[Link](Paragraph("Table of Contents", title_style))

toc_data = [

["#", "Topic", "Pg No"],

["1", "Introduction", "5"],

["2", "System Requirements", "6"],

["3", "Project Features & Modules", "7"],

["4", "Flowchart & Algorithm", "8"],

["5", "Source Code - Setup", "9"],

["6", "Source Code - Transactions", "10"],

["7", "Testing & Output", "11"],

["8", "Conclusion & Bibliography", "12"]

t = Table(toc_data, colWidths=[40, 320, 60])

[Link](TableStyle([

('BACKGROUND', (0, 0), (-1, 0), [Link]),

('TEXTCOLOR', (0, 0), (-1, 0), [Link]),

('ALIGN', (0, 0), (-1, -1), 'LEFT'),

('FONTNAME', (0, 0), (-1, 0), 'Helvetica-Bold'),

('BOTTOMPADDING', (0, 0), (-1, 0), 12),

('GRID', (0, 0), (-1, -1), 1, [Link])


]))

[Link](t)

[Link](PageBreak())

# ================= PAGE 5: INTRODUCTION =================

[Link](Paragraph("1. Introduction", header_style))

[Link](Paragraph("Banking is the backbone of any economy. In the digital age, manual


banking—ledger books, physical passbooks, and token systems—has become obsolete due to
inefficiency and the high risk of human error. The <b>Bank Management System (BMS)</b> is a
software attempt to simulate a real-world banking environment.", normal_style))

[Link](Paragraph("<b>Project Overview:</b>", styles['Heading3']))

[Link](Paragraph("This project utilizes Python's file handling capabilities to create a


persistent database of customers. It allows users to create accounts, deposit money, withdraw funds,
and check their balances securely from a command-line interface.", normal_style))

[Link](Paragraph("<b>Problem Statement:</b>", styles['Heading3']))

[Link](Paragraph("Manual banking systems suffer from:<br/>1. Slow transaction


processing.<br/>2. Difficulty in maintaining historical records.<br/>3. Lack of immediate data
retrieval.<br/>This software addresses these issues by automating the calculation and retrieval
processes.", normal_style))

[Link](PageBreak())

# ================= PAGE 6: REQUIREMENTS =================

[Link](Paragraph("2. System Requirements", header_style))

[Link](Paragraph("<b>2.1 Hardware Specification:</b>", styles['Heading3']))

[Link](Paragraph("The system is designed to be lightweight and efficient:", normal_style))

[Link](Paragraph("* Processor: Intel i3 or AMD Ryzen 3 (or higher)<br/>* RAM: 4 GB


DDR4<br/>* Hard Disk: 500 MB Free Space<br/>* Input Device: Standard Keyboard", normal_style))

[Link](Spacer(1, 10))

[Link](Paragraph("<b>2.2 Software Specification:</b>", styles['Heading3']))


[Link](Paragraph("* OS: Windows 10/11, Linux (Ubuntu), or macOS<br/>* Language:
Python 3.x<br/>* Libraries: Random (for Account No generation), OS (for file management).",
normal_style))

[Link](Spacer(1, 10))

[Link](Paragraph("<b>2.3 Feasibility Study:</b>", styles['Heading3']))

[Link](Paragraph("<b>Technical Feasibility:</b> The project uses standard Python libraries,


making it highly feasible to develop without external costs.<br/><b>Operational Feasibility:</b> The
interface is menu-driven and simple, requiring no special training for the user.", normal_style))

[Link](PageBreak())

# ================= PAGE 7: FEATURES =================

[Link](Paragraph("3. Project Features", header_style))

[Link](Paragraph("The Bank Management System is divided into several logical modules:",


normal_style))

features = [

"<b>1. Account Creation:</b> Generates a unique 5-digit Account Number automatically and
saves User Name, Type (Savings/Current), and Initial Balance.",

"<b>2. Deposit Module:</b> Accepts an Account Number and Amount. It verifies the account
exists and updates the balance safely.",

"<b>3. Withdrawal Module:</b> Checks for sufficient funds before allowing a withdrawal.
Prevents negative balances.",

"<b>4. Balance Enquiry:</b> Fetches and displays the current financial status of a specific user.",

"<b>5. Data Persistence:</b> Uses a text file ('[Link]') to ensure data is not lost when the
program closes."

for feat in features:

[Link](Paragraph(feat, normal_style))

[Link](Spacer(1, 10))

[Link](Paragraph("<b>Future Enhancements:</b>", styles['Heading3']))

[Link](Paragraph("In the future, this system can include Loan Processing, Interest
Calculation (Simple/Compound), and a GUI using Tkinter.", normal_style))
[Link](PageBreak())

# ================= PAGE 8: ALGORITHM =================

[Link](Paragraph("4. Flowchart & Algorithm", header_style))

[Link](Paragraph("<b>Algorithm: Main Menu Loop</b>", styles['Heading3']))

steps = [

"Step 1: Start",

"Step 2: Initialize or Load '[Link]'.",

"Step 3: Display Menu (1. New Acc, 2. Deposit, 3. Withdraw, 4. Balance, 5. Exit)",

"Step 4: Read User Choice 'C'.",

"Step 5: If C == 1 -> Call create_account()",

"Step 6: If C == 2 -> Call deposit_amount()",

"Step 7: If C == 3 -> Call withdraw_amount()",

"Step 8: If C == 4 -> Call check_balance()",

"Step 9: If C == 5 -> Stop",

"Step 10: Go to Step 3."

for step in steps:

[Link](Paragraph(step, normal_style))

[Link](Spacer(1, 15))

[Link](Paragraph("<i>[Space Reserved for Flowchart Diagram]</i>", styles['Heading3']))

[Link](Paragraph("(In a physical report, students should draw a flowchart here showing the
decision diamonds for the menu selection.)", normal_style))

[Link](PageBreak())

# ================= PAGE 9: CODE PART 1 =================

[Link](Paragraph("5. Source Code (Setup)", header_style))

[Link](Paragraph("Below is the Python code used to initialize the system and handle
account creation.", normal_style))
code_1 = """

import os

import random

data_file = "[Link]"

def save_account(acc_no, name, acc_type, balance):

with open(data_file, "a") as f:

[Link](f"{acc_no},{name},{acc_type},{balance}\\n")

def create_account():

print("\\n--- OPEN NEW ACCOUNT ---")

name = input("Enter Applicant Name: ")

acc_type = input("Account Type (Savings/Current): ")

balance = input("Initial Deposit Amount: ")

# Generate random 5-digit Account No

acc_no = [Link](10000, 99999)

save_account(acc_no, name, acc_type, balance)

print(f"\\nAccount Created Successfully!")

print(f"Your Account Number is: {acc_no}")

print("Please note this for future transactions.")

"""

[Link](Preformatted(code_1, code_style))

[Link](PageBreak())

# ================= PAGE 10: CODE PART 2 =================

[Link](Paragraph("6. Source Code (Transactions)", header_style))

code_2 = """
def update_balance(target_acc, amount, operation):

# Reads all lines, updates specific acc, writes back

import os

updated_data = []

found = False

if not [Link](data_file):

print("No records found.")

return

with open(data_file, "r") as f:

lines = [Link]()

for line in lines:

details = [Link]().split(",")

acc_no = int(details[0])

curr_bal = float(details[3])

if acc_no == target_acc:

found = True

if operation == "deposit":

curr_bal += amount

elif operation == "withdraw":

if curr_bal >= amount:

curr_bal -= amount

else:

print("Insufficient Balance!")

updated_data.append(line)

continue

# Reconstruct line

new_line = f"{details[0]},{details[1]},{details[2]},{curr_bal}\\n"
updated_data.append(new_line)

print(f"Transaction Successful. New Balance: {curr_bal}")

else:

updated_data.append(line)

if found:

with open(data_file, "w") as f:

[Link](updated_data)

else:

print("Account Number not found.")

"""

[Link](Preformatted(code_2, code_style))

[Link](PageBreak())

# ================= PAGE 11: TESTING =================

[Link](Paragraph("7. Testing & Validation", header_style))

[Link](Paragraph("The system was tested with various inputs to ensure data integrity and
error handling.", normal_style))

# Test Table

test_data = [

["Test Case", "Input Data", "Expected Result", "Status"],

["Create Acc", "Name: Rohan, Type: S, Bal: 5000", "Acc Created & No. displayed", "Pass"],

["Deposit", "Acc: [Valid], Amt: 2000", "Bal increases by 2000", "Pass"],

["Withdraw", "Acc: [Valid], Amt: 999999", "Error: Insufficient Funds", "Pass"],

["Invalid Acc", "Acc: 00000", "Error: Account not found", "Pass"]

t2 = Table(test_data, colWidths=[80, 150, 130, 50])

[Link](TableStyle([

('GRID', (0,0), (-1,-1), 1, [Link]),

('BACKGROUND', (0,0), (-1,0), [Link]),


('FONTNAME', (0,0), (-1,0), 'Helvetica-Bold'),

]))

[Link](t2)

[Link](Spacer(1, 20))

[Link](Paragraph("<b>Sample Output Screen:</b>", styles['Heading3']))

screen_output = """

1. Create Account

2. Deposit Amount

3. Withdraw Amount

4. Exit

> Enter Choice: 1

--- OPEN NEW ACCOUNT ---

Enter Name: Sarah Jones

Account Type: Savings

Initial Deposit: 1000

Account Created Successfully!

Your Account Number is: 45213

"""

[Link](Preformatted(screen_output, code_style))

[Link](PageBreak())

# ================= PAGE 12: CONCLUSION =================

[Link](Paragraph("8. Conclusion", header_style))

[Link](Paragraph("The 'Bank Management System' successfully demonstrates the use of


Python for handling critical financial data. It minimizes manual effort and ensures that records are
stored digitally and securely.", normal_style))

[Link](Paragraph("By working on this project, I gained a deeper understanding of:",


normal_style))
[Link](Paragraph("- <b>File I/O:</b> Reading and writing complex strings to text files.<br/>-
<b>String Manipulation:</b> Splitting and joining CSV-style data.<br/>- <b>Logical Constraints:</b>
Ensuring a user cannot withdraw more than they have.", normal_style))

[Link](Spacer(1, 30))

[Link](Paragraph("<b>Bibliography</b>", styles['Heading3']))

[Link](Paragraph("1. Python 3.10 Documentation<br/>2. 'Automate the Boring Stuff with


Python' by Al Sweigart<br/>3. GeeksForGeeks Python Tutorials<br/>4. CBSE Computer Science
Textbook Class XII", normal_style))

[Link](Story)

print(f"PDF Generated: {filename}")

if __name__ == "__main__":

create_bank_report("Bank_Management_System_Report.pdf")

You might also like