0% found this document useful (0 votes)
18 views69 pages

Fyp Full

The project report details the development of an 'Autofill Application' by students of BMS Institute of Technology and Management, aimed at enhancing user experience through secure data handling using blockchain technology. The application integrates machine learning for intuitive form filling and adheres to Object-Oriented Programming principles for maintainability. The report includes acknowledgments, a declaration of originality, and an abstract summarizing the project's objectives and technological innovations.

Uploaded by

aryan.2566canva
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)
18 views69 pages

Fyp Full

The project report details the development of an 'Autofill Application' by students of BMS Institute of Technology and Management, aimed at enhancing user experience through secure data handling using blockchain technology. The application integrates machine learning for intuitive form filling and adheres to Object-Oriented Programming principles for maintainability. The report includes acknowledgments, a declaration of originality, and an abstract summarizing the project's objectives and technological innovations.

Uploaded by

aryan.2566canva
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/ 69

VISVESVARAYA TECHNOLOGICAL UNIVERSITY

BELAGAVI

Project Report on

“AUTOFILL APPLICATION”

Submitted in the partial fulfillment for the requirements of the degree of

BACHELOR OF ENGINEERING
IN
COMPUTER SCIENCE AND ENGINEERING
Submitted By
ABHINAV RAJ 1BY20CS005

ARYAN AGRAWAL 1BY20CS030

AYUSH RAJ 1BY20CS035

HIMANSHU SHARMA 1BY20CS064

Under the guidance of

MRS. DURGA DEVI G Y

ASSISTANT PROFESSOR
Department of CSE,
BMSIT&M

DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING

BMS INSTITUTE OF TECHNOLOGY & MANAGEMENT


YELAHANKA, BENGALURU - 560064.

2023-2024
VISVESVARAYA TECHNOLOGICAL UNIVERSITY
BELAGAVI
BMS INSTITUTE OF TECHNOLOGY AND MANAGEMENT
YELAHANKA, BENGALURU – 560064

DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING

CERTIFICATE

This is to certify that the Project work entitled “AUTOFILL APPLICATION” is a


bonafide work carried out by Abhinav Raj (1BY20CS005), Aryan Agrawal (1BY20CS030),
Ayush Raj (1BY20CS035), Himanshu Sharma (1BY20CS064), in partial fulfillment for
the award of Bachelor of Engineering Degree in Computer Science and Engineering
of the Visvesvaraya Technological University, Belagavi during the year 2023-2024. It is
certified that all corrections/suggestions indicated for Internal Assessment have been
incorporated in this report. The project report has been approved as it satisfies the academic
requirements in respect of project work for B.E. Degree.

Signature of the Guide Signature of the HOD Signature of Principal


Mrs. Durga Devi G Y Dr. Thippeswamy G Dr. Sanjay H. A
Assistant Professor Professor & HOD, Principal, BMSIT&M
Dept. of CSE, BMSIT&M Dept. of CSE, BMSIT&M

External VIVA-VOCE

Name of the Examiners Signature with Date

1.

2.
ACKNOWLEDGEMENT

We are pleased to present this project report upon its successful completion. This project
would not have been possible without the guidance, assistance, and suggestions of many
individuals. We would like to express our deep sense of gratitude to each and every person who
has contributed to making this project a success.

First and foremost, we extend our heartfelt thanks to Dr. Sanjay H. A, Principal, BMS
Institute of Technology & Management, for his constant encouragement and inspiration in
undertaking this project.

We also express our sincere gratitude to Dr. Thippeswamy G, Head of the


Department, Computer Science and Engineering, BMS Institute of Technology &
Management, for his unwavering support and motivation throughout this endeavor.

We are grateful to our project guide, Mrs. Druga Devi G Y, Assistant Professor,
Department of Computer Science and Engineering, for her invaluable encouragement and
guidance throughout the project.

We extend our heartfelt thanks to our project coordinators, Dr. Vidya R Pai and
Dr. Arunakumari B. N, Assistant Professor, Department of Computer Science and
Engineering, for their constant support and valuable advice during the project.

Special thanks are due to all the staff members of the Computer Science and
Engineering Department for their help and cooperation.

Finally, we would like to express our gratitude to our parents and friends for their
unwavering encouragement and support throughout the duration of this project.

By,
Abhinav Raj
Aryan Agrawal
Ayush Raj
Himanshu Sharma

I
DECLARATION

We Abhinav Raj (1BY20CS005), Aryan Agrawal (1BY20CS030), Ayush Raj


(1BY20CS035), Himanshu Sharma (1BY20CS064) students of Eight semester B. E, in the
Department of Computer Science and Engineering, BMS Institute of Technology and
Management, Bengaluru declare that the project work entitled “Autofill Application” has been
carried out by us and submitted in partial fulfilment of the course requirements for the award of
degree in Bachelor of Engineering in Computer Science and Engineering of Visvesvaraya
Technological University, Belagavi during the academic year 2023 - 2024. The matter
embodied in this report has not been submitted to any other university or institution for the award
of any other degree or diploma.

Abhinav Raj (1BY20CS005)

Aryan Agrawal (1BY20CS030)

Ayush Raj (1BY20CS035)

Himanshu Sharma (1BY20CS064)

II
ABSTRACT

Several techniques leveraging blockchain


technology have been introduced to
enhance document handling, candidate verification, and address management. For
instance, Docs-In-Blocks (2022) employs blockchain to ensure the immutability and
trustworthiness of credentials, reducing fraud potential in candidate verification
processes. Similarly, the Blockchain-Based Address Alias System (2021) introduces
address aliases to enhance user anonymity and security. While these systems offer
significant advantages in security and transparency, they may face challenges such
as scalability issues and adoption barriers due to the perceived complexity of
blockchain technology.

The proposed Android autofill app aims to revolutionize user experience


while prioritizing data protection and privacy. It encompasses features such as
intuitive form filling enhancement through machine learning algorithms, secure
data storage leveraging blockchain technology, and adherence to Object-Oriented
Programming (OOP) principles for modular and extensible codebase development.
By implementing robust encryption methods and smart contracts, the app ensures
tamper-proof data storage and reduces the risk of unauthorized access or data
breaches. Additionally, the use of OOP principles facilitates easy maintenance and
scalability, while data encapsulation techniques enhance the secure handling of
sensitive information, ensuring robust data protection throughout the autofill
process.

III
TABLE OF CONTENTS
Acknowledgement……………………………………………………………...…..… I
Declaration………………………………………………………………………….…II
Abstract…………………………………………………………………………….…III
Contents………………………………………………………………………………IV
List of Figures………………………………………………………………………..VI
List of Tables………………………………………………………………………...VIII

Chapter 1: Introduction………………………………………………………………………1

1.1 Background………………………………………………………………………1

1.2 Literature Survey……………………….………………………………………..2

1.3 Motivation……………………………………………………………………….4

1.4 Problem Statement………………………………………………………………4

1.5 Aim and Objective……………………....………………………………………5

1.6 Scope…………………………………………………………………………….5

1.7 Challenges……………………………………………………………………….6

Chapter 2: Overview……………………………………………………………………….....7

Chapter 3: Requirement Specification………………………………………………………8

3.1 Mapping of Requirements…………………………………………………….....8

3.2 Functional Requirements………………………………………………………..8

3.3 Non-Functional Requirements…………………………………………………..9

3.4 User Requirements……………………………………………………………..10

3.5 Domain Requirements………………………………………………………….11

3.6 System Requirements…………………………………………………………..11

Chapter 4: Detailed Design………………………………………………………………….14

4.1 System Architecture…………………………………………………………….14

4.2 System Design………………………………………………………………….15

4.3 Use Case Diagram…………………………..………………………………….16


IV
4.4 Class Diagram…………………..………………………………………………17

4.5 Sequence Diagram…….…………………………………………………….…..18

4.6 Data Flow Diagram………………………...…………………………………...19

Chapter 5: Implementation………………………………………………………………….20

5.1 Programming Language………………………………………………………...20

5.2 Algorithms……………………………………………………………………...22

5.3 Proposed Design……………………………………………………...………...24

5.4 Code…………………………………………………………………….............26

Chapter 6: Testing…………………………………………………………………………....33

6.1 Test Objectives………………………………………………………………….33

6.2 Testing Phases…………………………………………………………………..36

6.3 Test Validation………………………………………………………………….36

6.4 Test Cases………………………………………………………………………37

Chapter 7: Experimental Results…………………………………………………………....39

7.1 Home Page……………………………………………………………………...39

7.2 Login……………………………………………………………………………40

7.3 Registration……………………………………………………………………..40

7.4 Verification for New User…...……………………………………………...….41

7.5 Autofill Entry Page.…………………………………………………………….42

7.6 Loading Screen.………………………………………………………………...43

7.7 View Page……………………………………………………………………...44

7.8 Model….……………………………………………………………………….45

7.9 Firebase Console……………………………………………………………….46

Chapter 8: Conclusion…………………………………………………………………….....47

Chapter 9: Future Enhancement…………………………………………………………..48

References…………………………………………………………..……………………….49

V
LIST OF FIGURES

Figure 4.1 System Architecture…………………………….…………………………………..14

Figure 4.2 System Design………….………………………….……………………………….15

Figure 4.3 Use Case Diagram…….………………..…………..……………………………….16

Figure 4.4 Class Diagram……………………………………….……………………..……….17

Figure 4.5 Sequence Diagram………………………………….………………………………18

Figure 4.6 Data Flow Diagram………………………………….……………………………...19

Figure 5.1 Java Logo……………….…………………………….…………………………….21

Figure 5.2 SHA-256 Flow Diagram……..……………………….…………………………….23

Figure 5.3 Proposed System………………………………………..…………………………..24

Figure 5.4 SHA-256 Module…………………………………….…..…………………………26

Figure 5.5 Main Class…………………………………………….....…………………………27

Figure 5.6 Block Class……………………………………………….………………………...29

Figure 5.7 Constants Class………………..………………………….………………………...30

Figure 5.8 Blockchain Class…………………………………………………………………...31

Figure 5.9 Miner Class……………………………………………….………………………...32

Figure 7.1 Home Page……………………………………………….…………………………39

Figure 7.2 Login……………………………………………………………………………….40

Figure 7.3 Registration………………………………………………………………………...41

Figure 7.4 Email Verification……..…………………………………………………………...42

Figure 7.5 Output Screen after Email Verification………..………….………………………...42

Figure 7.6 Add New Note…………………………………………….………………………..43

Figure 7.7 Loading Screen…………………………………….……….………………………43

Figure 7.8 View Page…………………………………………………..………………………44

Figure 7.9 Edit Autofill Form…………………………….……………..……………...……...44


VI
Figure 7.10 Project Model…………..…………………….………………….………...……...45

Figure 7.11 Mapping Data to Hash Keys in Firebase Console………………...………...……...46

VII
LIST OF TABLES

Table 6.1 Functional Testing.………………………………………………………….……….35

Table 6.2 Test Validation…………………………………………………………….………...36

Table 6.3 Length of the String Test…..…………………………………………...….………...37

Table 6.4 Complexity of Observation………………………………………….……….……...37

Table 6.5 Concatenation….……………………………………………….…………………...38

Table 6.6 Difficulty in Miner.......................………………………………………....………...38

VIII
CHAPTER 1
INTRODUCTION
CHAPTER 1

INTRODUCTION

1.1. Background

Autofill-Service is a ground-breaking Android application at the forefront of digital


security innovation. By ingeniously merging the convenience of Google Autofill with
the impenetrable security of blockchain technology, it establishes a new standard in
safeguarding digital identities. Built meticulously upon the bedrock of object-
oriented programming (OOP) principles, the app ensures modularity, encapsulation,
and reusability, fostering robust and easily maintainable code.

In an age where digital complexities abound, Autofill-Service emerges as a beacon


of trust and reliability. Its seamless integration of blockchain not only fortifies data
protection but also redefines the user experience, offering intuitive tools for managing
sensitive information securely. As a visionary solution, Autofill-Service heralds a
future where data breaches become relics of the past, elevating digital identity
protection to unprecedented levels. It represents a pioneering stride towards a safer,
more intuitive digital landscape, where users can navigate with confidence and peace
of mind.

At its core, Autofill-Service is more than just an application; it embodies a paradigm


shift in how we approach digital security. By combining cutting-edge technologies
with a user-centric design philosophy, it empowers individuals to take control of their
digital identities like never before. With Autofill-Service, users can trust that their
sensitive information is not only protected by the robustness of blockchain but also
seamlessly integrated into their everyday digital interactions, paving the way for a
future where privacy and convenience coexist harmoniously.

Department of CSE, BMSIT &M 2023-24 Page |1


Autofill Application INTRODUCTION

1.2. Literature Survey


The integration of blockchain technology across various industries has garnered
significant attention due to its potential to enhance security, transparency, and
efficiency. In the realm of autonomous vehicles and document verification,
blockchain's immutable and decentralized nature presents innovative solutions to
longstanding challenges. This literature survey aims to explore recent advances and
future directions in these areas, focusing on two key applications: the use of
blockchain in autonomous vehicle data exchanges and the implementation of
blockchain-based systems for candidate document verification. The survey will
examine the benefits, such as improved security and fraud reduction, and the
challenges, particularly related to scalability and real-time data processing,
associated with these technologies. By reviewing the latest research and
developments, this survey seeks to provide a comprehensive understanding of the
current state and future potential of blockchain applications in these critical fields.

Docs-In-Blocks - A Blockchain-Based Document Handler for Candidate


Verification (2022) leverages blockchain technology to enhance the security and
transparency of document handling and candidate verification processes,
significantly reducing fraud potential by ensuring that credentials are immutable and
trustworthy. Despite these advantages, the system may encounter scalability
challenges inherent to blockchain technology, which could impact its efficiency in
handling large volumes of verification requests.

The Blockchain-Based Address Alias System (2021) introduces an innovative


approach to enhance the anonymity and security of user addresses by utilizing
blockchain technology. This system creates address aliases, effectively reducing
users' exposure to cyber threats and enhancing privacy. Despite its benefits, the
system may encounter adoption challenges, primarily due to the general unfamiliarity
and perceived complexity of blockchain technology among potential users. The paper
highlights the system's implementation and its potential to offer a secure solution for
address management while acknowledging the hurdles in user acceptance and
understanding of blockchain concepts.

Department of CSE, BMSIT &M 2023-24 Page |2


Autofill Application INTRODUCTION

The IEEE published paper "Blockchain and Autonomous Vehicles: Recent


Advances and Future Directions" (2021) investigates the integration of blockchain
technology in autonomous vehicles, emphasizing its potential to enhance security,
transparency, and traceability in data exchanges among vehicles and infrastructure.
The paper highlights blockchain's ability to create a secure and immutable ledger for
transactions, crucial for reliable autonomous vehicle operations. While the
technology offers significant benefits in securing communication channels and
improving data tracking and auditing, the paper identifies potential latency issues due
to blockchain's consensus mechanisms, which could hinder real-time data processing
and affect communication speed. The study underscores the necessity for further
research to optimize blockchain protocols for real-time applications and suggests
exploring hybrid models to balance latency concerns with security advantages.

The paper titled "Blockchain-based File Transfer" (2022) introduces a novel


technique for decentralized file transfers. Implementing blockchain technology, this
approach revolutionizes the way files are shared by eliminating reliance on
centralized servers, thereby enhancing data privacy. Through secure, peer-to-peer
exchanges, the technique ensures the confidentiality of sensitive information.
However, challenges in scalability and efficiency arise due to the computational
overhead of blockchain consensus mechanisms within file transfer protocols.
Nonetheless, the paper signifies a significant step towards a future where data transfer
is both secure and decentralized.

In the paper titled "The Emperor’s New Autofill Framework: A Security Analysis
of Autofill on iOS and Android" (2021), a comprehensive examination of autofill
functionalities on both iOS and Android platforms is conducted. This analysis sheds
light on potential vulnerabilities and security risks inherent in autofill systems,
offering valuable insights for enhancing user data protection. However, it's essential
to note that while the paper provides critical findings, it may not encompass all
emerging security threats or future updates to autofill systems. Therefore, continuous
analysis and updates are imperative to maintain the efficacy of security measures in
safeguarding user information.

Department of CSE, BMSIT &M 2023-24 Page |3


Autofill Application INTRODUCTION

1.3. Motivation
The increasing reliance on mobile devices for storing and managing sensitive
information necessitates the development of advanced security measures. Traditional
methods of data protection on mobile platforms are often insufficient to counter the
sophisticated threats posed by modern cyber attacks. The motivation behind this
project is to leverage the robust security features of blockchain technology to create
an Android autofill app that ensures the highest level of data protection and user
privacy. By integrating blockchain, we aim to provide a decentralized storage
solution that significantly reduces the risk of data breaches and unauthorized access.
This approach not only enhances the security of sensitive information but also builds
user trust in mobile applications handling critical data. The ultimate goal is to offer a
secure, reliable, and user-friendly solution that addresses the growing concerns over
data privacy and protection in the digital age.

Furthermore, by harnessing blockchain technology, the proposed autofill app can


potentially revolutionize how users interact with their mobile devices, offering a
seamless and intuitive experience while maintaining stringent security protocols. The
decentralized nature of blockchain ensures that data is not stored in a single vulnerable
location, mitigating the risks associated with centralized storage systems. This
innovative approach not only safeguards sensitive information but also empowers
users to have greater control over their data, fostering a more transparent and
trustworthy digital ecosystem.

1.4. Problem Statement


The project involves developing an Android autofill app to securely store sensitive
data, requiring robust data protection and user privacy measures. Integrating
blockchain technology for decentralized storage adds complexity, demanding
careful implementation to prevent security breaches that could compromise user
information on Android devices. The primary challenge is achieving seamless
blockchain integration while balancing user convenience, robust data protection,
and addressing the technical intricacies associated with blockchain in a mobile
environment.

Department of CSE, BMSIT &M 2023-24 Page |4


Autofill Application INTRODUCTION

1.5. Aim and Objective


The aim of this project is to develop an Android autofill app that enhances user
experience while ensuring robust data protection and privacy. To achieve this aim,
the following objectives have been identified:
1. Form Filling Enhancement: The objective here is to design an intuitive
interface that simplifies data input for users. Additionally, employing machine
learning algorithms will enable the app to predict and automate form field
population based on user history, streamlining the form filling process.

2. Secure Data Storage: Leveraging blockchain technology, the aim is to establish


tamper-proof data storage. Robust encryption methods and smart contracts will
be employed to ensure enhanced security, reducing the risk of unauthorized
access or data breaches.

3. OOP Principles for Data Management: The objective here is to develop a


modular and extensible codebase following Object-Oriented Programming (OOP)
principles. This will facilitate easy maintenance and scalability of the app.
Additionally, implementing data encapsulation techniques will ensure secure
handling of sensitive information, further enhancing data protection.

1.6. Scope
The scope of this project aims to develop an Android Autofill application that
optimizes user experience while ensuring robust data protection and privacy. Key
objectives include creating an intuitive interface with machine learning to
streamline form filling, implementing secure data storage using blockchain with
strong encryption and smart contracts, and adhering to Object-Oriented
Programming (OOP) principles for a modular, scalable codebase. The project seeks
to balance user convenience with stringent data protection throughout the
application's lifecycle.

Department of CSE, BMSIT &M 2023-24 Page |5


Autofill Application INTRODUCTION

1.7. Challenges
Some of the key challenges encountered during the implementation of our project are
listed below:
[1] Seamless Blockchain Integration: Ensuring smooth integration of blockchain
technology into the Android autofill app while maintaining mobile compatibility.

[2] Data Security and Privacy: Balancing robust data protection with user privacy,
employing advanced encryption methods and adhering to regulations.

[3] User Experience Optimization: Designing intuitive interfaces and efficient autofill
functionalities without compromising security.

[4] Blockchain Complexity: Managing decentralized storage, transaction verification,


and consensus mechanisms within the app's framework.

[5] Continuous Updates and Maintenance: Regular updates to address vulnerabilities,


improve performance, and adapt to evolving security threats and Android updates.

Department of CSE, BMSIT &M 2023-24 Page |6


CHAPTER 2
OVERVIEW
CHAPTER 2

OVERVIEW

The project embarked on the development journey with the creation of an intermediate
blockchain prototype, crafted in Java to encapsulate fundamental blockchain principles
such as block creation, transaction management, and basic consensus mechanisms.
Leveraging the robust ecosystem of the Android platform, it was decided to build the
application as an Android app, with the backend infrastructure hosted on Firebase, a
scalable platform offered by Google. This decision facilitated seamless integration
between the Java-based blockchain backend and the Android frontend, ensuring a user-
friendly interface for interacting with blockchain functionalities.

The technical approach adopted ensured a comprehensive architecture,


establishing seamless integration between the Java backend and Android frontend.
Rigorous unit testing of the Android Autofill class and block classes focused on optimizing
benchmarks crucial for sensitive data handling. Integration testing primarily centered on
the connection between the cloud and the UI, ensuring secure data transfer. Ongoing
system testing, especially post-Autofill framework integration, meticulously evaluated the
entire system's functionality, identifying and resolving potential issues to ensure
robustness and reliability.

In subsequent development phases, the Android framework class was implemented


to facilitate data filling, UI component extraction, and data injection into designated text
box fields. The application package (APK) was prepared, encompassing all associated
resources, while integration of the real-time database enabled seamless document storage
and user authentication processes.

Overall, the project aimed to deliver a secure, user-friendly Android autofill


application, poised for deployment on Google Play Services.

Department of CSE, BMSIT &M 2023-24 Page |7


CHAPTER 3
REQUIREMENT SPECIFICATION
(REQ SPEC)
CHAPTER 3

REQUIREMENT SPECIFICATION

3.1. Mapping of Requirement


• Hardware Requirements: This section outlines the hardware specifications
necessary for running the Android autofill app and supporting blockchain
implementation. It includes specifications for both the Android device and the
server where the blockchain ledger will be hosted. These specifications ensure
that the app runs smoothly and efficiently.

• Software Requirements: This lists the required software components needed for
developing and running the autofill app. It includes the Android operating system,
the blockchain platform for secure data storage, backend programming language,
development environment, database management system, security measures,
machine learning libraries, and Continuous Integration/Continuous Deployment
(CI/CD) tools. These software components provide the necessary framework and
tools for building and deploying the app.

• Storage & Connectivity: This section specifies the storage and network
requirements for the app. It includes minimum storage requirements for the
Android device and the server hosting the blockchain ledger. Additionally, stable
internet connectivity is necessary for blockchain transactions to ensure data
integrity and security.

3.2. Functional Requirement


Functional Requirement defines a function of a software system and how the
system must behave when presented with specific inputs or conditions. These may
include calculations, data manipulation and processing and other specific
functionality. In our project following are the functional requirements:
[1] Form Filling Enhancement
This outlines the functional requirements related to improving the form filling
experience for users. It includes designing an intuitive interface for easy data
input and implementing machine learning algorithms to predict and automate

Department of CSE, BMSIT &M 2023-24 Page |8


Autofill Application REQUIREMENT SPECIFICATION

form field population based on user history. These enhancements aim to


streamline the form filling process and improve user efficiency.

[2] Blockchain Development


In this phase, an intermediate blockchain prototype will be developed using
Java. It will simulate block generation, transaction management, and basic
consensus mechanisms. This includes implementing block creation,
transaction processing, and proof-of-work mining algorithms. The goal is to
establish a foundational framework for subsequent integration with the
Android application, ensuring seamless data management and robust security
measures.

[3] Secure Data Storage


Here, the functional requirements for secure data storage using blockchain
technology are outlined. It includes leveraging blockchain for tamper-proof
data storage, implementing robust encryption methods, and smart contracts for
enhanced security.

3.3. Non-Functional Requirement


Non-functional requirements define the system's attributes such as performance,
security, usability, and reliability. They ensure that the system meets user expectations
beyond its basic functionality. In our project following are the non-functional
requirements:
[1] Security
• Ensure robust data protection and user privacy, employing advanced
encryption methods and adhering to privacy regulations.
• Implement secure authentication mechanisms to prevent unauthorized
access to user data.
[2] Performance
• Optimize application performance for speed and efficiency, crucial for
handling sensitive data.
• Conduct rigorous unit testing to assess performance benchmarks and

Department of CSE, BMSIT &M 2023-24 Page |9


Autofill Application REQUIREMENT SPECIFICATION
identify areas for optimization.
[3] Reliability
• Ensure seamless interaction between components and the Autofill
framework to enhance system reliability.
• Conduct ongoing system testing to identify and resolve potential issues,
ensuring the application's robustness and reliability.
[4] Usability
• Design an intuitive and user-friendly interface for easy navigation and
interaction with blockchain functionalities.
• Conduct usability testing to gather feedback and make improvements to
enhance the overall user experience.
[5] Scalability
• Ensure that the application and backend infrastructure can scale efficiently
to accommodate increased user demand and data storage requirements.
• Design the system architecture to support future updates and
enhancements without compromising performance or security.

3.4. User Requirements


[1] Intuitive Interface: This section outlines the user requirements related to
the app's interface. It includes the need for an intuitive interface that
facilitates easy data input and navigation, enhancing the overall user
experience.

[2] Efficient Form Filling: Here, the user requirements related to form filling
efficiency are outlined. It includes the need for predictive form field
population to streamline the form filling process and improve user
efficiency.

[3] Data Privacy and Security: This section details the user requirements
related to data privacy and security. It includes the need for assurance of
data security and privacy, ensuring that sensitive information stored in the
app remains protected from unauthorized access or disclosure.

Department of CSE, BMSIT &M 2023-24 P a g e | 10


Autofill Application REQUIREMENT SPECIFICATION

3.5. Domain-Specific Requirements


[1] Regulatory Compliance: This section outlines the domain-specific
requirements related to regulatory compliance. It includes adhering to data
protection regulations such as GDPR or HIPAA to ensure that the app complies
with relevant legal requirements.

[2] Industry Standards: Here, the domain-specific requirements related to


industry standards for secure data handling are outlined. It includes complying
with industry standards for secure data storage and transmission to ensure that
the app meets industry best practices.

[3] User Expectations: This section details the domain-specific requirements


related to user expectations for privacy and security. It includes meeting user
expectations regarding the protection of sensitive information and maintaining
user trust in the app's security measures.

3.6. System Requirements


3.6.1 Hardware Requirements
To ensure optimal performance and functionality of the system, specific
hardware configurations are necessary. The following hardware requirements
outline the recommended setup for running our project efficiently.

Android Device:
Minimum 2 GB RAM: Sufficient memory for smooth app operation.
Quad-core processor or higher: Ensures efficient processing power for running the
app.
Display resolution of 720x1280 pixels or better: Provides a clear and visually
pleasing interface for users.

Server (for Blockchain Implementation):


Dual-core processor or higher: Sufficient processing power to handle blockchain
transactions.
GB RAM or more: Adequate memory for running blockchain nodes and
maintaining the ledger.

Department of CSE, BMSIT &M 2023-24 P a g e | 11


Autofill Application REQUIREMENT SPECIFICATION
Adequate storage for blockchain ledger: Sufficient disk space to store the
blockchain data, depending on the expected volume of transactions.

Storage:
Android Device: Minimum 16 GB internal storage: Provides ample space for
storing app data and user information.
Server: Depending on data volume, 100 GB or more: Ensures sufficient storage
capacity for storing the blockchain ledger and associated data.

Network Connectivity:
Stable internet connection for blockchain transactions: Reliable internet
connectivity is required for communicating with the blockchain network and
validating transactions.

3.6.2 Software Requirements


In our project, software requirements outline the necessary tools, libraries, and
platforms needed to develop, deploy, and operate the system. These requirements
encompass the software environment, development frameworks, machine learning
libraries, and supporting technologies essential for building a robust and efficient
detection system.
[1] Android Operating System: Compatible with the Android platform for
running the autofill app.

[2] Blockchain Platform: The chosen blockchain platform for implementing


secure data storage, such as Ethereum or Hyperledger.

[3] Backend Programming Language: Programming language used for


developing the backend logic and integrating with the blockchain platform.

[4] Development Environment: Software tools and frameworks for app


development, such as Android Studio or Flutter.

[5] Database Management: Database management system for storing app data
and managing user information.

Department of CSE, BMSIT &M 2023-24 P a g e | 12


Autofill Application REQUIREMENT SPECIFICATION

[6] Security Measures: Implementation of security protocols and encryption


algorithms to protect sensitive data.

[7] Machine Learning Libraries: Libraries for implementing machine learning


algorithms for form filling enhancement and data extraction.

[8] Continuous Integration/Continuous Deployment (CI/CD): Tools and


processes for automating app deployment and ensuring continuous
integration and delivery.

Department of CSE, BMSIT &M 2023-24 P a g e | 13


CHAPTER 4
DETAILED DESIGN
CHAPTER 4

DETAILED DESIGN

4.1. System Architecture


System architecture refers to the high-level design of a complex system that defines
its structure, components, interactions, and principles of operation. It serves as a
blueprint for designing, building, and managing various types of systems, including
software, hardware, or a combination of both.

A well-defined system architecture outlines the system's functionality, performance


characteristics, and scalability, providing a roadmap for effective development. The
diagram illustrating the system architecture for our project is presented below:

Fig 4.1: System Architecture

Department of CSE, BMSIT &M 2023-24 P a g e | 14


Autofill Application DETAILED DESIGN

4.2. System Design


The system design encompasses the architecture and components that define how
our application functions. It involves planning and structuring various modules,
databases, and interfaces to achieve specific functionalities while ensuring
scalability, reliability, and security. By carefully designing the system, we aim to
create an efficient and user-friendly application that meets the needs of our users
while providing a seamless and enjoyable experience.

Fig 4.2: System Design

Department of CSE, BMSIT &M 2023-24 P a g e | 15


Autofill Application DETAILED DESIGN

4.3. Use Case Diagram


In UML, use-case diagrams model the behaviour of a system and help to capture the
requirements of the system. Use-case diagrams describe the high-level functions and
scope of a system. These diagrams also identify the interactions between the system
and its actors.

The use cases and actors in use-case diagrams describe what the system does and how
the actors use it, but not how the system operates internally. Use-case diagrams
illustrate and define the context and requirements of either an entire system or the
important parts of the system. The use case diagram in context of our project is
depicted below:

Fig 4.3: Use Case Diagram

Department of CSE, BMSIT &M 2023-24 P a g e | 16


Autofill Application DETAILED DESIGN

4.4. Class Diagram


A class diagram serves as a foundational blueprint in object-oriented modelling,
encapsulating the structure and relationships within a system's components. It
visually represents classes, their attributes, methods, and the associations between
these entities, offering a clear overview of the system's design. The class diagram in
context of our project is depicted below:

Fig 4.4: Class Diagram

Department of CSE, BMSIT &M 2023-24 P a g e | 17


Autofill Application DETAILED DESIGN

4.5. Sequence Diagram


A sequence diagram illustrates the interactions between objects or components in a
system over time, showcasing the flow of messages or events between them. It
visually represents the sequence of actions or steps required to accomplish a specific
task or scenario within the system. By depicting the chronological order of these
interactions, sequence diagrams help developers understand the behaviour and
communication patterns of the system's components, aiding in the design,
implementation, and debugging processes.

It incorporates the iterations as well as branching. The sequence diagram in context


of our project is depicted below:

Fig 4.5: Sequence Diagram

4.6. Data Flow Diagram


A data flow diagram (DFD) is a visual representation that illustrates how data flows
through a system, depicting the processes, data stores, and data sources involved. It
provides a clear overview of how data is input, processed, stored, and outputted
within the system, helping to identify potential bottlenecks, inefficiencies, or areas
for optimization. By mapping out the flow of data, DFDs aid in understanding the
system's data architecture and facilitate communication between stakeholders,
making them valuable tools for system analysis, design, and documentation.

Department of CSE, BMSIT &M 2023-24 P a g e | 18


Autofill Application DETAILED DESIGN

Fig 4.6: Data Flow Diagram

Department of CSE, BMSIT &M 2023-24 P a g e | 19


CHAPTER 5
IMPLEMENTATION
CHAPTER 5
IMPLEMENTATION

5.1. Programming Languages


A programming language is a structured set of instructions that enables a computer
to perform specific tasks or functions. It serves as a medium through which
developers communicate with machines, providing a framework for designing,
implementing, and managing software applications and systems. From simple
scripts to complex algorithms, programming languages facilitate the creation of
software that powers various aspects of modern technology, including websites,
mobile apps, operating systems, databases, and more.

5.1.1. Java
Java, a robust and versatile programming language, has solidified its
position as one of the most popular languages in the software development
landscape. Its extensive adoption is attributed to a multitude of factors that
contribute to its efficiency, scalability, and reliability.

One of Java's most notable features is its platform independence, achieved


through the concept of "write once, run anywhere." Java programs are
compiled into bytecode, a platform-neutral format that can be executed on
any device with a Java Virtual Machine (JVM). This inherent portability
makes Java an ideal choice for developing cross-platform applications,
reducing development time and effort.

At the core of Java's design philosophy lies its strong emphasis on object-
oriented programming (OOP) principles. Java provides support for
encapsulation, inheritance, and polymorphism, enabling developers to
build modular and reusable code. This promotes code organization,
enhances maintainability, and fosters scalability, making Java suitable for
projects of varying sizes and complexities.

Java's robustness is another key attribute that sets it apart. It incorporates


features like automatic memory management, commonly known as

Department of CSE, BMSIT &M 2023-24 P a g e | 20


Autofill Application IMPLEMENTATION
garbage collection, which helps manage memory efficiently by
automatically deallocating unused objects. Additionally, Java's exception
handling mechanism ensures robustness by providing a structured
approach to handling errors and preventing application crashes.

Scalability is another area where Java excels. Its support for multi-
threading and concurrency enables developers to build applications that
can efficiently utilize system resources and handle concurrent tasks. By
leveraging Java's threading model and concurrency utilities, developers
can create high-performance applications that can scale to meet the
demands of growing user bases and workloads.

Java boasts a vast ecosystem of libraries, frameworks, and tools that


streamline the development process and empower developers to build
powerful applications rapidly. Frameworks like Spring, Hibernate, and
Apache Struts provide comprehensive solutions for building enterprise-
grade applications, while tools like Maven and Gradle simplify
dependency management and project build automation.

Security is a top priority in Java development. The language includes built-


in security features like sandboxing, which restricts the actions that a Java
application can perform, preventing malicious code from causing harm.
Additionally, Java's bytecode verification process ensures the integrity and
safety of Java applications by verifying that bytecode adheres to certain
security constraints before execution.

Fig 5.1: Java

Department of CSE, BMSIT &M 2023-24 P a g e | 21


Autofill Application IMPLEMENTATION

5.2. Algorithm
5.2.1. SHA Algorithm
The SHA (Secure Hash Algorithm) is a family of cryptographic hash
functions designed to produce a fixed-size output (hash value) from an input
of arbitrary size. These hash functions are widely used in various security
applications, including digital signatures, message authentication codes
(MACs), and password hashing.

There are several versions of the SHA algorithm, each with different hash
lengths and security properties. Some of the most commonly used versions
include:
1. SHA-1: Developed by the National Security Agency (NSA), SHA-1
produces a 160-bit hash value. However, it is now considered insecure
due to vulnerabilities that have been discovered, making it susceptible
to collision attacks.

2. SHA-256, SHA-384, and SHA-512: These variants, collectively known


as SHA-2, produce hash values of 256, 384, and 512 bits, respectively.
SHA-256 is the most widely used variant and provides a higher level of
security compared to SHA-1.

3. SHA-3: This is the latest member of the SHA family, standardized by


the National Institute of Standards and Technology (NIST) in 2015. It
offers a different design from SHA-2 and provides improved security
properties. SHA-3 includes several hash functions, including SHA3-
224, SHA3-256, SHA3-384, and SHA3-512, which produce hash values
of different lengths.

The SHA algorithm operates in several steps:


1. Message Padding: The input message is padded to ensure that its length
is a multiple of the block size.

2. Initialization: The hash function's internal state is initialized to a

Department of CSE, BMSIT &M 2023-24 P a g e | 22


Autofill Application IMPLEMENTATION
predetermined initial value.

3. Processing Blocks: The input message is divided into fixed-size blocks,


and each block is processed sequentially using a compression function.
The compression function updates the hash function's internal state
based on the input block.

4. Finalization: After processing all blocks, the hash function's internal


state is processed to produce the final hash value. This may involve
additional processing steps, such as padding and transformation of the
internal state.

Fig 5.2: SHA-256 Flow Diagram

Department of CSE, BMSIT &M 2023-24 P a g e | 23


Autofill Application IMPLEMENTATION

5.3. Proposed Design


A proposed system is a conceptual solution that aims to accomplish specific objectives or
solve specific problems. It pertains to intended modifications or adjustments meant to
implement a brand-new system or enhance the operation of an already existing one. The
goal, key components, architectural design, chosen technologies, UI considerations,
integration techniques, security protocols, scalability, and performance requirements are
typically included in defining a proposed system. It also addresses protocols for testing,
resource requirements, cost estimates, documentation strategies, and implementation
plans.

The proposed approach to our project mainly focuses on 4 modules, each


interconnected with the other modules, thus binding all the features together. The modules
are the Driver module, Web Module, AI Prediction Module, and Feature Extraction from
URL module.

Fig 5.3: Proposed System

Blockchain Driver
The Blockchain Driver module orchestrates the encryption process utilizing the SHA-256
algorithm, a widely recognized cryptographic hashing function. Through Java's inline
functionalities, it efficiently generates complex hexadecimal representations of data,
which are subsequently converted into hash codes. This driver forms the backbone of data

Department of CSE, BMSIT &M 2023-24 P a g e | 24


Autofill Application IMPLEMENTATION
integrity and security within the blockchain network, ensuring tamper-proof transactions
and immutable records.

Backend (Android) Base


The Backend (Android) Base module serves as the core engine for user validation and
authentication processes within the Android application. It seamlessly interfaces with the
Login and Create-Account activities, managing user interactions during the critical
phases of registration and login. By implementing robust access control mechanisms and
user session management protocols, this module safeguards sensitive user data and
maintains system integrity.

AI Handler
The API Handler, a critical component implemented using Postman, acts as the
intermediary between disparate system components and external services. Leveraging
RESTful API endpoints, it facilitates seamless communication for data retrieval,
submission, and interaction with external platforms such as the Blockchain Driver and
Firebase console. This module ensures efficient data exchange and integration across the
application ecosystem, enhancing system scalability and flexibility.

Service Module
The Service Module, while currently serving primarily for resource management, holds
significant potential for future expansion and enhanced functionality within the
application architecture. Its stateful nature enables efficient management of system
resources and lays the groundwork for incorporating advanced features and services in
subsequent iterations of the application. As the project evolves, this module will play a
pivotal role in driving innovation and enhancing overall system performance.

Frontend (Android) Base


The Frontend (Android) Base module serves as the user-facing interface responsible for
rendering encrypted and mined data to the application's UI. Interacting with various views
and user inputs, it ensures a seamless and secure user experience while presenting
blockchain-related information. By implementing intuitive navigation and responsive
design principles, this module enhances user engagement and satisfaction, reinforcing the
application's usability and effectiveness.

Department of CSE, BMSIT &M 2023-24 P a g e | 25


Autofill Application IMPLEMENTATION

5.4. Code
5.4.1. SHA-256 Helper

Fig 5.4: SHA-256 Module

The provided Java code defines a SHA256Helper class with a static method
generateHash that generates a SHA-256 hash for a given input string. The
method obtains an instance of the SHA-256 MessageDigest, converts the
input string to a byte array, and computes the hash. The resulting byte array
is then converted to a hexadecimal string, which is returned as the hash value.
If an exception occurs, it is caught and rethrown as a RuntimeException.

5.4.2. Main Class


The provided Java code defines the Main class, which serves as the entry
point for creating and managing a simple blockchain. In this code, an
instance of the BlockChain class is created, followed by the instantiation of
a Miner class. The genesis block (block 0) is created with a predefined
previous hash and mined by the miner, who appends it to the blockchain.
Subsequent blocks (blocks 1 through 7) are created, each referencing the
hash of the previous block, and are mined and appended to the blockchain in
sequence. Finally, the entire blockchain is printed, and the miner's total

Department of CSE, BMSIT &M 2023-24 P a g e | 26


Autofill Application IMPLEMENTATION
reward is displayed.

Fig 5.5: Main Class

Department of CSE, BMSIT &M 2023-24 P a g e | 27


Autofill Application IMPLEMENTATION

5.4.3. Block Class


The provided Java code defines a Block class representing an individual
block in a blockchain. Each block contains an id, nonce, timeStamp, hash,
previousHash, and transaction. The constructor initializes these values, sets
the timestamp, and generates the block's hash using the generateHash
method, which combines the block's data and computes its hash using the
SHA256Helper. The class includes methods for retrieving and setting the
hash and previous hash, incrementing the nonce, and converting the block to
a string representation.

Department of CSE, BMSIT &M 2023-24 P a g e | 28


Autofill Application IMPLEMENTATION

Fig 5.6: Block Class

Department of CSE, BMSIT &M 2023-24 P a g e | 29


Autofill Application IMPLEMENTATION

5.4.4. Constants
The provided Java code defines a Constants class that holds constant values
used in the blockchain application. The DIFFICULTY constant sets the
mining difficulty by specifying the number of leading zeros required in a
valid block hash, set to 1 in this case. The MINER_REWARD constant
specifies the reward amount for mining a block, set to 10. The
GENESIS_PREV_HASH constant represents the previous hash for the
genesis block, which is a string of 64 zeros since it is the first block and has
no predecessor.

Fig 5.7: Constant Class

5.4.5. Blockchain Class


The provided Java code defines a BlockChain class that manages a list of
Block objects, representing a simple blockchain. The class uses an ArrayList
to store the blocks, providing methods to add a block (addBlock), retrieve
the blockchain (getBlockChain), and get the blockchain's size (size). The
toString method returns a string representation of the entire blockchain by
concatenating the string representations of each block.

Department of CSE, BMSIT &M 2023-24 P a g e | 30


Autofill Application IMPLEMENTATION

Fig 5.8: Blockchain Class

5.4.6. Miner Class


The provided Java code defines a Miner class responsible for mining blocks
in a blockchain. The class has a reward attribute and a mine method, which
takes a Block and a BlockChain as parameters. The mine method repeatedly
generates and increments the block's hash until it meets the required
difficulty specified by leading zeros. Once a valid hash is found, the block is
added to the blockchain, and the miner's reward is increased by a predefined
amount. The notGoldenHash method checks if the block's hash meets the
difficulty criteria, and the getReward method returns the miner's total
reward.

Department of CSE, BMSIT &M 2023-24 P a g e | 31


Autofill Application IMPLEMENTATION

Fig 5.9: Miner Class

Department of CSE, BMSIT &M 2023-24 P a g e | 32


CHAPTER 6
TESTING
CHAPTER 6

TESTING

System testing is a crucial phase in software development that involves evaluating a


complete, integrated system to ensure it meets specified requirements and functions as
intended. This testing phase assesses the system, examining interactions between
different components to identify and address any defects, inconsistencies, or
performance issues. Testing process, in a way certifies, whether the product, that is
developed, complies with the standards, that it was designed to. Testing process involves
building of test cases, against which , the product must be tested.

6.1. Test Objectives


• The primary objective of system testing is to verify the functional requirements
of the software system.

• System testing aims to evaluate the performance of the software system


assessing factors such as response times, resource utilization, scalability, and
reliability.

• System testing involves identifying and addressing any defects, errors, or


inconsistencies that could lead to system failures, crashes, or unexpected
behaviour, thereby enhancing the system's overall robustness and dependability.

• System testing includes compatibility testing to verify that the system operates
seamlessly across different platforms, devices, browsers, and configurations,
ensuring a consistent user experience across various environments.

6.2. Testing Phases


Testing involves evaluating every possible defect or vulnerability in a work product.
There are different types of tests, each tailored to meet specific testing need or
requirement. The main aim of testing this project is to check if the URL is being predicted
accurately and check the working performance when different URLs are given as inputs.

Department of CSE, BMSIT &M 2023-24 P a g e | 33


Autofill Application TESTING

6.2.1. Unit Testing


Unit testing, a fundamental aspect of software development, involves testing
individual units or components of a program to ensure they function correctly in
isolation. During the testing phase, rigorous unit testing was conducted on both
the Android Autofill class and block classes. The testing process focused on
evaluating the speed and optimizing benchmarks crucial for the effective
handling of sensitive data within the application. To ensure thorough analysis,
debuggers and system consoles were employed, enabling the generation of
breakpoints for fault analysis. Through these testing procedures, three major
faults were identified and effectively addressed, enhancing the reliability and
robustness of the application.

6.2.2. Validation Testing


Validation testing can be defined in many ways; here the testing validates the
software function in a manner that is reasonably expected by the customer. In
software project management, software testing, and software engineering,
verification, and validation (V&V) is the process of checking that a software
system meets specifications and that it fulfills its intended purpose. It may also
be referred to as software quality control.

6.2.3. Functional Testing


Functional testing is a type of testing that seeks to establish whether each
application feature works as per the software requirements. Each function is
compared to the corresponding requirement to ascertain whether its output is
consistent with the end user’s expectations. The testing is done by providing
sample inputs, capturing resulting outputs, and verifying that actual outputs are
the same as expected outputs.

Department of CSE, BMSIT &M 2023-24 P a g e | 34


Autofill Application TESTING

Function Name Expected Outcome Actual Outcome


Database Database system Database
Management efficiently stores and infrastructure
manages app data. effectively stores and
manages data.
Security Measures Implementation of security Security measures
protocols ensures effectively safeguard
protection of sensitive sensitive data.
data.
Machine Learning Libraries accurately Machine learning
Libraries implement machine libraries successfully
learning algorithms for enhance form filling
form filling enhancement and data extraction
and data extraction. functionalities.
Continuous CI/CD tools automate app CI/CD tools
Integration/Continuo deployment and ensure streamline app
us Deployment continuous integration and deployment and
(CI/CD) Tools delivery. facilitate continuous
integration and
delivery.

Table 6.1: Functional Testing

6.2.4. Integration Testing


Integration testing plays a crucial role in ensuring the seamless operation of
software components. In this phase, the testing primarily focused on validating
the connection between the cloud and the user interface (UI), which serves as the
sole public layer for data transfer. Since operations occur within the local device,
integration testing was encapsulated to assess the integration of various system
components. Thorough testing of the authentication class was conducted to detect
potential data leakage, involving manual comparison of received and hosted data.
Through meticulous testing procedures, any discrepancies or issues in the
integration process were identified and resolved, ensuring the robustness and
reliability of the application.

Department of CSE, BMSIT &M 2023-24 P a g e | 35


Autofill Application TESTING

6.2.5. System Testing


System testing for the project involves a comprehensive evaluation of the
entire application's functionality. This testing phase ensures that all
components of the Android autofill application, including the blockchain
integration, database management, security measures, and user interface,
operate seamlessly together. By executing various test scenarios, such as
logging into the application, adding new data entries, and testing the
autofill functionality, the system's robustness and reliability are assessed.
Furthermore, data retrieval from the cloud, encryption and decryption
processes, and the implementation of machine learning algorithms
undergo rigorous testing to verify their effectiveness. System testing aims
to identify and resolve any potential issues or discrepancies, ensuring the
application's integrity and stability. Through meticulous evaluation and
validation of the entire system's functionality, system testing plays a
crucial role in delivering a high-quality and reliable Android autofill
application to end-users.

6.3. Test Validation


Attributes Module Validation
User Login Page User should be able to log in with valid
Authentication credentials.

Data Entry Main Page User should be able to add new data
entries.
Data Retrieval Cloud Data should be retrieved from the cloud
without errors.
Encryption and Security Sensitive data should be encrypted and
Decryption decrypted securely.
Machine Machine Machine learning algorithms should
Learning Learning enhance form filling and data
Algorithms extraction.

Table 6.2: Test Validation

Department of CSE, BMSIT &M 2023-24 P a g e | 36


Autofill Application TESTING

6.4. Test Cases


A test case is a detailed set of conditions, variables, and procedures designed to
verify the functionality, performance, or other aspects of a software system or
component. It outlines specific inputs, expected outcomes, and the steps to be
followed to validate that a particular feature or functionality of the software
behaves as intended. Test cases are created based on requirements and
specifications, aiming to uncover defects, errors, or inconsistencies within the
system. They play a crucial role in ensuring software quality, facilitating effective
testing processes, and ultimately contributing to the reliability and success of the
software product.

6.4.1. Length of the String


Test Case TC001
Name of Test Length Calculation
Input "Hello World"
Input Type String
Expected Output Length: 11
Actual Output Length: 11
Result Success

Table 6.3: Length of the String

6.4.2. Complexity of Observation


Test Case TC002
Name of Test Data Complexity Analysis
Input Dataset
Expected Output Complexity level: High
Actual Output Complexity level: High
Result Success

Table 6.4: Complexity of Observation

Department of CSE, BMSIT &M 2023-24 P a g e | 37


Autofill Application TESTING

6.4.3. Concatenation Rate

Test Case TC003


Name of Test String Concatenation
Input Strings: "abc" and "def"
Expected Output Concatenated string: "abcdef"
Actual Output Concatenated string: "abcdef"
Result Success

Table 6.5: Concatenation Rate

6.4.4. Difficulty in Miner


Test Case TC004
Name of Test Mining Difficulty Assessment
Input String
Expected Output Miner should face moderate
difficulty
Actual Output Miner successfully encounters
moderate difficulty
Result Success

Table 6.6: Difficulty in Miner

Department of CSE, BMSIT &M 2023-24 P a g e | 38


CHAPTER 7
EXPERIMENTAL RESULTS
CHAPTER 7

EXPERIMENTAL RESULTS

7.1. Home Page


The homepage of our Android application offers a streamlined interface for users
to initiate new autofill entries with ease. Users can securely input and encrypt their
sensitive information, which is then hash-mapped for efficient storage and
retrieval. This simple yet powerful feature ensures that users can manage their
data conveniently while prioritizing privacy and security.

Fig 7.1: Home Page

7.2. Login
The login page of our Android application provides users with a straightforward
interface to access their accounts securely. It features fields for entering an email
address and password, ensuring that users can authenticate their identities
seamlessly.

Department of CSE, BMSIT &M 2023-24 P a g e | 39


Autofill Application EXPERIMENTAL RESULTS

Upon inputting their credentials, users can validate their login information by
clicking the LOGIN button. Robust validation mechanisms verify the accuracy of
the email address and password, ensuring the integrity of user authentication.
With a simple and efficient design, our login page offers users a reliable gateway
to access their accounts with confidence.

Fig 7.2: Login Page

7.3. Registration Page


Our registration page simplifies the account creation process by requesting users
to input their email address, password, and confirm the password. Once filled,
users can create their accounts by tapping the "Create Account" button.
Password validation ensures security. Additionally, users can easily navigate to
the login page for immediate access.

Department of CSE, BMSIT &M 2023-24 P a g e | 40


Autofill Application EXPERIMENTAL RESULTS

Fig 7.3: Registration Page

7.4. Verification for New User


Our email confirmation/verification process enhances account security by
requiring users to verify their email address. Upon registration, users receive an
email containing a verification link. Clicking this link confirms the validity of the
provided email address and completes the registration process. This ensures that
only legitimate users with access to the registered email can activate their
accounts. By clicking the verification link, users validate their email addresses
securely, enhancing the overall integrity of the registration process.

Department of CSE, BMSIT &M 2023-24 P a g e | 41


Autofill Application EXPERIMENTAL RESULTS

Fig 7.4: Email Verification Fig 7.5: Output Screen after


Email Verification

7.5. Autofill Entry Page


Our data entry screen for autofill simplifies the process of inputting sensitive
information securely. Users can conveniently enter their name, age, gender,
address, and Aadhar number into designated fields. The screen utilizes regular
expressions (regex) for real-time validation, ensuring that the entered data adheres
to specified patterns and formats.

This enhances data accuracy and minimizes errors during input. By incorporating
regex validation, users can confidently input their information, knowing that it
meets the required criteria. This streamlined approach to data entry enhances user
experience and reinforces data integrity within the application.

Department of CSE, BMSIT &M 2023-24 P a g e | 42


Autofill Application EXPERIMENTAL RESULTS

Fig 7.6: Add New Note Screen

7.6. Loading Screen


Our loading screen briefly appears during the application launch, providing users
with visual feedback while the app initializes. Designed for a seamless user
experience, it ensures users are aware that the application is loading and prevents
any perception of unresponsiveness. Despite its short duration, the loading screen
plays a crucial role in enhancing user perception of the app's performance and
professionalism. Its minimalist design and purposeful presence contribute to a
smooth and engaging user experience from the moment the app is launched.

Fig 7.7: Loading Screen

Department of CSE, BMSIT &M 2023-24 P a g e | 43


Autofill Application EXPERIMENTAL RESULTS

7.7. View Page


The view page allows users to access and manage their autofill entries efficiently.
Here, users can conveniently view all stored entries and edit them as needed. This
interface provides a user-friendly environment for organizing and updating
autofill information, enhancing user control and convenience. By offering
seamless access to stored entries and editing capabilities, the view page
streamlines the management of autofill data, ensuring users can easily maintain
and update their information as required.

Fig 7.8: View Autofill Form Fig 7.9 Edit Autofill Form

Department of CSE, BMSIT &M 2023-24 P a g e | 44


Autofill Application EXPERIMENTAL RESULTS

7.8. Model of the Project


The model creation is a pivotal milestone, bolstering system rebuilding for
upcoming form implementations. Added methods increase encapsulation,
restricting public access to vulnerable data. Operations are provided instead. This
approach ensures data security, with strings formatted for easy encryption into a
single hexadecimal code, facilitating streamlined data handling and transmission
for enhanced system robustness and integrity.

Fig 7.10: Project Model

Department of CSE, BMSIT &M 2023-24 P a g e | 45


Autofill Application EXPERIMENTAL RESULTS

7.9. Firebase Console


This shows how the Firebase console helps store data safely by giving each piece
of information a special code called a hash key. When user data is encrypted using
the Blockchain Driver, it's sent securely to Firebase through the API Handler. At
Firebase, it gets matched with a hash key, keeping it safe and organized. This
makes it easy to store and find encrypted user data.

Fig 7.11: Mapping Data to Hash Keys in Firebase Console

Department of CSE, BMSIT &M 2023-24 P a g e | 46


CHAPTER 8
CONCLUSION
CHAPTER 8

CONCLUSION
In conclusion, this project showcases the successful integration of object-oriented
programming (OOP) principles with cutting-edge blockchain technology to develop a
secure and efficient autofill service. By encapsulating complex cryptographic operations
and emphasizing data integrity within the blockchain structure, the system ensures robust
data protection. The Autofill Service module further enhances user convenience and
security by securely managing autofill entries, prioritizing user privacy while
maintaining code reusability and modularity. This project not only demonstrates the
practical application of OOP principles but also highlights the importance of user-centric
design and data security in modern software systems.

Department of CSE, BMSIT &M 2023-24 P a g e | 47


CHAPTER 9
FUTURE ENHANCEMENT
CHAPTER 9

FUTURE ENHANCEMENT
Future enhancements for our system include a strategic trajectory aimed at augmenting
functionality, fortifying security measures, and optimizing operational efficiency.
Principal among these initiatives is the integration of the Autofill Framework, poised to
streamline data input procedures, thereby enhancing user experience while fortifying
data security protocols. Concurrently, the project charts a course toward local blockchain
structure generation, fostering system decentralization and resilience by minimizing
reliance on external servers and fostering robust transaction validation mechanisms.

In tandem with these pivotal developments, the project envisages the


creation of a sustainable resource vault for document storage, alongside the
optimization of cloud encryption methodologies and data access protocols. These
endeavors underscore the project's unwavering commitment to fortifying data privacy
and system performance. By addressing critical areas such as authentication integrity,
decentralization imperatives, and data security modalities, the project aims to
consolidate its standing as a preeminent solution in blockchain-based data
management. Through strategic advancements and meticulous planning, the project
aims to adeptly navigate the evolving landscape of blockchain technology, ensuring
enduring relevance and efficacy in serving the dynamic needs of its users.

Department of CSE, BMSIT &M 2023-24 P a g e | 48


REFERENCES
[1] Docs-In-Blocks - A Blockchain-Based Document Handler for Candidate Verification,
2022.

[2] IEEE PUBLISHED PAPER ON Blockchain and Autonomous Vehicles: Recent


Advances and Future Directions, 2021.

[3] Decentralized File Transfer System Blockchain-based File Transfer, 2022.

[4] The Emperor’s New Autofill Framework: A Security Analysis of Autofill on iOS and
Android, 2021.

[5] Decentralized File Transfer System Blockchain-based File Transfer Anusree K, Jagan
Sathiaseelan Vadekkat, Abhinu R Dev, Abhinav Department of Computer Science &
Engineering Sahrdaya College of Engineering and Technology, Thrissur, Kerala, 2022.

[6] Blockchain-Based Address Alias System April 2021Journal of theoretical and applied
electronic commerce research 16(5):1280-1296.

[7] DocsInBlocks - A Blockchain-Based Document Handler for Candidate Verification


Vaibhav Vesmaker1, Prof. Sagar Kord.

[8] Docs-In-Blocks - A Blockchain-Based Document Handler for Candidate Verification,


2022.

[9] Ismail, R. Materwala, "Evolution of blockchain consensus algorithms: a review on


the latest milestones," Cybersecurity, Springer, 2024. [Online]. Available: https://
cybersecurity.springeropen.com. [Accessed: 28-May-2024].

[10] M. Gottlieb, C. Deutsch, F. Hoops, H. Pongratz, H. Krcmar, "Expedition to the


Blockchain Application Potential for Higher Education Institutions," Blockchain:
Research and Applications, ScienceDirect, 2024. [Online]. Available: https://
www.sciencedirect.com. [Accessed: 28-May-2024].

[11] W. Xiong, S. Guo, X. Yu, "Blockchain technology research and application: a


systematic literature review and future trends," arXiv.org, 2024. [Online]. Available:
https://arxiv.org/abs/2306.14802. [Accessed: 28-May-2024].

[12] "Recent Trends in Blockchain and Its Applications," MDPI, 2024. [Online].
Available: https://www.mdpi.com. [Accessed: 28-May-2024].

Department of CSE, BMSIT &M 2023-24 P a g e | 49


Autofill Application EXPERIMENTAL RESULTS

[13] M. Hyland, "Blockchain in Recruitment: Enhancing Transparency and Efficiency,"


Journal of Blockchain Technology and Applications, vol. 12, no. 2, pp. 154-162, May
2024.

[14] "South Korea Revolutionizes Job Applications with Blockchain Digital Badge,"
Coinspeaker, Apr. 5, 2024. [Online]. Available: https://www.coinspeaker.com/south-
korea-blockchain-job-applications. [Accessed: May 28, 2024].

[15] "Blockchain in HR: Revolutionizing Talent Acquisition and Management," PwC


Switzerland, 2024. [Online]. Available: https://www.pwc.ch/blockchain-hr. [Accessed:
May 28, 2024].

[16] "Top Blockchain Applications and Use Cases in 2023," G2 Learning Hub, 2023.
[Online]. Available: https://learn.g2.com/blockchain-applications. [Accessed: May 28,
2024].

[17] "46 Blockchain Companies to Know in 2024," Built In, 2024. [Online]. Available:
https://builtin.com/blockchain-companies. [Accessed: May 28, 2024].

Department of CSE, BMSIT &M 2023-24 P a g e | 50

You might also like