[go: up one dir, main page]

0% found this document useful (0 votes)
96 views31 pages

ATM Project

Uploaded by

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

ATM Project

Uploaded by

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

KING KHALID UNIVERSITY Subject Code: 341 CCS - 3

College of Computer Science Software engineering principles


Dept. of Computer Science

Software engineering principles project

ATM (Automation Teller Machine )

By :
Danah Ahmad Alkbibi ( 442807555 )
Abeer mushabab saeed ( 443806010 )
Norah Mohammed Alfertish ( 442807539 )
Albatool AbduAllah Alsaleh ( 439802397 )

Supervisor :
Ms. Maha mustafa al Yazidi.
Abstract :

The ATM system project aims to develop a comprehensive and efficient


automated teller machine (ATM) system for a bank. The project
encompasses requirements analysis, design, and testing phases to ensure a
robust and user-friendly system. The objectives of the project include
enhancing customer experience, streamlining banking transactions, and
ensuring the security of user data. Through the use of UML techniques,
the project analyzes functional and non-functional requirements, models
system behavior, and designs an appropriate architecture. The project
plan, created using MsProject, provides a structured approach for project
management and resource allocation. The final deliverables include a
detailed requirements analysis, an architectural design, and
comprehensive testing results. The successful implementation of the ATM
system will result in improved customer service, operational efficiency,
and adherence to industry standards and security protocols.

ii
Content Table
Abstract:…………............................................................................................................ii
1.Introduction:…. .........................................................................................................1
1.1 Background: ........................................................................................................1
1.2 Project Objectives: ...............................................................................................2
1.3 Scope of the Project: ............................................................................................2
1.4 Audience:............................................................................................................2
1.5 Project Plan (Using MS Project):.............................................................................3
1.6 Problem Modeling: ..............................................................................................4
2.Requirements Analysis:…. ..........................................................................................6
2.1 Functional Requirements: .....................................................................................6
2.2 Non-Functional Requirements: ..............................................................................8
2.3 Tools and Techniques: ...........................................................................................9
2.4 Actors: .............................................................................................................. 11
2.4 Use Case Diagram: ............................................................................................. 12
2.5 Details of Use Cases: .......................................................................................... 12
3. ATM System - Design ............................................................................................... 15
3.1Architectural Design: ........................................................................................... 15
3.2 Justification of Architecture: ................................................................................ 15
3.3 Logical Design: ................................................................................................... 16
3.3.1 Class Diagrams: ........................................................................................... 16
3.3.2 Sequence Diagrams: ..................................................................................... 16
3.3.3 Activity Diagrams: ........................................................................................ 17
3.3.4 State chart Diagrams: ................................................................................... 19
4.TESTING AND VERIFICATION ..................................................................................... 20
4.1 Screens: ............................................................................................................ 20
4.1.1 Card Screen: ................................................................................................ 20
4.1.2 Pin Screen: .................................................................................................. 20
4.1.3 Home Screen: .............................................................................................. 21
4.1.4 Withdraw Screen: ........................................................................................ 21
4.2 Coding: ............................................................................................................. 22
4.2.1 Card Screen: ................................................................................................ 22
4.2.2 Home Screen: .............................................................................................. 25
5. Conclusion:…… ....................................................................................................... 27

iii
1. Introduction:

In the fast-paced digital era, banking services have undergone a


transformative evolution, with Automated Teller Machines (ATMs)
serving as vital touchpoints in the realm of customer convenience and
financial transactions. As technology continues to advance, the demand
for secure, user-friendly, and efficient ATM systems has never been
greater. This project seeks to address this imperative need by
conceptualizing, designing, and implementing a cutting-edge ATM
System that redefines the banking experience for customers.

1.1 Background:

Traditional banking practices have significantly shifted towards


automation, with ATMs playing a central role in providing Customer
access to their funds and conducting various transactions, ranging from
simple balance inquiries to complex fund transfers. However, the existing
ATM systems are not without their limitations. Issues such as security
vulnerabilities, user experience concerns, and outdated interfaces often
hinder the seamless operation of these machines. This project endeavors
to overcome these challenges by developing an innovative and robust
ATM System that ensures the highest standards of security, user
satisfaction, and operational efficiency.

1
1.2 Project Objectives:
The primary objective of this project is to create an advanced ATM
System that stands at the forefront of technological innovation in the
banking sector. The system aims to achieve the following key goals:
1. Enhanced Security: Implement multi-layered security protocols to
safeguard user data, financial transactions, and system integrity,
ensuring a secure banking environment.
2. Intuitive User Experience: Design an intuitive and user-friendly
interface that caters to customers of all demographics, making
ATM interactions simple, efficient, and accessible.
3. Expanded Functionality: Introduce a wide array of
functionalities, including balance inquiries, cash withdrawals, fund
transfers, bill payments, and receipt generation, providing
Customer with comprehensive banking services.
4. Reliability and Efficiency: Develop a robust system architecture
that ensures the ATM's reliability, minimizing downtime and
transaction errors. Enhance transaction processing speed to
optimize customer waiting time.
5. Adaptability and Scalability: Create a flexible system capable of
accommodating future technological advancements and evolving
customer needs. Ensure scalability to handle a growing user base
and increasing transaction volumes.

1.3 Scope of the Project:


The scope of this project encompasses the entire software and hardware
ecosystem of the ATM System. From the development of an intuitive user
interface to the implementation of complex backend algorithms, every
aspect of the system will be meticulously designed and tested.
Additionally, the project will include the integration of cutting-edge
security measures and compliance with industry standards and
regulations.
1.4 Audience:
This project's primary audience includes banking institutions, software
developers, security experts, and regulatory authorities. Banking
institutions will benefit from a ready-to-implement solution that enhances
their service offerings, while developers and security experts will gain
insights into innovative technologies and methodologies employed in the
project

2
1.5 Project Plan (Using MS Project):

3
1.6 Problem Modeling:
1. Problem Statement:
The current ATM systems face several challenges that hinder their
effectiveness and user satisfaction. Identifying and modeling these
problems is crucial for designing an improved ATM system.
2. Problem 1: Security Vulnerabilities
Problem Description: Existing ATM systems are susceptible to
various security threats such as card skimming, phishing attacks,
and unauthorized access. These vulnerabilities compromise
customer data and financial transactions.
Impact: Customer trust is eroded due to frequent security
breaches. Financial losses occur both for customers and the
banking institution. Regulatory penalties may be imposed due to
non-compliance.
Proposed Solution: Implement advanced encryption techniques,
multi-factor authentication, and real-time transaction monitoring to
enhance security. Regular security audits and updates are necessary
to counter evolving threats.
3. Problem 2: Complex User Interface
Problem Description: The user interface of many ATMs is
complicated and not user-friendly. Non-intuitive menu structures
and unclear instructions lead to user confusion and errors during
transactions.
Impact: Frustration among Customer, leading to abandoned
transactions and dissatisfaction with the banking experience.
Increased reliance on bank staff for assistance, causing operational
delays.
Proposed Solution: Design a simplified, intuitive user interface
with clear instructions and visually appealing graphics. Conduct
usability testing to ensure ease of navigation and transaction flow.
4. Problem 3: Downtime and Maintenance
Problem Description: ATMs often experience downtime due to
technical glitches, maintenance issues, or software failures.
Extended downtime disrupts customer access to funds and affects
the bank's reputation.
Impact: Customer inconvenience, potential loss of business, and
negative impact on the bank's brand image. Increased workload for
customer support due to complaints and inquiries.

4
Proposed Solution: Implement proactive monitoring systems to
detect issues in real-time. Regular maintenance schedules and
timely software updates should be enforced to prevent unexpected
downtimes. Implement backup systems to ensure continuous
service availability.
5. Problem 4: Limited Functionality
Problem Description: Many ATMs offer limited functionalities,
restricting transactions to basic operations like cash withdrawal and
balance inquiry. Advanced banking services like fund transfers and
bill payments are often unavailable.
Impact: Customers are compelled to visit physical branches for
complex transactions, reducing the convenience of ATM services.
Increased foot traffic in branches, leading to longer queues and
wait times.
Proposed Solution: Expand the range of services offered at ATMs
to include fund transfers, bill payments, check deposits, and mobile
recharges. Integrate the ATM system with the bank's online
platform for seamless transactions.
6. Problem 5: Accessibility Challenges
Problem Description: Current ATM designs may not be accessible
to individuals with disabilities, such as those with visual
impairments or mobility issues. Lack of inclusive features limits
access for a portion of the population.
Impact: Exclusion of disabled individuals from basic banking
services, leading to social inequality and potential legal issues
related to accessibility compliance.
Proposed Solution: Design ATMs with accessibility features such
as Braille keypads, tactile indicators, audio instructions, and
wheelchair-accessible interfaces. Ensure compliance with
accessibility standards and regulations.

5
2. Requirements Analysis:

2.1 Functional Requirements:


1. User Authentication:
- The system must authenticate Customer using methods such
as PIN entry, biometric authentication, or card scanning.
- Upon successful authentication, Customer should gain
access to their accounts and available services.
2. Balance Inquiry:
- Customer must be able to check their account balance for
savings, checking, and other linked accounts.
- The system should display the balance in the user's preferred
currency and update it in real-time.
3. Cash Withdrawal:
- Customer should be able to withdraw cash from their
accounts.
- Customer can select the withdrawal amount from predefined
denominations or enter a custom amount.
- The system should dispense the requested cash amount and
update the account balance accordingly.
4. Funds Transfer:
- Customer must be able to transfer funds between their
accounts (e.g., from savings to checking) or to other
accounts within the same bank.
- Customer should provide recipient account details and the
transfer amount.
- The system should validate the transaction and update the
account balances for both sender and receiver.
5. Cash Deposits:
- Customer should be able to deposit cash into their accounts.
- The system should count and validate the deposited cash,
updating the account balance accordingly.
- Customer may receive a printed receipt as confirmation of
the deposit.

6
6. Bill Payments:
- Users must be able to pay bills (utilities, credit cards, etc.)
using funds from their accounts.
- Users input biller details, including account number and
payment amount.
- The system should process the payment, update the account
balance, and provide a transaction confirmation.

7. Account Statement:
- Customer should have the option to request an account
statement for a specific period.
- The system generates and displays the account statement,
showing transactions, dates, and amounts.
8. Change PIN:
- Customer should be able to change their ATM PIN for
security reasons.
- The system should prompt Customer to enter the current PIN
and then allow them to set a new PIN.
9. Language Selection:
- The system must support multiple languages.
- Customer should be able to choose their preferred language
for interacting with the ATM interface.
10.Receipt Generation:
- The system should generate transaction receipts for all
completed transactions.
- Receipts should include details such as transaction type,
date, time, account information, and available balance.
11.Emergency Services:
- Provide an option for Customer to contact emergency
services, such as blocking a lost card or reporting fraudulent
activities.
- Implement security protocols to verify the user's identity
before providing emergency services.
12.Transaction History:
- Customer should be able to view the transaction history of
their accounts.
- The system should display recent transactions, including
withdrawals, deposits, transfers, and payments.

7
2.2 Non-Functional Requirements:

1. Security:
- Encryption: All data transmissions between the ATM and
the banking server must be encrypted using industry-
standard encryption algorithms to prevent unauthorized
access and data breaches.
- Access Control: The system should enforce role-based
access control, ensuring that only authorized personnel can
access sensitive information or perform administrative tasks.
- Anti-Skimming Measures: The ATM must be equipped
with anti-skimming devices and technologies to prevent card
data theft.
- Fraud Detection: Implement real-time fraud detection
mechanisms to identify suspicious activities and trigger
alerts or temporary account locks for further verification.
2. Performance:
- Response Time: The system must provide quick response
times for all user interactions, ensuring that transactions are
processed within a few seconds.
- Scalability: The system should be scalable to handle a high
volume of concurrent Customer and transactions, especially
during peak hours or special events.
- Reliability: The ATM system must be highly reliable, with
minimal downtime. It should be operational 24/7, with
scheduled maintenance causing minimal disruption.
- Error Handling: Implement robust error handling
mechanisms to gracefully manage system errors and provide
informative error messages to Customer.
3. Usability:
- Intuitive User Interface: Design a user-friendly interface
with clear instructions, intuitive navigation, and visually
appealing graphics to accommodate Customer of varying
technical expertise.
- Accessibility: Ensure the ATM is accessible to individuals
with disabilities, including features such as Braille keypads,
audio instructions, and adequate space for wheelchair
Customer.

8
- Language Support: Support multiple languages to cater to a
diverse user base, allowing Customer to choose their
preferred language for ATM interactions.
4. Compliance:
- Regulatory Compliance: Adhere to local and international
regulations, standards, and laws related to banking, data
protection, and accessibility.
- EMV Compliance: Ensure that the ATM system complies
with EMV (Europay, Mastercard, Visa) standards for
payment card transactions, enhancing card security.
- Privacy: Safeguard user privacy by ensuring that customer
data is collected, processed, and stored in compliance with
applicable privacy laws and regulations.
5. Scalability and Interoperability:
- Interoperability: Ensure the ATM system can seamlessly
integrate with other banking systems, such as core banking
systems and payment gateways, facilitating smooth data
exchange.
- Scalability: Design the system architecture to be scalable,
allowing for easy expansion, addition of new features, and
integration of future technologies without significant system
redesign.

2.3 Tools and Techniques:

Tools:

1. Flutter SDK and Dart:


The Flutter framework and Dart programming language will be
used for cross-platform mobile application development, enabling
rapid prototyping, efficient UI development, and seamless
integration of native device features.
2. Visual Studio Code (VSCode) or IntelliJ IDEA or Android
Studio:
will be used for Flutter and Dart development, providing a
comprehensive set of tools and features for code editing,
debugging, and testing.

9
3. Xcode:
Purpose: Essential for building and deploying Flutter apps on iOS
devices.
4. Flutter Inspector:
Purpose: A visual tool to inspect and understand the widget tree
and layout of a Flutter app.
Integrated: Comes with Flutter SDK.
5. Firebase:
Purpose: A suite of services for backend development, including
authentication, real-time database, and cloud functions.
6. SQLite:
7. Purpose: A self-contained, serverless, and zero-configuration
database engine for local data storage.

Techniques:
1. State Management:
- Options: Provider, Riverpod, Bloc, Redux,Getx.
- Purpose: Manage and propagate state changes efficiently
within the app.
2. Dependency Injection:
- Options: Provider, GetIt, Dagger.
- Purpose: Organize and inject dependencies, improving code
maintainability.
3. Continuous Integration/Continuous Deployment (CI/CD):
- Platforms: GitHub Actions, Travis CI, GitLab CI.
- Purpose: Automate the testing and deployment process.
4. Code Formatting:
- Purpose: Maintain consistent code formatting across the
project.
5. Localization:
- Package: flutter_localizations.
- Purpose: Enable multi-language support in the app.

10
6. Responsive UI:
- Techniques: MediaQueries, LayoutBuilder, Responsive UI
libraries.
- Purpose: Ensure the app's UI adapts to different screen sizes.
7. Version Control:
- Platforms: Git, GitHub, GitLab, Bitbucket.
- Purpose: Track changes, collaborate with team members,
and manage the codebase.
8. Secure Coding Practices:
- Guidelines: Follow Flutter's security best practices.
- Purpose: Implement measures to secure user data and
interactions.

2.4 Actors:

1. Customer:
- Description: The primary user of the ATM system, who
interacts directly with the machine to perform various
banking transactions, including balance inquiries, cash
withdrawals, fund transfers, and bill payments.
- Responsibilities: Customers use their ATM cards and PINs
to access their accounts, conduct transactions, and obtain
printed receipts for their transactions.
2. System Administrator:
- Description: An IT professional or a designated staff
member responsible for overseeing the entire ATM network,
ensuring system security, and managing system
configurations.
- Responsibilities: System administrators are responsible for
configuring security settings, monitoring system health,
updating software, managing user access levels, and
responding to security incidents.

11
3. Banking Network:
- Description: The secure network infrastructure connecting
the ATM system to the bank's core banking system, allowing
real-time communication for transaction processing and data
exchange.
- Responsibilities: The banking network facilitates secure
data transmission between the ATM and the central banking
system, ensuring accurate and timely processing of
transactions, as well as updating account information.

2.4 Use Case Diagram:

12
2.5 Details of Use Cases:
Use Case: Withdraw Cash
Actors Use Case Description
- Primary Actor: Allows the customer to withdraw cash
Customer from their bank account through the
- Secondary Actor: Withdraw Cash ATM. The customer must be
Banking Network authenticated using their ATM card and
PIN. The system verifies the account
balance, dispenses the requested cash
amount, and updates the account
balance.

Use Case: Check Balance


Actors Use Case Description
- Primary Actor: Allows the customer to check the
Customer available balance in their bank
- Secondary Actor: Check Balance account through the ATM. The
Banking Network customer must be authenticated
using their ATM card and PIN. The
system retrieves the account balance
and displays it to the customer.

Use Case: Change PIN


Actors Use Case Description
Allows the customer to change their
ATM card's Personal Identification
Change PIN Number (PIN) for security purposes.
Customer The customer must provide the existing
PIN and the new PIN. The system
validates the entered PINs and updates
the customer's account information.

13
Use Case: Deposit Cash
Actors Use Case Description
Allows the customer to deposit cash
into their bank account through the
Deposit Cash ATM. The customer must be
Customer authenticated using their ATM card and
PIN. The system verifies the deposited
cash, updates the account balance, and
provides a receipt.

Use Case: Transfer Funds


Actors Use Case Description
Allows the customer to transfer funds
between their own accounts or to
Transfer Funds another recipient's account within the
- Primary Actor: same bank. The customer must be
Customer authenticated using their ATM card and
- Secondary Actor: PIN. The system verifies the
Banking Network transaction, updates the account
balances, and provides a confirmation
receipt.

Use Case: Pay Bills


Actors Use Case Description
Allows the customer to pay bills
(utilities, credit cards, etc.) through the
Pay Bills ATM using funds from their bank
- Primary Actor: account. The customer must be
Customer authenticated using their ATM card and
- Secondary Actor: PIN. The system verifies the biller
Banking Network details, processes the payment, and
provides a payment confirmation.

14
3. ATM System - Design
3.1Architectural Design:

3.2 Justification of Architecture:


The chosen architecture aligns with industry best practices and standards,
emphasizing modularity, scalability, and security. The client-server model
allows for centralized management of core business logic and facilitates
easier updates or modifications. The use of standardized communication
protocols ensures compatibility with existing banking systems.

The modular breakdown of components enhances maintainability and


allows for future expansions or integrations with additional services. The
emphasis on security measures, including encryption and biometric
authentication, addresses contemporary concerns regarding data breaches
and unauthorized access.

15
3.3 Logical Design:

3.3.1 Class Diagrams:

3.3.2 Sequence Diagrams:

16
3.3.3 Activity Diagrams:
3.3.3.1 Activity Diagram of Transaction :

17
3.3.3.2 Activity Diagram of Cash Withdraw:

3.3.3.3 Activity Diagram of Balance Inquiry:

18
3.3.4 State chart Diagrams:

19
4.TESTING AND VERIFICATION

4.1 Screens:

4.1.1 Card Screen:

4.1.2 Pin Screen:

20
4.1.3 Home Screen:

4.1.4 Withdraw Screen:

21
4.2 Coding:
4.2.1 Card Screen:

22
23
24
4.2.2 Home Screen:

25
26
5. Conclusion:

In conclusion, the development of the Automated Teller Machine (ATM)


System using Flutter represents a significant advancement in providing
users with a modern, efficient, and secure banking experience. The
project aimed to address key challenges present in traditional ATM
systems and deliver a user-friendly interface coupled with robust backend
functionality. Throughout the development lifecycle, various phases were
meticulously planned and executed, leading to the successful
implementation of a feature-rich ATM System.
The project commenced with a comprehensive introduction, outlining the
objectives and scope of the ATM System enhancement. The use of
Microsoft Project facilitated efficient project planning, ensuring that
timelines, resources, and dependencies were meticulously managed. The
initial deliverable focused on Requirements Analysis using Unified
Modeling Language (UML), where problem modeling, functional
requirements, actors, use case diagrams, and non-functional requirements
were defined to provide a clear blueprint for the system's functionalities.
Moving into the Design phase, UML was leveraged to create architectural
designs, justify design choices, and outline the logical structure of the
system. The incorporation of various UML diagrams, including class
diagrams , allowed for a comprehensive representation of the system's
components and their relationships. The architectural decisions aimed to
optimize performance, security, and scalability.
The project's testing phase encompassed unit testing and system testing to
validate the functionality and reliability of the ATM System. This phase
was crucial in identifying and rectifying any issues, ensuring a seamless
user experience. Unit testing focused on individual components, while
system testing validated end-to-end scenarios, guaranteeing the integrity
of the entire system.
The final report consolidated Deliverable 1 and Deliverable 2, presenting
a holistic view of the project. It outlined the entire journey from
requirements analysis and design to testing, emphasizing the
interconnectedness of these phases in delivering a successful project.

27
In the implementation phase, the Flutter framework was chosen for its
cross-platform capabilities, allowing the ATM System to be deployed on
both Android and iOS platforms. The chosen tools and techniques,
including state management, dependency injection, and testing
frameworks, contributed to the development of a robust and maintainable
codebase.
The project's conclusion acknowledges the achievements, lessons learned,
and areas for future improvement. The ATM System, built using Flutter,
stands as a testament to the power of modern technologies in
revolutionizing traditional banking systems. The collaborative efforts of
the development team, adherence to best practices, and a user-centric
approach ensure that the ATM System not only meets but exceeds user
expectations in providing a secure and efficient banking experience. As
technology continues to evolve, this project sets the foundation for further
innovations in the realm of financial services.

28

You might also like