ATM Project
ATM Project
By :
Danah Ahmad Alkbibi ( 442807555 )
Abeer mushabab saeed ( 443806010 )
Norah Mohammed Alfertish ( 442807539 )
Albatool AbduAllah Alsaleh ( 439802397 )
Supervisor :
Ms. Maha mustafa al Yazidi.
Abstract :
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:
1.1 Background:
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.
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:
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.
Tools:
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.
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.
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.
14
3. ATM System - Design
3.1Architectural Design:
15
3.3 Logical Design:
16
3.3.3 Activity Diagrams:
3.3.3.1 Activity Diagram of Transaction :
17
3.3.3.2 Activity Diagram of Cash Withdraw:
18
3.3.4 State chart Diagrams:
19
4.TESTING AND VERIFICATION
4.1 Screens:
20
4.1.3 Home Screen:
21
4.2 Coding:
4.2.1 Card Screen:
22
23
24
4.2.2 Home Screen:
25
26
5. Conclusion:
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