Project File PDF
Project File PDF
Technology
Project : Python
[Virtual ATM Simulator]
Submitted in the partial fulfillment of the requirements for
the award of Certified O - Level Course
1
_CONTENTS__
2
_ACKNOWLEDGEMENT_
Thanking You
3
_DECLARATION__
We hereby declare the work presented by us in this
project, entitled “Virtual ATM Simulator” partial
fulfillment of requirement for ‘O-Level Course’, and
submitted at “NIELIT Chandigarh” is an authentic piece
of our own work carried out under the supervision of
Mrs. Er. Poonam Rana.
Submitted by: -
Course(O – Level)_
Stanzin Rabyang (1653213)
Stanzin Phantok (1653160)
Tsewang Dorjay (1653216)
Ghulam Hussain (1653179)
4
_ABOUT NIELIT__
Introduction to NIELIT
National Institute of Electronics and Information Technology (NIELIT),
formerly known as the DOEACC Society, an Autonomous Scientific Society
under the administrative control of Ministry of Electronics & Information
Technology (Moe & IT), Government of India, was set up to carry out Human
Resource Development and related activities in the area of Information,
Electronics & Communications Technology (IECT). NIELIT is engaged both in
Formal & Non-Formal Education in the area of IECT besides development of
industryoriented quality education and training programmes in the state-of-
the-art areas. NIELIT has endeavoured to establish standards to be the
country’s premier institution for Examination and Certification in the field of
IECT. It is also one of the National Examination Body, which accredits
institutes/organizations for conducting courses in IT in the non-formal sector.
5
NIELIT Centres Across India
As on date, IELIT has forty seven (47) centers located at Agartala, Aizawl,
Ajmer, Alawalpur (Saksharta Kendra), Aurangabad, Bhubaneswar, Calicut,
Chandigarh, Chennai, Chuchuyimlang, Churachandpur, Daman, Delhi,
Dibrugarh, Dimapur, Gangtok, Gorakhpur, Guwahati, Haridwar, Imphal,
Itanagar, Jammu, Jorhat, Kargil, Kohima, Kolkata, Kokrajhar, Kurukshetra,
Lakhanpur (Saksharta Kendra), Leh, Lucknow, Lunglei, Majuli, Mandi,
Pasighat, Patna, Pali, Ranchi, Ropar, Senapati, Shillong, Shimla, Silchar,
Srinagar, Tezpur, Tura and Tezu with its Headquarters at New Delhi. It is also
well networked throughout India with the presence of about 700 + institutes.
Expertise in IT Training
Over the last two decades, NIELIT has acquired very good expertise in IT
training, through its wide repertoire of causes, ranging from ‘O’ Level
(Foundation), ‘A’ Level (Advance Diploma), ‘B’ Level (MCA equivalent), ‘C’
Level (M-Tech level), IT literacy courses such as CCC (Course on Computer
Concept), BCC (Basic Computer Course) and other such long term and short
term course in the non formal sector like courses on Information Security, ITeS-
BPO(Customer Care/Banking), Computer Hardware Maintenance (CHM-O/A
level), Bio-Informatics(BI-O/A/B level), ESDM etc, besides, high end courses
offered by NIELIT Centres at Post-Graduate level (M.Tech) in Electronics
Design & Technology, Embedded Systems etc. which are not normally offered
by Universities/Institutions in the formal sector, in association with the
respective state Universities.
6
the nodal implementing agency on behalf of MeitY for Data Digitization of the
population of 15 assigned States and 2 Union Territories for the creation of
National Population Register (NPR) project of Registrar General of India (RGI).
7
_ABOUT PYTHON__
_Introduction__
Python is a high-level, interpreted
programming language known for its
simplicity and readability. It was created
by Guido van Rossum and released in
1991. Python emphasizes code
readability, allowing developers to
express concepts in fewer lines of code
compared to other programming
languages.
Features
• Readable and Clean Syntax: Python uses indentation to define code
blocks, which makes the code easy to read and understand.
• Dynamic Typing: Python is dynamically typed, meaning you don't
need to declare the type of a variable before using it.
• Interpreted Language: Python is an interpreted language, meaning
that code is executed line-by-line. This makes it easier to test and
debug.
• Extensive Standard Library: Python comes with a comprehensive
standard library that includes modules for file I/O, regular
expressions, networking, web development, and more.
8
• Cross-platform Compatibility: Python runs on various platforms,
including Windows, Linux, and macOS.
• Support for Multiple Paradigms: Python supports procedural,
object-oriented, and functional programming styles, making it
flexible for different kinds of projects.
• Large Community and Ecosystem: Python has a vast community
and a wealth of third-party libraries and frameworks (like Django
for web development, Pandas for data analysis, and TensorFlow for
machine learning).
• Popular for Various Applications: Python is widely used in web
development, data analysis, scientific computing, machine learning,
automation, and scripting
Python
# This is a comment
def greet(name):
print(f"Hello, {name}!")
greet("Alice")
This code defines a function greet() that takes a name as an argument and
prints a greeting message. When you call greet("Alice"), it prints "Hello,
Alice!".
Python's simplicity and readability make it a popular choice for beginners and
experienced developers alike.
9
Python's Versatility
Python’s flexibility is one of its key strengths. It can be used for a wide range of
applications, such as:
• Web Development: Build server-side applications using frameworks like
Django or Flask.
• Data Analysis & Visualization: With libraries like Pandas and Matplotlib,
Python is a favorite among data analysts and scientists.
• Automation and Scripting: Python’s clean syntax makes it ideal for
writing automation scripts to handle repetitive tasks.
• Machine Learning & AI: Python is the most popular language for
machine learning, thanks to libraries like TensorFlow, Keras, and Scikit-
learn.
•
10
Why is Python Popular?
These libraries make Python a powerful tool for almost any project.
11
_Python Overview in
Tabular Form___
Main Idea Explanation Examples Key Terms
Containers for storing data Variable, Assignment
Variables x = 10; name = 'Alice'
values. Operator, Data Types
12
Main Idea Explanation Examples Key Terms
Pre-written code collections Module, Library,
Modules and import math;
that provide additional Import, Built-in,
Libraries print(math.sqrt(16))
functionality. External
Object-
Oriented Organizing code using class Dog: def Class, Object, Method,
Programming objects and classes. bark(self): print('Woof') Attribute, Inheritance
(OOP)
List
squares = [x**2 for x in List Comprehension,
Comprehensio Concise way to create lists.
range(5)] Expression, Iteration
ns
Regular
Pattern matching and text import re; re.match(r'\ Regex, Match, Search,
Expressions
searching tools. d+', '123') Pattern, Compile
(Regex)
Conclusion
Python is an excellent choice for anyone learning programming due to its
simple syntax, powerful capabilities, and vast range of applications. Whether
you're interested in web development, data science, automation, or artificial
intelligence, Python provides the tools and resources you need to succeed. The
combination of readability, flexibility, and a large supportive community makes
Python one of the best programming languages to learn and use .
13
__ABOUT PROJECT__
Introduction
14
_Objectives of Project___
15
5. Promoting Expandability and Modularity:
• Provide a framework that can be easily extended to include
advanced features, such as transaction history and fund transfers.
• Enable seamless integration with databases or APIs for real-time
operations in the future.
Features
• Account Authentication: Secure PIN verification with up to 3 attempts
before locking the account.
• Balance Enquiry: Displays the account balance to the user.
• Withdraw Funds: Allows withdrawals while ensuring the balance
remains sufficient.
• Deposit Funds: Enables deposits into the user’s account.
• PIN Change: Allows users to update their PIN securely.
• PIN Generation: Generates a new random PIN for the user if required.
• Error Handling: Manages errors, such as invalid input or insufficient
funds, gracefully.
• Object-Oriented Design: Uses classes and methods to promote modular
and reusable code.
• Scalability: The code structure supports future extensions and
enhancements.
16
_Implementation of Project__
Technologies Used:
• Programming Language: Python 3.x
• Environment: Any Python-supported IDE or text editor (e.g., PyCharm,
Visual Studio Code, or IDLE).
Class Design
Class: Client
Purpose: Represents a bank client and manages account details and PIN
security.
Attributes:
• insti_name: Class-level attribute representing the institute name.
• acc_no: Unique account number assigned to each client.
• __pin: Private attribute for PIN storage to ensure security.
• bal: Stores the account balance.
• name: Name of the client.
• gender: Gender of the client.
• address: Address of the client.
• pin_attempts: Tracks the number of PIN attempts remaining before
the account is locked.
Methods:
• Constructor: Initializes all attributes for each client instance.
Functions
17
verify_pin(client, pin)
18
5. Enter the account number when prompted.
6. Authenticate using the PIN.
7. Select an operation (e.g., balance enquiry, withdrawal, deposit, etc.)
based on the on-screen menu.
Limitations
• No Database Integration: User data is hard-coded into the program,
limiting scalability and real-world applicability.
• Lack of GUI: Operates solely through the command line, making it less
user-friendly compared to graphical interfaces.
Future Enhancements
• Database Integration: Connect the system to a database for dynamic
storage and retrieval of account data.
• Graphical Interface: Implement a GUI for a more user-friendly
experience.
• Transaction Logs: Maintain a record of all transactions for
accountability.
19
• Multi-User Support: Enable multiple simultaneous users to interact with
the system.
• Online Access: Incorporate web-based features for remote access.
• Security Upgrades: Implement encryption techniques to secure sensitive
data.
_Project Code__
# PIN Verification
if client.pin_attempts > 0:
if client._Client__pin == pin:
return True
else:
client.pin_attempts -= 1
return False
20
else:
return False
# Balance Enquiry
def balance_enquiry(client):
# Withdrawal
print("Insufficient balance!")
else:
client.bal -= amount
# PIN Change
client._Client__pin = new_pin
# PIN Generation
21
def generate_pin(client):
import random
client._Client__pin = new_pin
class Client:
self.acc_no = acc_no
self.name = name
self.gender = gender
self.address = address
22
user_4 = Client(1004, 4567, 54000, "Tenzin Yangrab", "M", "Zangkar")
# User interaction
print("Login Successful!")
balance_enquiry(client)
23
elif ope == 2: # Withdrawal
withdraw(client, amt)
change_pin(client, new_pin)
generate_pin(client)
else:
break
else:
if client.pin_attempts == 0:
break
break
else:
24
_Steps of Output Execution__
_with Snapshot__
1. Welcome Message
When the program starts, it displays
• It checks if the entered account number matches any client in the list
lis.
• If no match is found, it displays .
25
3. PIN Verification
If the account number matches, the program asks for the PIN:
26
4. Menu Options
5. Operations
27
Option 2: Withdrawal
If successful
28
Option 3: Deposit
• Confirms change:
29
Option 5: PIN Generation
6. Invalid Option
7. Program Ends
30
_Conclusion___
The Virtual ATM Simulator successfully demonstrates the fundamental
operations of an ATM in a simulated environment. It showcases essential
programming techniques, including object-oriented design, data
encapsulation, and modular code organization. While the project serves as a
practical educational tool, it also lays the groundwork for more advanced
banking applications.
This project highlights the importance of secure authentication and modular
design, providing a foundation for further development. It can be extended to
include advanced features, such as:
• Transaction History: To keep track of all user activities.
• Mobile and Web Interface: Making the simulator accessible via multiple
platforms.
31
32