Online ATM System Project Report
Online ATM System Project Report
PUNE-412109
PROJECT REPORT
On
IN PARTIAL FULFILLMENT OF
BY
Bhore Suraj Parmeshwar
MCA I SEM I
2024-25
SUBMITTED TO
1
ACKNOWLEDGEMENT
Apart from that efforts of me, the success of the project depends largely on the
encouragement and guidelines of many others. I take this opportunity to express my
gratitude to the people who have been instrumental in the successful completion of this
project.
I would like to express a deep sense of gratitude to Director Prof. Nitin Shrirao and our
Head of the department Prof. Reshma Mavkar for their cordial support as they give the
permission to use all required equipment and the necessary material to complete the
project.
I would like to extend my sincerest gratitude to Prof. Sujata Albhar for her/his guidance
and supervision as well as for providing necessary information regarding the project and
also for the support in completing the project.
Finally I also extend my heartiest thanks to my parents, friends and well wishers for being
with me and extending encouragement throughout the project.
2
CERTIFICATE
This is to certify that the Mini project report entitled, “Online ATM System” being
submitted here with for the internal work of the degree of MASTER OF COMPUTER
APPLICATION (SEM-I) to Savitribai Phule Pune University, Pune is the result of the
original project work completed by Bhore Suraj Parmeshwar under the supervision and
guidance of Prof . Sujata Albhar and to the best of my knowledge and belief, the work
embodies in this Project has not formed earlier the basis for the award of any Degree of
similar title or any other University or examining body.
Date:
Place: Pune
3
Sr.
No Contents
1 CHAPTER 1 : INTRODUCTION
1.1 Introduction of project
1.2 Scope of Project
1.3 Existing System and Need for System
1.4 Operating Environment – Hardware and Software
2 CHAPTER 2 : PROPOSED SYSTEM
2.1 Proposed System
2.2 Objectives of Proposed System
2.3 User Requirements
3 CHAPTER 3 : ANALYSIS AND DESIGN
3.1 Entity Relationships Diagram (ERD)
3.2 Class Diagram
3.3 Object Diagram
3.4 Use Case Diagram
3.5 Activity Diagram
3.6 Sequence Diagram
4 CHAPTER 4 : INPUT / OUTPUT AND LAYOUTS
5 CHAPTER 5: DRAWBACKS AND LIMITATIONS
6 CHAPTER 6: FUTUTE ENHANCEMENT
7 CHAPTER 7 : CONCLUSIONS
8 CHAPTER 8 : BIBLOGRAPHY
4
CHAPTER 1 : INTRODUCTION
5
1.3 Existing System and Need for System :-
To develop a secure and user-friendly online ATM system that allows customers to
perform banking transactions online, similar to those offered by online or physical ATMs,
such as balance checks, transaction history, and more.
But you compalsary for create an account if you don’t have any account in the system then
you can use all service from the system and accounts
1) Hardware :-
2) Software :-
6
CHAPTER 2 : PROPOSED SYSTEM
The proposed Online ATM System will enable customers to perform a wide range of banking
transactions using any internet-connected device (e.g., mobile phone, computer). It aims to
provide a user-friendly interface with enhanced security features, offering a digital alternative
to conventional ATM services.
The Proposed System for an Online ATM System seeks to create a digital platform that
replicates and enhances the functionality of a traditional physical ATM, providing customers
with secure, convenient, and anytime-accessible banking services. The proposed system
leverages modern technology to address the limitations of existing systems, making banking
more seamless and customer-centric. Here's a detailed outline of the proposed system:
Enhanced Accessibility:
Cost Efficiency:
User Convenience:
Improved Security:
Scalability:
The Objectives of the proposed Online ATM System define the goals and outcomes
intended to be achieved through its development and deployment. These objectives guide the
project's design, implementation, and evaluation, ensuring it meets user needs and addresses
existing limitations. Here are the main objectives:
7
2.3 User Requirements :-
Creating a user requirements document for an Online ATM System involves specifying functional
and non-functional requirements that align with user needs. Below are key requirements that
might be necessary for such a system
Functional Requirements :
1. User Authentication:
o Secure login with a username and password, PIN, or biometric
verification (e.g., fingerprint, facial recognition).
o Multi-factor authentication for additional security.
2. Account Overview:
o Display real-time account balance.
o Allow access to multiple linked accounts.
3. Cash Withdrawal:
o Allow users to specify an amount to withdraw, limited to the available
balance and daily limits.
o Generate a receipt (digital) for the withdrawal.
4. Deposit:
o Allow users to deposit funds (including checks and cash via integration
with physical kiosks).
o Confirm the deposit with digital receipts.
5. Fund Transfers:
o Facilitate transfers between the user’s own accounts.
o Allow transfers to external bank accounts with recipient details.
6. Bill Payment:
o Provide functionality for paying utility bills, credit cards, etc.
7. Account Management:
o Change PIN or passwords.
o Update personal information (e.g., phone number, address).
8. Security Alerts:
o Notify users of suspicious activities.
o Alerts for large transactions or unauthorized access attempts.
9. Customer Support:
o Access to 24/7 customer support (via chat, phone, or FAQs).
10. Session Management:
o Automatic logout after a period of inactivity
8
Non-Functional Requirement
1. Performance:
o System should respond to user requests within 3 seconds for most operations.
2. Scalability:
o Capable of handling a large number of concurrent users.
3. Availability:
o 99.9% uptime for the system.
4. Security:
o Data encryption in transit and at rest.
o Compliance with banking regulations (e.g., PCI-DSS for payment data).
o Regular security updates.
5. Usability:
o Intuitive user interface with easy navigation.
o Accessibility features (e.g., support for screen readers).
6. Compatibility:
o Accessible from various devices (desktop, mobile, tablet).
7. Reliability:
o Accurate and consistent data and transaction processing.
8. Data Backup:
o Regular automated backups to ensure data recovery.
9
CHAPTER 3 : ANALYSIS AND DESIGN
10
3.2 Class Diagram
11
3.3 Object Diagram
12
3.4 Use Case Diagram
13
3.5 Activity Diagram
14
3.6 Sequence Diagram
15
CHAPTER 4 : INPUT / OUTPUT AND LAYOUTS
Base.html
{% load static %}
<!DOCTYPE html>
<html lang="en">
<head>
<link rel="stylesheet" type="text/css" href="{% static
'atm_py/style.css'
%}">
<link rel="shortcut icon" href="{% static
'atm_py/favicon.png' %}" type="image/x-icon">
<title>{{ title }}</title>
</head>
<body>
<!-- Header -->
<center>
<img src="{% static 'atm_py/logo.png' %}" alt="logo"
width="20%" style="padding-top: 25px;">
<!-- <h1>Automated Teller Machine</h1> -->
</center>
Login.html
{% extends "atm_py/base.html" %}
{% block content %}
16
<tr>
<th colspan="3">
<center>
Username:
<input type="text" name="username" style="width: 30%;">
</center>
</th>
</tr>
<tr>
<th colspan="3">
<center>
Password:
<input type="password" name="password" style="width:
30%;"
> </center>
</th>
</tr>
<tr>
<td>
</td>
</tr>
<tr>
{% for message in messages %}
<tr><td><center>{{message}}</center></td></tr>
{% endfor %}
</tr>
<tr>
<td colspan="2">
<center>
<input type="submit"
value="Login">
<!-- <a href={% url 'dashboard-atm'
%}><input type="button" value="Login"></a> -->
<a href={% url 'welcome-atm' %}><input type="button"
value="Back"></a>
</center>
</td>
</tr>
<tr>
<td> </td>
</tr>
<tr>
<td colspan="2" id="forgot_pwd_txt">
<center>
<p>Don't have an account? <a href={% url 'signup-atm'
%}>Signup</a></p>
17
</center>
</td>
</tr>
</table>
</form>
{% endblock content %}
SignUp.html
{% extends "atm_py/base.html" %}
{% block content %}
DashBoard.html
{% extends "atm_py/base.html" %}
{% block content %}
<table id="table_dashboard">
<tr>
<td colspan="3"><center><h1>Dashboard</h1></center></td>
</tr>
<tr>
<td colspan="3"><h2>Hello Mr/Ms. {{request.user}}</h2></td>
</tr>
<tr>
<td colspan="3"><h3>What would you like to do?</h3></td>
</tr>
<tr>
<td>
<a href={% url 'balance_inquiry_atm' %}>
<button class="dash_btn" id="btn_balance_inquiry">Balance
Inquiry</button>
</a>
</td>
<td>
<a href={% url 'withdraw_money_atm' %}>
<button class="dash_btn" id="btn_withdraw_money">Withdraw
Money</button>
</a>
</td>
<td>
19
<a href={% url 'add_balance_atm' %}>
<button class="dash_btn" id="btn_add_balance">Add
Balance</button>
</a>
</td>
</tr>
<tr>
<td>
<a href={% url 'reset_password' %}>
<button class="dash_btn" id="btn_chng_pwd"
disabled style="background-color: darkgray;">Change
Password</button>
</a>
</td>
<!-- <td><button class="dash_btn"
id="btn_chng_pin">Change Pin</button></td> -->
<td>
<a href={% url 'tranc_history_atm' %}>
<button class="dash_btn" id="btn_trn_history">Tranc.
History</button>
</a>
</td>
<td colspan="3">
<center>
<a href={% url 'logout-user' %}>
<button class="dash_btn" id="btn_signout" >
Signout
</button>
</a>
</center>
</td>
</tr>
<tr>
<td colspan="3" id="forgot_pwd_txt">
<center><h2>{{message}}</h2></center>
</td>
</tr>
</table>
{% endblock content %}
Addbalance.html
{% extends "atm_py/base.html" %}
{% block content %}
<table>
<tr>
<td><h2>
Hello Mr/Ms. {{request.user}}
</h2></td>
20
</tr>
21
<tr>
<td>
<h1>
Welcome to <b><i>Money Addition System</i></b>
</h1>
</td>
</tr>
<tr>
<td><h3>How much money would like to Add?</h3></td>
<td>
<form action="" method="POST">
{% csrf_token %}
{{form.amount}}
</td>
</tr>
<tr>
</tr>
<tr>
<td colspan="2" id="forgot_pwd_txt"><center>
<h2>{{status}}</h2>
</center>
</td>
</tr>
<tr><td> </td></tr>
<tr>
<td colspan="2">
<center>
<input type="submit" value="Add Money">
</form>
<a href={% url 'dashboard-atm' %}><button>Back</button></a>
</center>
</td>
</tr>
</table>
{% endblock content %}
Withdraw.html
{% extends "atm_py/base.html" %}
{% block content %}
<table>
<tr>
<td><h2>
Hello Mr/Ms. {{request.user}}
22
</h2></td>
</tr>
<tr>
<td>
<h1>
Welcome to <b><i>Money Withdrawal System</i></b>
</h1>
</td>
</tr>
<tr>
<td><h3>How much money would like to withdraw?</h3></td>
<td>
<form action="" method="POST">
{% csrf_token %}
{{form.amount}}
</td>
</tr>
<tr>
<td colspan="2" id="forgot_pwd_txt"><center>
<h2>{{zero_balance_alert}}</h2>
</center>
</td>
</tr>
<tr><td> </td></tr>
<tr>
<td colspan="2" >
<center>
<a href={% url 'dashboard-atm' %}><input
type="submit" value="Withdraw Money"></a>
</form>
<a href={% url 'dashboard-atm' %}><button>Back</button></a>
</center>
</td>
</tr>
</table>
{% endblock content %}
Transaction.html
<div class="wrapper">
<table class = "div_tranc_history wrapper">
<tr>
<td colspan="4">
23
<h2>Hello Mr/Ms. <i>{{request.user}}</i></h2>
<h1>Welcome to <b><i>Transaction History
Section</i></b></h1> Here is Your Transaction History
</td>
</tr>
<tr>
<th style="padding: 10px;">User ID</th>
<th style="padding: 10px;">Date & Time</th>
<th style="padding: 10px;">Transaction</th>
<th style="padding: 10px;">Updated Balance</th>
</tr>
{% for i in history_td %}
<tr>
<td style="padding: 10px; ">{{i.user_id}}</td>
<td style="padding: 10px; ">{{i.dateTime_field}}</td>
<td style="padding: 10px; border: 1px solid rgb(0,
0, 0)">{{i.withdrawl_amount}}</td>
<td style="padding: 10px; border: 1px solid rgb(0,
0, 0)">{{i.remaining_amount}}</td>
</tr>
{% endfor %}
<tr>
<td> </td>
</tr>
<tr>
<td colspan="4">
<center>
<a href={% url 'welcome-atm' %}><button>Back</button></a>
</center>
</td>
</tr>
</table>
</div>
{% endblock content %}
View.py
24
def loginpage(request):
if request.user.is_authenticated:
return redirect('dashboard-
atm')
else:
context =
{'title':'Login'} if
request.method == 'POST':
username = request.POST.get('username')
password = request.POST.get('password')
def accessAdmin(request):
return redirect('admin-atm')
def signuppage(request):
if request.user.is_authenticated:
return redirect('dashboard-
atm')
else:
form = CreateUserForm()
if request.method == "POST":
form =
CreateUserForm(request.POST) if
form.is_valid():
form.save()
user = form.cleaned_data.get('username')
messages.success(request, 'Account Created for ' +
user) return redirect('/')
context = {'form' : form, 'title':'Signup'}
# return render(request, 'atm_py/signup.html', {'title':'Signup'},
context)
25
return render(request, 'atm_py/signup.html', context)
# This line will restrict users to not to see the page if they are not
signed in for every view we put above at
26
Model.py
class DataClass(models.Model):
'''Attribute => Name of the Variable = model.Type of the Field
(further constrainsta)'''
# user_id = models.IntegerField()
# username = models.TextField(max_length=200,
default="username") name = models.CharField(max_length=200)
# pin = models.IntegerField(default="1111")
# account_status = models.TextField(max_length=200,
default="inactive") password = models.CharField(max_length=200,
default="password")
# balance = models.IntegerField(default="0")
class Transaction(models.Model):
'''Replace these names with ID when you learn them
completely''' user_id = models.ForeignKey(DataClass,
on_delete=models.CASCADE) date =
models.DateField(auto_now_add=True)
time = models.TimeField(auto_now_add=True)
action = models.CharField(max_length=200, default="username")
class Transaction_dummy(models.Model):
'''Replace these names with ID when you learn them
completely''' user_id = models.ForeignKey(DataClass,
on_delete=models.CASCADE) date =
models.DateField(auto_now_add=True)
time = models.TimeField(auto_now_add=True)
action = models.CharField(max_length=200,
default="username") # def str (self):
# return self.text
Manage.py
#!/usr/bin/env python
"""Django's command-line utility for administrative
tasks.""" import os
import sys
def main():
"""Run administrative tasks."""
27
os.environ.setdefault('DJANGO_SETTINGS_MODULE',
'atm.settings') try:
28
from django.core.management import
execute_from_command_line except ImportError as exc:
raise ImportError(
"Couldn't import Django. Are you sure it's installed and "
"available on your PYTHONPATH environment variable? Did you
" "forget to activate a virtual environment?"
) from exc
execute_from_command_line(sys.argv)
29
Outputs :-
Home page :
Select options :
30
SignUp :
Log In :
31
User Dashboard :
Deposite Money :
32
Balance Inquiry After Deposite :
Withdraw Amount :
33
Balance Inquiry After withdrawal :
34
CHAPTER 5: DRAWBACKS AND LIMITATIONS
1. Security Risk
3 . Technical Glitches
Server Downtime: If the server hosting the system goes down, users cannot access
their accounts or perform transactions.
Software Bugs: Errors or bugs in the software can lead to incorrect transactions or
system crashes.
4 . Limited Functionality
Cash Dependency: Online systems cannot dispense physical cash, which may
inconvenience users who need immediate cash.
Restricted Services: Some services, like card replacement or depositing
checks, cannot be handled online.
5 . Fraud Risk
6 . Transaction Limits
Daily Limits: Many banks impose transaction or withdrawal limits for online
systems, restricting how much users can transfer or withdraw.
Processing Delays: Certain transactions (e.g., large transfers) may require additional
verification, causing delays.
35
CHAPTER 6: FUTUTE ENHANCEMENT
Future enhancements in an Online ATM System can help improve functionality, user
experience, and security, ensuring the platform remains relevant, competitive, and responsive
to evolving user needs and technology. Here are some potential future enhancements:
36
Predictive Transaction Capabilities: AI-based predictions of recurring
transactions, helping users budget and plan more effectively.
API Integration: Provide open APIs for integration with third-party apps and
services, expanding the utility of the system.
Account Aggregation: Allow users to view and manage all their financial
accounts from different banks through a single platform.
Advanced notification settings, including SMS, email, push notifications, and in-app
alerts, tailored to individual preferences.
12 . Multi-Currency Support
37
CHAPTER 7 : CONCLUSIONS
The development and implementation of an Online ATM System marks a significant step
forward in enhancing the accessibility, security, and convenience of banking services. This
system extends traditional ATM capabilities into an online platform, offering a seamless
experience for users to manage their financial transactions efficiently. Here are the key
conclusions drawn from the development of an online ATM system:
38
CHAPTER 8 : BIBLOGRAPHY
1 . Books
1. Smith, John. “Online Banking Security: Trends and Innovations.” Journal of Banking
and Finance, vol. 45, no. 3, 2020, pp. 233–246.
2. Kumar, R. “User Authentication Mechanisms for Online Banking Systems.”
International Journal of Information Security Research, 2019.
39