0% found this document useful (0 votes)
5 views

Python Final Microproject

Python microproject
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
5 views

Python Final Microproject

Python microproject
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 13

Programming with Python (22616) ATM Management System

Microproject On

“ATM Management System”

Submitted By

Mangesh Kaware (33)

Guided By Mrs. K. G. Rout

Diploma Course in Computer Technology

(As per directives of I Scheme, MSBTE)

Sinhgad Institutes

Sinhgad Technical Education Society’s

SOU.VENUTAI CHAVAN POLYTECHNIC

PUNE – 411041

ACADEMIC YEAR 2023-2024

1
Programming with Python (22616) ATM Management System.

Maharashtra State Board of Technical


Education
Certificate
This is to certify that Mr. Mangesh Kaware with Roll No. 33 of Semester VI of
Diploma in Computer Technology of Institute Sou. Venutai Chavan
Polytechnic (Code: 0040) has completed the Micro-Project in Programming
with Python (22616) for the academic year 2023-2024 as prescribed in the
curriculum.

Place: SVCP, Pune Enrolment No: 2100400117

Date: Exam Seat No:

Mrs. K. G. Raut Mrs A. V. Kurkute Dr.(Mrs.) M. S. Jadhav

Course Teacher Head of Department Principal

2
Programming with Python (22616) ATM Management System.

Annexure – I

Micro-Project Proposal

“ATM Management System “

1.0 Aim of the Micro-Project:


The aim is to explore and analyze the pytho n different features to create ATM Management
System using it.

2.0 Intended Course Outcomes:

a. Display message on screen using Python script on IDE.


b. Develop python program to demonstrate use of Operators.
c. Develop functions for given problem.
d. Design classes for given problem.

3.0 Proposed methodology:

I. Study the various features of python and learn about it.


II. Learn in-depth various syntaxes of python language.
III.Conduct in-depth case studies on ATM system.
IV. Design structure of systems.
V. Examined and Implemented program to create ATM system.
VI. Prepare the final report.

3
Programming with Python (22616) ATM Management System.

4.0 Action Plan :

Sr. No. Planned Planned Name of


Finish Date Responsible Team
Details of Activity Start
members
Date
Study the various features of python
1 and learn about it. Mangesh Kaware

Learn in-depth various syntaxes of


2 python language. Mangesh Kaware

Conduct in-depth case studies on


3 Mangesh Kaware
ATM system.
4 Design structure of systems. Mangesh Kaware
Examined and Implemented program
5 Mangesh Kaware
to create ATM system.
6 Prepare the final report. Mangesh Kaware

5.0 Resources Required:

Sr. No. Resources required Specifications

1 Computer system Intel® Core™ i9-12900HX CPU, RAM 32 GB

2 Operating System Windows 11, 64 Bit Operating System

3 Software Microsoft Word , Notepad, Command Prompt

6.0 Team Members:

Sr No. Roll No. Name

1 33 Mangesh Kaware

Annexure–II

4
Programming with Python (22616) ATM Management System.

Micro-Project Proposal

“ATM Management System”

1.0 Rationale:

This ATM management system, with a cardHolder class and atm.py script, employs object-
oriented programming to model cardholders and manage transactions efficiently. It ensures data
integrity through encapsulation and offers a user-friendly interface for banking operations,
enhancing security and user experience. The system provides essential functionalities such as
deposit, withdrawal, and balance check, catering to the core needs of banking operations while
maintaining simplicity and reliability.

2.0 Aim of the Micro-Project:


The aim is to explore and analyze the python different features to create ATM Management
System
using it.

3.0 Course Outcomes Addressed:

a. Display message on screen using Python script on IDE.


b. Develop python program to demonstrate use of Operators.
c. Develop functions for given problem.
d. Design classes for given problem.

4.0 Literature Review:

A concise literature review on ATM system code in Python, covering various aspects:

5
Programming with Python (22616) ATM Management System.

1. Python Libraries/Frameworks:

Studies reveal a widespread adoption of Python libraries like Flask and Django for developing
ATM systems. Flask is praised for its simplicity, while Django offers a more comprehensive
framework. Researchers emphasize the importance of choosing the appropriate framework based
on project requirements.

2. Integration with Hardware:

Python's versatility in interfacing with hardware is evident in research showcasing its integration
with Raspberry Pi and Arduino platforms. Python's GPIO libraries and serial communication
capabilities make it a preferred choice for controlling and communicating with various hardware
components.

3. Security Considerations:

Security measures in Python-based ATM system are a focal point in the literature. Researchers
emphasize secure coding practices, SSL/TLS implementation, and the use of cryptographic
libraries. The community actively discusses the balance between security and performance in
Python-based systems.

4. Performance Assessments:

Performance assessments indicate that Python may face challenges in scenarios requiring real-
time processing. However, studies highlight optimizations using tools like Cython and Numba.
The choice of data structures and algorithms significantly impacts the overall performance of
Pythonbased ATM system.

6
Programming with Python (22616) ATM Management System.

5. Case Studies and Applications:

Real-world applications showcase Python's effectiveness in diverse domains. From IoT devices
to industrial control systems, Python is utilized in projects with varying complexities. Case
studies underline Python's role in rapid prototyping and development, facilitating innovation in
ATM system projects.

6. Community Support and Documentation:

The Python community's active involvement in supporting ATM system development is evident
in extensive documentation and vibrant forums. Open-source contributions and collaborative
problem-solving contribute to the robust ecosystem surrounding Python for ATM system
projects. In conclusion, the literature reflects Python's popularity in developing ATM systems,
highlighting strengths in flexibility, community support, and a balance between ease of use and
performance. Researchers emphasize the importance of careful framework selection, secure
coding practices, and optimization strategies to address specific project requirements.

5.0 Actual Methodology Followed:

a. Study the various features of python and learn about it.


b. Learn in-depth various syntaxes of python language.
c. Conduct in-depth case studies on ATM system.
d. Design structure of systems.
e. Examined and Implemented program to create ATM system.
f. Prepare the final report.

7
Programming with Python (22616) ATM Management System

6.1 Code:
class cardHolder():
def _init_(self, cardNum, pin, firstname, lastname, balance): # Ensure
correct indentation
self.cardNum = cardNum
self.pin = pin
self.firstname = firstname
self.lastname = lastname
self.balance = balance

### Getter methods


def get_cardNum(self):
return self.cardNum
def get_pin(self):
return self.pin
def get_firstname(self):
return self.firstname
def get_lastname(self):
return self.lastname
def get_balance(self):
return self.balance

### Setter methods


def set_cardNum(self, newVal):
self.cardNum = newVal
def set_pin(self, newVal):
self.pin = newVal
def set_firstname(self, newVal):
self.firstname = newVal
def set_lastname(self, newVal):
self.lastname = newVal
def set_balance(self, newVal):
self.balance = newVal

def print_out(self):

8
Programming with Python (22616) ATM Management System

print("Card #: ", self.cardNum)


print("Pin : ", self.pin)
print("First Name : ", self.firstname)
print("Last Name : ", self.lastname)
print("Balance: ", self.balance)

from cardHolder import cardHolder

def print_menu():

### print options to the user


print ("Please choose from one of the following options...")
print("1. Deposit")
print("2. Withdraw")
print("3. Show Balance")
print("4. Exit")

def deposit(cardHolder):
try:
deposit = float(input("How much money you want to depiosit: "))
cardHolder.set_balance(cardHolder.get_balance() + deposit)
print("Thanku you for your $$. Your new balance is:",
str(cardHolder.get_balance()))
except:
print("Invalid input")

def withdraw(cardHolder):
try:
withdraw = float(input("How much $$ would you like to withdraw:"))
### check if user has enough money
if(cardHolder.get_balance() < withdraw):
print("Insufficent balance :()")
else:
cardHolder.set_balance(cardHolder.get_balance - withdraw)

9
Programming with Python (22616) ATM Management System

print("you're good to go! Thank you:)")


except:
print("Invalid input")

def check_balance(cardHolder):
print("Your current balance is:", cardHolder.get_balance())

if __name__ == "_main_":
current_user = cardHolder("","","","",0.0)

### Create a repo of cardholders


list_of_cardHolder = []
list_of_cardHolder.append(cardHolder("9696952721", 1234, "rohan", "shinde",
150.11))
list_of_cardHolder.append(cardHolder("1357978542", 5678, "mohan", "chade",
760.23))
list_of_cardHolder.append(cardHolder("8641531580", 9876, "ram", "rohakle",
450.0))
list_of_cardHolder.append(cardHolder("6421580863", 5432, "anurag", "mane",
270.41))
list_of_cardHolder.append(cardHolder("9514699753", 6789, "kunal", "singh",
130.1))

### Prompt user for debit card number


debitCardNum = ""
while True:
try:
debitCardNum = input("please insurt your debit card: ")
### Check against report
debitMatch = [holder for holder in list_of_cardHolder if
holder.cardNum == debitMatch]
if(len(debitMatch) > 0):
current_user = debitMatch[0]
break
else:
print("Card number not recognized. Please try again.")
except:

10
Programming with Python (22616) ATM Management System

print("Card number not recognized. Please try again.")

### Prompt for PIN


while True:
try:
userPin = int(input("Please enter your pin: ").strip())
if(current_user.get_pin() == userPin):
break
else:
print("Invalid PIN. Please try again.")
except:
print("Invalid PIN. Please try again.")

### Print options


print("Welcome", current_user.get_firstname(),":)")
option = 0
while (True):
print_menu()
try:
option = int(input())
except:
print("Invalid input. Please try again.")
if(option == 1):
deposit(current_user)
elif(option == 2):
withdraw(current_user)
elif(option == 3):
check_balance(current_user)
elif(option == 4):
break
else:
option = 0
print("Thank you. Have a nice day :)")

11
Programming with Python (22616) ATM Management System

6.2 Output:
7.0 Actual Resources Required:

Sr. No. Resources required Specifications

1 Computer system Intel(R) Pentium CPU, RAM 4 GB

2 Operating System Windows 10, 64 Bit Operating System

3 Software Microsoft Word, Notepad, Command Prompt

8.0 Skills Developed:

During the course of this micro-project, we learned to create ATM Management System by using
python
a. We learnt various new syntaxes of python language.
b. We also learned Decision making Statements.
c. We also learnt function declaration in Java.
d. Also acquired knowledge of building blocks.

9.0 Applications of this Micro-project:


Microprojects, like building a ATM Management System in Python, offer a compact yet
powerful way to learn and practice programming. They provide a focused learning experience by
targeting specific concepts like data structures, functions, and user interaction. Despite their
small scale, these projects can be surprisingly versatile. Beginners can grasp core Python skills
through functionalities like deposits and withdrawals, while more experienced programmers can
extend them with features like object-oriented design, error handling, and database integration.
Ultimately, microprojects offer a valuable and engaging approach to mastering programming
fundamentals and building practical applications.

12
Programming with Python (22616) ATM Management System

10.0 Area of future Improvement:


This ATM Management System microproject can be improved in several ways for future
exploration. One area is enhancing data persistence. While the current version might use pickle,
implementing a database like SQLite can provide a more robust and scalable solution for storing
account information. Additionally, the user interface can be extended beyond basic text
input/output. GUI frameworks like Tkinter or PyQt can be utilized to create a more interactive
and user-friendly experience. Furthermore, security features like user authentication and
encryption can be incorporated to protect sensitive account data. These improvements can
significantly elevate the project's functionality and provide valuable learning experiences in
database management, user interface design, and security best practices.

11.0 Conclusion:

We learn to design ATM Management System using python, also we understood basic
fundamentals of ATM Management System as well as managing it.

12.0 Reference:

a. https://www.tutorialspoint.com/python/index.html

b. https://www.programiz.com/python-programming

c. http://spoken-tutorial.org/

d. https://docs.python.org/3/tutorial/errors.html

e. https://www.w3resource.com/python-exercises/

13

You might also like