KEMBAR78
Sample Project Document | PDF | Computer Access Control | Computer Security
0% found this document useful (0 votes)
111 views69 pages

Sample Project Document

Uploaded by

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

Sample Project Document

Uploaded by

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

i

SECURE FILE MANAGEMENT SYSTEM ON CLOUD

By

S.SATHISHBABU

(8208E21CAR046)

Of

E.G.S PILLAY ENGINEERING COLLEGE (AUTONOMOUS)

NAGAPATTINAM

A PROJECT REPORT

Submitted to the

FACULTY OF INFORMATION AND COMMUNICATION ENGINEERING

In partial fulfillment of the requirements For the award of the degree


of
MASTER OF COMPUTER APPLICATIONS
ANNA UNIVERSITY
CHENNAI 600 025
MAY-2023
ii

E.G.S PILLAY ENGINEERING COLLEGE


(Autonomous)
Nagapattinam-611 002
Provisionally Accredited by NBA| Accredited by NAAC with ‘A’ Grade
Affiliated to Anna University, Chennai | Approved by AICTE, New
Delhi An ISO 9001:2015 Certified Institution
www.egspec.org
DEPARTMENT OF COMPUTER APPLICATIONS

BONAFIDE CERTIFICATE

Certified that this project report titled “SECURE FILE


MANAGEMENT SYSTEM ON CLOUD “ is the bonafide work of Mr. SATHISHBABU
(8208E21CAR046) who carried out the research under my supervision. Certified further,
that to the best of my knowledge the work reported here in does not form part of any other
project report or dissertation on the basis of which a degree or award was conferred on an
earlier occasion on this or any other candidate.

Supervisor Head of the Department

Submitted to Project and viva-voce Examination held on ……….........

(Internal Examiner) (External Examiner)


iii
iv
v

ABSTRACT

Cloud computing has become a popular solution for organizations to store and
process their data due to its scalability, cost-effectiveness, and accessibility. However,
cloud environments are vulnerable to security threats such as data breaches, unauthorized
access, and malicious attacks. This project aims to develop a secure data storage system
on the cloud that employs advanced security measures to protect sensitive data.

The proposed system will utilize encryption, access control, and authentication
mechanisms to ensure that data is securely stored and only authorized users have access
to it. Additionally, we will explore advanced techniques such as homomorphic
encryption to enable secure processing of data on the cloud. By leveraging the latest
cloud-based technologies and tools, we will develop custom software modules that
provide the necessary functionality for data encryption, access control, and
authentication. Ultimately, this project will provide a highly secure and reliable solution
for organizations seeking to store sensitive data on the cloud.
vi

ACKNOWLEDGEMENT

I immensely pleased in taking up this opportunity to think the Almighty for showing
his unlimited blessing upon me.

I take this opportunity to express our gratitude to our Respected founder Chairman
Smt. Jothimani Amma, G.S. Pillay for giving such a wonderful environment to express our
creative skills.

I own a special depth of gratitude to our Secretary Chev.Dr.S.Parameswaran,


M.Com, FCCA (London) for giving a motivation in all the aspects.

I sincerely thank our Principal, Dr.S.Ramabalan, M.E., Ph.D., for the institutional
support rendered to us.

I express my deep sense of gratitude to our Head of the Department Dr.J.Vanitha,


M.C.A., M.Phil, Ph.D., Professor for her constant guidance, motivation and co-operation
during the project work.

I express my deep sense of gratitude to our Staff Department Dr.J.Vanitha, M.C.A.,


M.Phil, Ph.D.,Associate Professor for her constant guidance, motivation and co-operation
during the project work.

I thank all of my family members, friends, teaching and non-teaching faculties of our
department for technical and moral support.
vii

TITLE PAGE i
BONAFIED CERTIFICATE ii
CONFIRMATION CERTIFICATE iii
PROJECT COMPLETION CERTIFICATE iv
ABSTRACT v
ACKNOWLEDGEMENT vi
TABLE OF CONTENT vii
LIST OF FIGURES ix
TABLE OF CONTENT
1. INTRODUCTION 1
1.1 Organization profile 1
1.2 Introduction to the project 2
1.3 Problem definition 3
1.4 System description 3
2. SYSTEM ANALYSIS 10
2.1 Existing System 10
2.2 Proposed System 11
3. DEVELOPMENT ENVIRONMENT 12
3.1 Hardware Environment 12
3.2 Software Environment 12
4. SYSTEM DESIGN 13
4.1 Feasibility Study 13
4.2 Data Flow Diagram 14
5. ARCHITECTURAL DESIGN 15
5.1 Visual Studio Code IDE 15
5.2 Javascript 16
5.2.1 Features of Javascript 16
5.2.2 Applications of Javascript 17
viii

5.3 Javascript Comments 18


5.3.1Types of Comments in Javascript 18
5.3.2 Variable name-identifiers 18
5.3 IDLE 19
5.3.1 Role of Javascript in CLOUD Development 21
5.3.2 Javascript in CLOUD Development 22

6. SYSTEM IMPLEMENTATION 26
6.1 Sample Coding 26
7. SOFTWARE TESTING 53
7.1 System testing 53
7.2 Testing methodologies 53
7.2.1. White Box Testing 53
7.2.2. Black Box Testing 53
7.2.3. Unit Testing 53
8. PERFORMANCE MAINTENANCE 54
8.1 Conclusion 54
8.2 Future Enhancement 54
9. APPENDIX 55
9.1 Sample Screenshots 55
10. REFERENCES 57
10.1 Book And Paper References 57
10.2 Website References 58
ix

LIST OF FIGURES

FIGURE NO FIGURE NAME PAGE NO

1 Data Flow Diagram 14


CHAPTER 1

INTRODUCTION

1.1 ORGANIZATION PROFILE:


Our organization is a leading provider of secure file management solutions for
businesses of all sizes. We offer advanced encryption techniques to protect data both in
transit and at rest, and we employ access control mechanisms to ensure that only authorized
users can access files. Our solutions are fully customizable and can be tailored to meet the
unique needs of each client.

We serve clients across a wide range of industries, including finance, healthcare, and
legal services. Our clients range from small startups to large multinational corporations, and
we are proud to have built long-standing relationships with many of them.

At our core, we believe that secure file management is essential for any organization
that deals with sensitive or confidential data. That's why we are committed to providing
reliable and secure solutions that enable our clients to store, share, and manage their files
with confidence.

Mission:
Our mission is to provide secure file management solutions that enable our clients to
store, share, and manage their data with confidence. We are committed to delivering high-
quality, reliable solutions that meet the unique needs of each client, while ensuring the
confidentiality, integrity, and availability of their data.

We believe that data is a critical asset for any organization and must be protected
against potential threats. That's why we are dedicated to using the latest technologies and
tools to provide advanced encryption, access control, and other security measures that ensure
the protection of our clients' files in the cloud.

We are committed to serving clients across a wide range of industries, including


finance, healthcare, and legal services, among others. Our solutions are fully customizable
and can be tailored to meet the specific needs of each client. We strive to build long-standing
relationships with our clients based on trust, collaboration, and a shared commitment to data
security and privacy.

Overall, our mission statement reflects our commitment to providing secure and
reliable solutions for file management in the cloud. We are dedicated to staying at the
forefront of this rapidly-evolving field and to delivering the best possible solutions to our
clients in the years to come.

1
Vision:
Our vision is to become the leading provider of secure file management solutions in the
cloud, trusted by businesses of all sizes around the world. We aim to be recognized as the go-
to company for organizations seeking reliable and secure solutions for storing, sharing, and
managing their data.

In pursuit of this vision, we are committed to delivering innovative, cutting-edge solutions


that leverage the latest technologies and tools in the field of secure file management. We
believe that data security and privacy are critical issues for businesses today and we strive to
provide the best possible solutions to ensure that our clients' data is safe and secure in the
cloud.

We envision a future where businesses can operate with confidence, knowing that their
critical data is protected by state-of-the-art encryption, access control mechanisms, and other
advanced security measures. We believe that our solutions will play a critical role in shaping
the future of data security and privacy in the cloud.

To achieve this vision, we are dedicated to the following core principles:

 Innovation: We believe that innovation is key to staying ahead of the competition and
delivering cutting-edge solutions that meet the evolving needs of our clients. We are
constantly exploring new technologies and tools to improve our products and services
and deliver the best possible solutions to our clients.
 Customer Focus: We are a customer-centric organization that puts the needs of our
clients first. We believe in building long-term relationships with our clients based on
mutual trust and respect. We listen carefully to our clients' needs and work closely
with them to deliver customized solutions that meet their unique requirements.
 Security: We take security seriously and believe that our clients' data should be
protected against all potential threats. We use state-of-the-art encryption, access
control mechanisms, and other advanced security measures to ensure that our clients'
data is safe and secure in the cloud.
 Reliability: We understand that our clients depend on us to provide reliable solutions
that they can count on. We are committed to delivering high-quality, dependable
solutions that meet the needs of our clients, even in the most challenging
environments.
 Social Responsibility: We believe that businesses have a responsibility to be socially
responsible and to contribute to the greater good. We are committed to upholding the
highest ethical standards in all of our operations and to making a positive impact on
society.

Overall, our vision reflects our commitment to being a leader in the field of secure file
management in the cloud. We are dedicated to delivering the best possible solutions to

2
1.2 INTRODUCTION OF THE PROJECT:

The project aims to provide a secure and reliable solution for file management in the
cloud. The cloud has become a popular choice for storing and sharing files due to its
convenience and accessibility. However, there are concerns about the security of the cloud,
particularly when it comes to sensitive and confidential data.

The objective of this project is to develop a cloud-based file management system that
addresses these concerns and provides businesses with a secure and reliable solution for
managing their data. The system will use state-of-the-art encryption, access control
mechanisms, and other advanced security measures to ensure that data is protected against all
potential threats.

The project will involve the development of a web-based interface that allows users to
upload, download, and manage their files securely in the cloud. The interface will be user-
friendly and intuitive, making it easy for users to manage their files without the need for
extensive technical knowledge.

The system will be designed to be scalable and adaptable, allowing businesses of all
sizes to use it effectively. It will also be customizable, allowing businesses to tailor the
system to their specific needs and requirements.

In addition to providing secure file management, the system will also include a range
of other features to enhance productivity and collaboration. For example, users will be able to
share files with other users, set permissions and access levels, and collaborate on files in real-
time.

The project will be developed using the latest technologies and tools in the field of
secure file management in the cloud. This will include the use of encryption algorithms,
access control mechanisms, and other advanced security measures to ensure that data is
protected at all times.

The development process will be guided by best practices in software development,


including agile methodologies and continuous integration and deployment. This will ensure
that the system is developed efficiently and effectively, with a focus on quality and reliability.

The project team will include experienced developers, designers, and project
managers with a proven track record in developing secure and reliable software solutions.
The team will work closely with stakeholders to ensure that the system meets their needs and
requirements.

3
Overall, the project aims to provide a secure and reliable solution for file management
in the cloud, addressing the concerns of businesses about the security of their data. The
system will be user-friendly, customizable, and scalable, making it suitable for businesses of
all sizes. The project will be developed using the latest technologies and tools in the field of
secure file management, ensuring that the system is reliable, efficient, and effective.

1.3 PROBLEM DEFINITION:


As more businesses turn to cloud-based file management, security concerns around
the storage and management of sensitive data continue to grow. Cloud storage can present a
range of potential security threats, including data breaches, hacking, and unauthorized access.
To ensure the safety of sensitive data in the cloud, businesses need to adopt a secure file
management system that incorporates features such as encryption, access control, scalability,
user experience, and collaboration.

1.4 SYSTEM DESCRIPTION:


1.4.1 ENCRYPTION AND DECRYPTION MECHANISMS:
Data encryption and decryption are critical components of a secure file management
system in the cloud. Encryption is the process of converting data into an unreadable format
using an encryption algorithm, while decryption is the process of converting the encrypted
data back into its original format using a decryption key. Encryption is essential to protect
sensitive data from unauthorized access, theft, and other security threats.

In a secure file management system, all data should be encrypted before it is


transmitted to the cloud. The encryption should be done using robust encryption algorithms
such as AES, RSA, or SHA-256, which are considered to be the gold standard in encryption.
Additionally, the encryption keys should be generated using secure random number
generators to prevent attackers from guessing them.

Once the data is stored in the cloud, it should remain encrypted until it is retrieved by
an authorized user. When a user requests access to a file, the system should verify their
identity and provide them with the decryption key needed to access the file. The decryption
key should only be provided to authorized users and should be transmitted securely to prevent
interception by attackers.

It's important to note that data encryption is not a one-time process, but an ongoing
process. The system should regularly update encryption keys and rotate them to ensure that
the data remains secure. Additionally, if a user account is compromised, the system should
immediately revoke their access to prevent unauthorized access to encrypted data.

4
In summary, data encryption and decryption are essential components of a secure file
management system in the cloud. The encryption process should use robust encryption
algorithms and secure key generation methods, and the decryption key should only be
provided to authorized users. Regular updates and key rotation should be done to ensure data
remains secure

1.4.2 ACCESS CONTROL AND AUTHORIZATION:


Access control and authorization are critical components of a secure file management
system in the cloud. These processes determine who can access files and what actions they
can perform on them. Access control and authorization help ensure that data is protected from
unauthorized access and modification, making them essential for maintaining the security and
integrity of files stored in the cloud.

Access control refers to the process of controlling access to files and resources.
Access control policies define which users or groups have access to specific files or
resources, and what actions they can perform on them. The principle of least privilege is a
critical concept in access control, meaning that users are only given the minimum access they
need to perform their job functions. Strong authentication mechanisms, such as multi-factor
authentication, should be used to verify the identity of users before granting access to files or
resources.

Authorization is the process of verifying that users have the necessary permissions to
perform specific actions on files or resources. It involves verifying that a user has the
necessary permissions to perform a specific action on a file or resource, based on their role,
group, or specific permissions granted.

To implement access control and authorization in a secure file management system in


the cloud, various techniques and mechanisms can be used. These include role-based access
control (RBAC), attribute-based access control (ABAC), and discretionary access control .

Role-based access control is a widely used access control mechanism that assigns
roles to users based on their job function. Users are then granted access to files and resources
based on their assigned role. RBAC simplifies the management of permissions by grouping
users with similar job functions together, and can help ensure that users only have access to
files and resources necessary for their role.

Attribute-based access control is a more granular access control mechanism that takes
into account additional attributes such as time of day, location, and the user's security
clearance level. This type of access control can provide more fine-grained control over access
to files and resources.

Discretionary access control is another access control mechanism that grants users
control over the access rights to their files and resources. Users can grant or revoke access to
their files and resources as they see fit.

5
In conclusion, access control and authorization are critical components of a secure file
management system in the cloud. To ensure that access control and authorization are
effective, policies and mechanisms should be based on the principle of least privilege, and
strong authentication mechanisms such as multi-factor authentication should be used to verify
user identity. Access control mechanisms such as role-based access control, attribute-based
access control, and discretionary access control can be used to ensure that users only have
access to files and resources necessary for their role.

1.4.3. ROLE-BASED ACCESS CONTROL:


Role-based access control (RBAC) is a security mechanism used in many
organizations to control access to resources, including files, in a cloud environment. The
basic concept of RBAC is to assign roles to users or groups and then grant permissions to
those roles, rather than to individual users. This approach helps to simplify the management
of access control by reducing the number of individual user permissions that need to be
managed.

RBAC is a widely accepted and recognized standard in access control for cloud
environments, and it has been adopted by many organizations as the preferred method for
managing access to files and other resources. In an RBAC system, each role is assigned a set
of permissions that are required to perform a specific set of tasks. These roles are then
assigned to users or groups, providing them with the necessary access to perform their job
functions.

One of the key advantages of RBAC is that it can help to reduce the risk of
unauthorized access to files in a cloud environment. By assigning roles to users or groups
based on their job functions and responsibilities, RBAC ensures that users only have access
to the resources that are necessary for them to perform their job duties. This helps to limit the
risk of accidental or intentional data breaches that could result from users having access to
files that they do not need to see.

1.4.4 AUDIT TRAIL AND LOGGING:

Audit trails and logging are essential components of any secure file management
system in the cloud. They help to ensure that access to files is properly monitored and
tracked, enabling organizations to identify and respond to potential security threats or
breaches.

An audit trail is a record of all activity related to file access and management,
including who accessed the file, when they accessed it, and what actions they took. This
information is stored in a centralized database, making it easy to search and analyze. Audit
trails can be used for a variety of purposes.

6
Logging is another critical component of secure file management in the cloud.
Logging involves the collection and storage of system events and activities, such as user
logins, file access, and system configuration changes. This information can be used to
identify security incidents or suspicious activity, and can also help to troubleshoot issues and
diagnose system problems.

By implementing an audit trail and logging system, organizations can ensure that
access to files in the cloud is properly monitored and tracked. This can help to detect and
respond to security incidents in a timely manner, reducing the risk of data breaches or other
security threats.

In addition to monitoring file access, audit trails and logging can also be used to track
changes to file permissions, user roles, and other access control settings. This information can
help organizations to identify and remediate potential security vulnerabilities or
misconfigurations in their cloud environments.

Overall, audit trails and logging are critical components of a secure file management
system in the cloud. By providing a record of all file access and system activity,
organizations can more effectively monitor and manage access to sensitive data, reducing the
risk of data breaches and other security incidents.
1.4.5 COMPLIANCE AND REGULATORY STANDARDS:

Compliance and regulatory standards play a critical role in ensuring the security of
file management in the cloud. Organizations that store sensitive data in the cloud must
comply with a variety of regulations and standards, including HIPAA, GDPR, PCI DSS, and
SOC 2.

HIPAA (Health Insurance Portability and Accountability Act) requires organizations


that handle sensitive healthcare information to implement appropriate safeguards to protect
patient privacy and security. This includes implementing access controls, encryption, and
audit trails to ensure that only authorized users can access sensitive data.

GDPR (General Data Protection Regulation) is a European Union regulation that


requires organizations to protect the privacy and security of personal data. Organizations
must implement appropriate security measures to prevent unauthorized access to personal
data, including implementing access controls, encryption, and audit trails
.
PCI DSS (Payment Card Industry Data Security Standard) is a set of security
standards developed by major credit card companies to protect payment card information.
Organizations that store payment card data must comply with PCI DSS, which requires them
to implement access controls, encryption, and audit trails to protect sensitive data.

SOC 2 (System and Organization Controls) is a set of standards developed by the


American Institute of Certified Public Accountants (AICPA) to ensure that organizations
have adequate controls in place to protect customer data.

7
To ensure compliance with these regulations and standards, organizations must
implement appropriate security measures, such as access controls, encryption, and audit
trails. They must also conduct regular security assessments and audits to identify potential
vulnerabilities and address them before they can be exploited by attackers.

Overall, compliance and regulatory standards are critical to ensuring the security of
file management in the cloud. By complying with these standards, organizations can reduce
the risk of data breaches and other security incidents, protecting sensitive data and preserving
customer trust.

1.4.6 DISASTER RECOVERY AND BUSINESS CONTINUITY:


Disaster recovery and business continuity are critical aspects of any IT infrastructure,
including cloud-based file management systems. These systems need to have measures in
place to ensure that data can be recovered in the event of a disaster and that business
operations can continue with minimal disruption. In this section, we will discuss the
importance of disaster recovery and business continuity in the context of secure file
management in the cloud.

Disaster recovery refers to the process of recovering data and restoring IT systems
after a disaster. Disasters can come in many forms, such as natural disasters like floods,
earthquakes, and hurricanes, or man-made disasters like cyberattacks, power outages, and
hardware failures. To ensure that data can be recovered in the event of a disaster, cloud-based
file management systems need to have a robust disaster recovery plan in place. This plan
should include regular backups of data and systems, as well as procedures for restoring data
and systems in the event of a disaster.

Business continuity refers to the ability of an organization to continue operations in


the event of a disruption. Cloud-based file management systems need to have measures in
place to ensure that business operations can continue even if there is a disruption. This can
include measures such as redundant systems and data centers, failover procedures, and
contingency plans.
1.4.7 INTERGRATION WITH THIRD PARTY APPLICATION
Integration with third-party applications is an important aspect of secure file
management in the cloud. Many organizations rely on a variety of applications to manage
their business processes, and being able to integrate these applications with their file
management system is essential for seamless workflows.

Cloud file management systems offer a variety of integration options, including APIs,
SDKs, and webhooks. These integration methods allow organizations to connect their file
management system with other applications, such as customer relationship management
(CRM) systems, enterprise resource planning (ERP) systems, and project management tools.

8
1.4.8. USER INTERFACE AND EXPERIENCE:
User Interface and Experience (UI/UX) play a crucial role in the success of any
software application, including cloud-based file management systems. A well-designed
UI/UX not only enhances user satisfaction but also helps in increasing productivity and
reducing errors. In the context of secure file management in the cloud, UI/UX should ensure
that users can easily and intuitively navigate through the system, access their files securely,
and perform necessary actions without compromising the security of the system.

A user-friendly interface with clear and concise instructions can help users understand
the different security measures in place and how to use them effectively. This includes the
use of strong passwords, two-factor authentication, and encryption keys. Additionally, users
should be able to easily manage their own files, including uploading, downloading, sharing,
and deleting, without compromising the security of the system.

Another important aspect of UI/UX in secure file management is the ability to provide
detailed information about the security of the system, including compliance with industry
standards and regulatory requirements. This information should be presented in a clear and
concise manner, with appropriate links to additional resources or documentation. Users
should also have the ability to customize their own settings, such as notifications and alerts,
based on their specific needs and preferences.

Finally, the UI/UX should also include features that help users troubleshoot issues
related to file management and security. This may include a help desk or support center, as
well as detailed documentation and tutorials on the various features of the system.

In summary, a well-designed UI/UX is crucial for ensuring the success of a secure file
management system in the cloud. It should provide users with clear and concise instructions,
detailed information about security measures, and the ability to customize settings and
troubleshoot issues. By prioritizing UI/UX in the development of secure file management
systems, organizations can help ensure user adoption and satisfaction, as well as the overall
security and integrity of the system.

In addition to providing a secure and reliable system for file management, it is also
important to ensure a positive user experience. The user interface should be intuitive and easy
to use, allowing users to quickly and easily upload, access, and manage their files. It should
also provide features such as search and filtering to help users find the files they need.

Another important aspect of user experience is customization. Users should be able to


customize the interface to suit their preferences and workflows, such as setting up folders and
tags or adjusting the display settings. By providing a customizable user interface, the system
can cater to the unique needs and preferences of each user, further enhancing their experience
and productivity.

9
CHAPTER 2

SYSTEM ANALYSIS

2.1 EXISTING SYSTEM:


The existing system for file management in cloud typically involves a traditional
client-server model. Users upload files to the server and can access them from anywhere
using their login credentials. However, these systems often lack adequate security measures
to protect sensitive data. For instance, access control and authorization are often limited, and
data encryption may not be strong enough to prevent unauthorized access.

Moreover, the traditional systems may have limitations in terms of scalability and
performance, especially when dealing with large files and multiple users. These limitations
can result in slow upload and download speeds, which can negatively impact productivity.
Therefore, there is a need for a more secure and efficient file management system that can
meet the demands of modern businesses and organizations.

2.2.1 LIMATIONS OF EXISTING SYSTEM:


1. Limited access control and authorization mechanisms: The existing systems may have
limited access control and authorization mechanisms, which can lead to unauthorized
access and data breaches.
2. Weak data encryption: The encryption algorithms used in the existing systems may
not be strong enough to prevent data breaches and cyber-attacks.
3. Limited scalability: Traditional client-server file management systems may have
limitations in terms of scalability, especially when dealing with large files and
multiple users.
4. Inefficient file transfer: Existing systems may have limitations in terms of file transfer
speeds, which can negatively impact productivity.
5. Lack of integration with third-party applications: Many existing file management
systems do not integrate well with third-party applications, limiting their functionality
and flexibility.
6. No disaster recovery plan: Existing systems may not have a disaster recovery plan in
place, which can result in loss of data in case of unexpected events such as hardware
failures or natural disasters.
7. Compliance issues: Existing systems may not be compliant with industry regulations
such as HIPAA or GDPR, which can result in penalties and legal issues.
8. Poor user experience: Existing systems may have a poor user interface and user
experience, leading to frustration and inefficiency among users.

10
2.2 PROPOSED SYSTEM:

The proposed system for secure file management in the cloud includes several
features to address the limitations of the existing system. One of the key features is data
encryption, which will ensure that all files and data stored in the cloud are securely encrypted
and cannot be accessed or viewed by unauthorized users. This feature will use advanced
encryption algorithms to protect data at rest and in transit, making it virtually impossible for
hackers or cybercriminals to intercept or steal data.

Other features of the proposed system may include access control and authorization,
audit trail and logging, compliance and regulatory standards, disaster recovery and business
continuity, integration with third-party applications, user interface and experience, and more.
These features will all work together to ensure that the system is highly secure, reliable, and
easy to use, providing users with the peace of mind they need to store and manage their files
in the cloud with confidence.

In summary, the proposed system for secure file management in the cloud will offer a
range of advanced features and capabilities designed to address the limitations of the existing
system and provide users with a highly secure and reliable platform for storing and managing
their files. By implementing these features and leveraging the latest technologies and best
practices in cloud security, the proposed system will help organizations of all sizes protect
their data and reduce the risk of cyberattacks and data breaches.

2.2.2 ADVANTAGES:
1. Improved security: The proposed system includes features such as data encryption,
auto logout, and two-step verification to ensure that files are stored securely and only
authorized users can access them.
2. Reduced risk of data breaches: With stronger security measures in place, the risk of
data breaches is significantly reduced, which can help protect sensitive information
and avoid costly legal and financial consequences.
3. Enhanced user control: The proposed system allows for more granular control over
user permissions and access levels, giving administrators greater control over who can
view, edit, or share files.
4. Greater accessibility: With files stored securely in the cloud, authorized users can
access them from anywhere, at any time, using any device with an internet
connection.
5. Simplified collaboration: The proposed system includes features for sharing and
collaborating on files securely, making it easier for teams to work together and
streamline workflows.
6. Scalability: As organizations grow and their storage needs increase, the proposed
system can easily scale to meet those needs without requiring significant hardware
upgrades or additional IT resources.

11
CHAPTER 3

DEVELOPMENT ENVIRONMENT

3.1 HARDWARE ENVIRONMENT:

 Processor : i3 10th Gen processor 2.6.0 GHZ


 RAM : 8GB
 SSD : 256 GB
 Keyboard : Standard Laptop keyboard
 Monitor : 16 inch colour monitor

3.2 SOFTWARE ENVIRONMENT:

 Operating system : Windows 11


 Front End : React JS
 Back end : Backendless,Firebase
 Tool : VS Code

12
CHAPTER 4

SYSTEM DESIGN

4.1 FEASIBILITY STUDY:


A feasibility study is a critical step in determining the viability of any project, including
the implementation of a secure file management system in the cloud. This study evaluates the
project's technical, operational, economic, legal, and scheduling feasibility. Let us explore
each of these aspects in detail:

 Technical Feasibility: This aspect of the feasibility study determines whether the
proposed system is technically possible. It involves assessing the hardware and
software requirements, system architecture, network infrastructure, and data
transmission speed. The technical feasibility study determines the system's
compatibility with existing hardware and software and the potential for the system to
meet user requirements.
 Operational Feasibility: This aspect of the feasibility study assesses the impact of
the proposed system on the current business operations. The study identifies the
potential issues that may arise in implementing the system, such as staff training,
system maintenance, and operational costs.
 Economic Feasibility: This aspect of the feasibility study examines the financial
viability of the proposed system. The study includes the cost-benefit analysis of the
project, identifying the initial and recurring costs and the potential benefits that the
system will provide. It also examines the return on investment (ROI) and the break-
even point for the project.
 Legal Feasibility: This aspect of the feasibility study examines the legal issues
surrounding the implementation of the proposed system. It assesses the legal
requirements for data protection, privacy, and data access in the jurisdiction where the
system will operate.
 Scheduling Feasibility: This aspect of the feasibility study evaluates the proposed
system's ability to meet the project timeline. It assesses the time required to design,
develop, test, and implement the system and determines whether it can be done within
the required timeframe.
 Technical Expertise: The feasibility study evaluates the technical expertise required
for the project's successful implementation. It identifies the technical resources
required for the project and assesses whether the organization has the necessary
technical expertise to undertake the project.
 Resource Availability: The study also evaluates the availability of resources such as
finance, human resources, and hardware required for the project's successful
implementation. It identifies the potential challenges in securing the necessary
resources and explores the alternatives to overcome these challenges.
 Risk Assessment: The feasibility study includes a risk assessment of the proposed
system. It identifies the potential risks that may arise in implementing the system and
proposes measures to mitigate these risks.
 Scalability: The study also evaluates the system's scalability, i.e., its ability to handle
increasing data volumes and users as the business grows.
 Environmental Impact: Finally, the feasibility study evaluates the potential
environmental impact of the proposed system. It assesses the system's energy
requirements and its impact on the environment, and proposes measures to mitigate
any negative effects.
In conclusion, a feasibility study is critical in determining the viability of implementing a
secure file management system in the cloud. The study evaluates various aspects, including
technical, operational, economic, legal, and scheduling feasibility, to determine the system's
compatibility with existing hardware and software and the potential for the system to meet
user requirements. By conducting a thorough feasibility study, organizations can identify
potential issues and opportunities for improvement and make informed decisions about the
project's viability.

4.2 DATA FLOW DIAGRAM:

14
CHAPTER 5

ARCHITECTURAL DESIGN

5.1 VISUAL STUDIO CODE IDE:

Visual Studio Code (VS Code) is a popular source code editor developed by
Microsoft for Windows, Linux, and macOS. It has gained immense popularity in the
developer community due to its rich features and extensive customization options.

VS Code is free and open-source software, which means anyone can download, use,
and contribute to the development of the editor. It offers a streamlined and intuitive user
interface that makes it easy to use for beginners and experienced developers alike.

One of the standout features of VS Code is its extensive support for a wide range of
programming languages and frameworks. It provides syntax highlighting, auto-completion,
and other language-specific features for popular programming languages like JavaScript,
Python, and Java, as well as less common languages like Rust, Lua, and PowerShell.

Another key feature of VS Code is its built-in Git integration. This allows developers
to manage their code repositories directly from the editor, without having to switch to a
separate Git client. VS Code also has an extensive marketplace with thousands of extensions
that developers can install to further customize their editing experience.

In addition to its editing features, VS Code also includes a powerful debugging and
testing suite. Developers can run and debug their code directly from the editor and set
breakpoints to step through their code and identify issues.

VS Code also has an active community of developers who contribute to the


development of the editor by creating extensions, providing support on forums, and
contributing to the codebase. This community-driven development approach has led to a
vibrant ecosystem around VS Code, with many useful extensions and plugins available.

Overall, VS Code is a powerful and flexible source code editor that is well-suited for a
wide range of programming tasks. Its extensive features, intuitive user interface, and active
development community have made it a favorite among developers worldwide.

Another advantage of VS Code is its extensive library of extensions. These extensions


allow developers to customize their coding experience.

Finally, VS Code has a strong community of developers who contribute to its


development and support. This means that users can benefit from bug fixes, new features, and
updates on a regular basis. The community also provides support and resources, including
documentation, forums, and tutorials, making it easy for developers to get help when they
need it.
15
5.2. JAVASCRIPT:

JavaScript is a programming language that is widely used for developing web-based


applications. It is a high-level, interpreted language that runs on the client-side of web
applications, allowing developers to add dynamic and interactive elements to web pages.
JavaScript was created by Brendan Eich in 1995 while he was working for Netscape
Communications Corporation, and it was initially called Mocha. Later it was renamed to
LiveScript and finally to JavaScript.

JavaScript can be used for a wide range of tasks, such as validating user input, creating
interactive web applications, and manipulating web page content. It is a versatile language
that can be used for both front-end and back-end development, and it is often used in
combination with other web development technologies such as HTML and CSS.
Additionally, JavaScript has a large and active community of developers who have created
numerous libraries and frameworks that simplify and streamline the development process.
5.2.1 FEATURES OF JAVASCRIPT:
 Object-Oriented Programming (OOP): JavaScript is an object-oriented
programming language that uses objects to represent data and functions.

 Dynamic Typing: JavaScript is dynamically typed, meaning that variables can


change their data type during runtime.

 High-Level Programming: JavaScript is a high-level programming language, which


means that it is closer to natural human language than to machine language.

 Interpreted Language: JavaScript is an interpreted language, meaning that the code


is executed directly by the browser, without the need for compilation.

 Easy to Learn: JavaScript is relatively easy to learn, especially for beginners, as it


has a simple syntax and requires no special tools or software to run.

 Versatile: JavaScript is versatile and can be used for a wide range of applications,
from creating web pages to developing mobile applications.

 Platform Independent: JavaScript is platform-independent, meaning that it can run


on any operating system, including Windows, Mac, and Linux.

 Event-Driven Programming: JavaScript is an event-driven programming language,


meaning that it is designed to respond to events such as mouse clicks, page loads, and
user input.

16
 Client-Side Scripting: JavaScript is primarily used for client-side scripting, which
means that it runs on the client's computer rather than on the server.

 Functional Programming: JavaScript supports functional programming paradigms,


which means that it treats functions as first-class citizens and can be used as
arguments and return values.

 Supports Asynchronous Programming: JavaScript supports asynchronous


programming, which allows code to run in the background while the main thread
continues to execute other code.

 Cross-Browser Compatibility: JavaScript is widely supported by all major browsers,


including Chrome, Firefox, Safari, and Internet Explorer.

 Debugging Capabilities: JavaScript provides powerful debugging capabilities,


allowing developers to identify and fix bugs in their code easily.

 Libraries and Frameworks: JavaScript has a vast library of pre-built functions and
frameworks, such as jQuery, React, and Angular, which makes it easier to develop
complex applications.

 Open-Source: JavaScript is an open-source programming language, which means that


it is freely available and can be modified and redistributed by anyone.

5.2.2 APPLICATIONS OF JAVASCRIPT:


JavaScript is a versatile programming language that can be used in a variety of applications,
including secure file management in the cloud. Here are some specific applications of
JavaScript in this context:
 User interfaces: JavaScript is widely used to create dynamic and interactive user
interfaces. In the case of secure file management in the cloud, JavaScript can be used
to create a user-friendly interface for uploading, downloading, and managing files.
 Data validation: JavaScript can be used to validate user input and ensure that the data
being uploaded or accessed is secure and valid.
 Data visualization: JavaScript can be used to create visual representations of data,
such as charts and graphs, which can be helpful for analyzing and understanding file
usage and access patterns.
 Client-side encryption: JavaScript can be used to perform client-side encryption of
files before they are uploaded to the cloud. This can provide an additional layer of
security for sensitive data.
 Integration with cloud storage services: Many cloud storage services, such as
Dropbox and Google Drive, offer JavaScript APIs that allow developers to integrate
their applications with these services.
 Real-time collaboration: JavaScript can be used to create real-time collaboration
features, such as simultaneous editing and commenting, for cloud-based files.
 Automated file management: JavaScript can be used to automate file management
tasks, such as backup and synchronization
17
 Custom workflows: JavaScript can be used to create custom workflows and business
processes that are specific to the needs of the organization.
 Cross-platform compatibility: JavaScript is compatible with a wide range of
platforms and devices, making it a versatile language for secure file management in
the cloud.
 User authentication and authorization: JavaScript can be used to implement user
authentication and authorization protocols to ensure that only authorized users have
access to sensitive files.
 Mobile app development: JavaScript can be used to develop mobile apps for secure
file management on smartphones and tablets.
 Cloud-based analytics: JavaScript can be used to analyze usage patterns and access
logs for cloud-based files, which can provide insights into file sharing and
collaboration behavior.

5.3 JAVASCRIPT COMMENTS:


JavaScript comments are an essential feature of JavaScript programming, which allow
developers to add annotations, notes, and reminders within the code. JavaScript comments are
used to describe the code, its purpose, and its functionality, making it easier for developers to
understand and maintain the codebase. There are two types of JavaScript comments: single-
line comments and multi-line comments.

Comments in JavaScript are ignored by the interpreter, which means that they do not
affect the performance of the code. However, they are an essential tool for developers to
understand and maintain the codebase.

5.3.1 TYPES OF COMMENTS IN JAVASCRIPT:

There are two types of comments in Javascript.


1. Single line comment
2. Multiple line comment

5.3.1.1.Single line comment:

Single-line comments are used to add comments on a single line of code. They start
with two forward slashes (//) and continue until the end of the line. For example

// This is a single-line comment

18
5.3.1.2.Multi-line comment:
Multi-line comments are used to add comments that span multiple lines of code. They
start with /* and end with */. For example:

/*
This is a multi-line comment
that spans multiple lines of code
*/

5.3.2 VARIABLE NAME – IDENTIFIERS:


In JavaScript, a variable name or identifier is a name given to a variable that is used to refer
to it in the code. Identifiers can be used to represent a variety of things such as variables,
functions, and objects.
Here are some guidelines for naming variables in JavaScript:
 Variable names can only contain letters, digits, underscores, and dollar signs. They
cannot start with a digit.
 JavaScript is case-sensitive, so variable names are also case-sensitive.
 Variable names should be descriptive and meaningful, so that it is easy to understand
what they represent.
 Avoid using reserved words as variable names, as they are already used for specific
purposes in JavaScript.

5.3.3 IDLE:

There is no specific IDE (Integrated Development Environment) for JavaScript


known as "IDLE" like there is for Python. However, there are several IDEs and code editors
that support JavaScript development.

There is no specific IDE (Integrated Development Environment) for JavaScript


known as "IDLE" like there is for Python. However, there are several IDEs and code editors
that support JavaScript development.

One popular choice for JavaScript development is Visual Studio Code. It is a free,
open-source code editor developed by Microsoft and is available for Windows, macOS, and
Linux. Visual Studio Code supports JavaScript development with features like code
highlighting, code completion, and debugging. It also has a rich library of extensions for
additional functionality and customization.

19
Another popular IDE for JavaScript development is WebStorm, developed by
JetBrains. It is a commercial IDE with advanced features like intelligent code completion,
live debugging, and integration with version control systems.

Other popular code editors for JavaScript include Sublime Text, Atom, and Notepad+
+. These editors also have extensions and plugins that can be used for JavaScript
development.

In addition to these IDEs and code editors, there are also several online editors that
allow you to write and test JavaScript code in your browser. Examples include CodePen,
JSFiddle, and JS Bin.

Overall, the choice of IDE or code editor for JavaScript development will depend on
your personal preferences, project requirements, and budget. It is important to choose an IDE
or code editor that provides the features and functionality you need to develop and debug
your JavaScript code efficiently and effectively.

20
5.3.1 ROLE OF JAVASCRIPT IN CLOUD DEVELOPMENT:
JavaScript plays a significant role in cloud development, as it is one of the most popular
programming languages for creating dynamic and interactive web pages. Cloud development
involves building and deploying applications, services, and resources on the cloud
infrastructure. Here are some ways in which JavaScript is used in cloud development:
 Client-Side Development: JavaScript is mainly used for client-side development,
which involves building user interfaces and web applications that run on the client's
browser. JavaScript is used to make web pages more interactive, dynamic, and
responsive.
 Server-Side Development: JavaScript is also used for server-side development,
where it runs on the server rather than the client's browser. This allows developers to
create web applications that can handle heavy traffic and data processing.
 Cloud Automation: JavaScript can be used to automate tasks on the cloud, such as
creating and managing cloud resources, deploying applications, and monitoring
performance. This allows developers to streamline their workflow and improve their
productivity.
 Cloud Functions: JavaScript can be used to create cloud functions, which are small,
self-contained programs that perform specific tasks. Cloud functions are used to
trigger events, process data, and execute code on the cloud. This allows developers to
create powerful and flexible applications that can run on the cloud.
 Cloud APIs: JavaScript can be used to create and consume cloud APIs, which are
interfaces that allow different cloud services and applications to communicate with
each other. This allows developers to create scalable and interoperable applications
that can work seamlessly on the cloud.
 Cloud Libraries: JavaScript has a vast collection of cloud libraries and frameworks
that can be used to simplify cloud development. These libraries and frameworks
provide pre-built components and tools that can be easily integrated into cloud
applications.

21
 Real-Time Communication: JavaScript can be used to create real-time
communication applications, such as chat apps and collaborative tools. This is
achieved through the use of websockets, which allow real-time bidirectional
communication between the client and server.
 Cloud Security: JavaScript can be used to implement security measures on the cloud,
such as authentication, encryption, and access control. This helps to protect cloud
resources and data from unauthorized access and cyber attacks.

5.3.2 JAVASCRIPT IN CLOUD DEVELOPMENT:


Javascript plays a significant role in developing cloud storage.

 Integration with Cloud Services


 Real-time Communication
 Serverless Computing
 Cloud-based Storage Management
 Dynamic and Scalable Web Applications
 Cloud-based Analytics and Visualization
 Automated Deployment and Configuration Management
 Cloud-based Security and Authorization
 Cross-platform Compatibility
 Cloud-based Testing and Debugging

As of know java programming language is widely used for developing the


Cloud devices now Javascript is coming into the field, with the following features of
Javascript most of developers prefer JavaScript.

INTEGRATION WITH CLOUD SERVICES:


JavaScript can easily integrate with various cloud services, making it a popular choice
for cloud development. With the rise of cloud computing, many cloud platforms offer
JavaScript-based APIs that developers can use to build cloud-based applications. JavaScript
frameworks like Node.js allow developers to write server-side applications that can easily
integrate with cloud services like Amazon Web Services (AWS), Microsoft Azure, and
Google Cloud Platform.

22
The integration of JavaScript with cloud services has made it possible for developers
to build robust and scalable cloud applications. By leveraging cloud services and APIs,
developers can quickly build and deploy applications without having to worry about the
underlying infrastructure. With the help of JavaScript, developers can easily access and use
cloud services like storage, databases, messaging, and authentication, making it a popular
choice for cloud development.

REAL-TIME COMMUNICATION:
JavaScript is commonly used for real-time communication in cloud development. One of
the most popular applications of real-time communication in the cloud is chat applications.
Using JavaScript, developers can create chat applications that can be used across multiple
platforms, such as web and mobile. JavaScript frameworks, such as Socket.IO and Node.js,
make it easier to develop real-time communication applications in the cloud. These
frameworks provide real-time communication capabilities, such as event-driven
communication and messaging, which are essential for developing chat applications.

Real-time communication can also be used in cloud development for collaboration and
conferencing applications. These applications allow users to collaborate and communicate in
real-time, making it easier to work together on projects and tasks. JavaScript can be used to
create the front-end interface for these applications, while back-end frameworks such as
Firebase and Twilio can be used to provide real-time communication capabilities. By using
JavaScript in cloud development, developers can create powerful and efficient real-time
communication applications that can be used across multiple platforms.
SERVERLESS COMPUTING:
Serverless computing is a paradigm in which the cloud provider manages the server
infrastructure required to run the application. It allows developers to focus on writing the
code without worrying about the underlying infrastructure, scaling, or maintenance.
JavaScript is a popular choice for building serverless applications, as it is lightweight, fast,
and can run in a serverless environment. Serverless computing allows for efficient use of
resources and reduces the operational overhead for developers, as they only pay for the
actual usage of the application.

CLOUD-BASED STORAGE MANAGEMENT:

Cloud-based storage management is an important aspect of cloud development, and


JavaScript is a powerful tool that can be used to manage cloud-based storage. JavaScript can
be used to interact with cloud storage services like Amazon S3, Microsoft Azure, Google
Cloud Storage, and more. JavaScript's ability to interact with APIs and its versatility make it
an ideal tool for working with cloud storage.

With JavaScript, developers can easily integrate cloud storage functionality into their
web applications. For example, they can use JavaScript to upload, download, and delete files
from cloud storage services. JavaScript can also be used to manage the permissions and
access control for cloud storage, ensuring that only authorized users have access to the data
stored in the cloud.
23
DYNAMIC AND SCALABLE WEB APPLICATION

JavaScript plays a vital role in developing dynamic and scalable web applications in
the cloud. With the help of JavaScript, developers can create web applications that can
dynamically update their content based on user interactions, without requiring a page refresh.
This is achieved through the use of frameworks like React and Angular, which allow
developers to create responsive and interactive user interfaces.

Moreover, JavaScript’s ability to handle asynchronous programming and its event-


driven nature makes it a suitable choice for developing web applications that can handle a
large number of simultaneous requests. This means that web applications can scale
effectively in the cloud, as they can handle increased traffic and requests without
experiencing downtime or delays. Thus, JavaScript is an essential tool in developing cloud-
based web applications that can handle dynamic and scalable workloads.
CLOUD-BASED ANALYTICS AND VISUALIZATION:

JavaScript is a popular language for building interactive and responsive web


applications that can process and display complex data in a user-friendly way. With the
advent of cloud computing, JavaScript has also emerged as a powerful tool for building
cloud-based analytics and visualization solutions. Cloud-based analytics solutions leverage
the scalability and flexibility of cloud computing to perform data processing, analysis, and
visualization on large datasets, making it possible to gain insights and make data-driven
decisions in real-time.

JavaScript frameworks like D3.js, Plotly.js, and Highcharts make it easy to create
interactive and visually appealing charts, graphs, and maps that can be embedded in web
applications or accessed through APIs. These frameworks provide a wide range of
visualization options and support for different data formats, making it easy to process and
display data from various sources. Cloud-based analytics platforms like AWS QuickSight,
Google Data Studio, and Microsoft Power BI also provide JavaScript APIs that enable
developers to build custom analytics solutions and integrate them with other cloud services.
AUTOMATED DEPLOYMENT AND CONFIGURATION MANAGEMENT:

JavaScript is increasingly being used for automated deployment and configuration


management in cloud development. With the rise of DevOps, the ability to automate
deployment and configuration has become increasingly important. JavaScript can be used to
write scripts that automate the deployment of applications to the cloud, as well as to manage
configuration settings. This can help ensure that deployments are consistent, repeatable, and
error-free, and can also help reduce the time and effort required for deployment.

Tools like Ansible and Puppet, which are used for deployment and configuration
management, also support the use of JavaScript. This means that developers can write
JavaScript code to define the desired state of their infrastructure, and then use these tools to
automate the deployment and configuration of their applications to the cloud. This can help
simplify the deployment process, reduce the potential for human error, and improve the
overall reliability and efficiency of the deployment process.

24
CLOUD-BASED SECURITY AND AUTHORIZATION:
JavaScript plays a critical role in providing security and authorization in cloud-based
applications. With cloud computing, data is stored and processed on remote servers, which
requires strict security measures to prevent unauthorized access and protect sensitive
information. JavaScript can be used to implement various security features, such as
encryption and two-factor authentication, to enhance security in cloud-based applications.
Additionally, JavaScript frameworks like Node.js can be used to develop secure APIs for
cloud applications that require authorization and access control.

CROSS-PLATFORM COMPATIBILITY:
Cross-platform compatibility is an essential aspect of cloud development, and
JavaScript is a language that is well-suited to handle this requirement. JavaScript is a high-
level programming language that can run on multiple platforms, including Windows, macOS,
Linux, and mobile operating systems like Android and iOS. This feature makes it easy for
developers to create cloud applications that can run on any device without any compatibility
issues. The cross-platform compatibility of JavaScript is a significant advantage for cloud
developers because it allows them to reach a wider audience and target a larger market.

CLOUD-BASED TESTING AND DEBUGGING:


Cloud-based testing and debugging is an essential aspect of developing applications in
the cloud, especially when using JavaScript. Cloud-based testing and debugging tools allow
developers to test and debug their applications in a cloud environment, which offers
numerous benefits over traditional local testing and debugging. One of the primary benefits
of cloud-based testing and debugging is that it provides a more accurate representation of
how the application will perform in a real-world environment. This is because cloud-based
testing and debugging tools simulate the real-world environment, which can help developers
identify and fix potential issues before they become major problems.

In addition to providing a more accurate representation of the real-world environment,


cloud-based testing and debugging tools also offer enhanced collaboration capabilities. These
tools allow multiple developers to work on the same project simultaneously, regardless of
their geographic location. This can be particularly useful for distributed development teams,
as it allows team members to collaborate more effectively and efficiently. Additionally,
cloud-based testing and debugging tools typically provide real-time feedback, which can help
developers quickly identify and fix issues as they arise. This can help speed up the
development process and ensure that the application is released on time and within budge

25
CHAPTER 6
SYSTEM IMPLEMENTATION

6.1 SAMPLE SOURCE CODE:


Login page:

import { Button, Form, Input, message, Steps, Modal } from "antd";

import React, { useEffect, useState } from "react";

import "./LoginPartDesign.css";

import {

LoadingOutlined,

SmileOutlined,

SolutionOutlined,

UserOutlined,

LoginOutlined,

} from "@ant-design/icons";

import CryptoJS from "crypto-js";

import pic from "./up.jpg";

import logo from "./lo3.png";

import { Link, useNavigate } from "react-router-dom";

import { userAuth } from "./Redux/action";

import { useDispatch } from "react-redux";

import axios from "axios";

function Login() {

const navigate = useNavigate();

const dispatch = useDispatch();

const [load, setLoad] = useState(false);

26
const [attempt, setAttempt] = useState(2);

const [mod, setMod] = useState(false);

const [umail, setUmail] = useState();

const [userauth, setUserAuth] = useState({ username: "", password: "" });

const userName = (e) => {

setUserAuth({ ...userauth, username: e.target.value });

};

const userPassword = (e) => {

setUserAuth({ ...userauth, password: e.target.value });

};

const submit = () => {

if (userauth.username.trim() !== "" && userauth.password.trim() !== "") {

setLoad(true);

const config = {

method: "POST",

url: "login",

headers: {

"Content-Type": "application/json",

},

data: { login: userauth.username, password: userauth.password },

};

axios(config)

.then((res) => {

const token = "user-token";

const key = "My secret key";

27
const optional = { keySize: 256 / 32 };

const decryptedData = JSON.parse(

CryptoJS.AES.decrypt(res.data.data, key, optional).toString(

CryptoJS.enc.Utf8

);

localStorage.setItem("user", JSON.stringify(decryptedData));

localStorage.setItem("auth", JSON.stringify(res.data[token]));

localStorage.setItem("userId", JSON.stringify(res.data.objectId));

navigate("/logmail");

})

.catch((e) => {

setLoad(false);

if (

e.response.data.message == "Invalid login or password" &&

attempt !== 0

){

message.error(

e.response.data.message + ` ${attempt} more attempts Left`

);

setAttempt(attempt - 1);

} else

message.error(e.response.data.message + " (Try after Some Time)");

});

} else {

message.info("All Fields are Manditory");

28
}

};

const changepass = () => {

setMod(true);

};

const updatepass = () => {

if (umail.trim() !== "") {

setMod(false);

axios

.get(

`https:// /${umail}`

.then(() => message.success("Mail Updation Link Sened Your Mail Id"));

};

return (

<div className="loginForm ">

<div className="left_side">

<div className="logo">

<img src={logo} alt="logo" />

</div>

<div className="input_element">

<Form size="large">

<div className="step">

<Steps

29
items={[

title: "Login",

status: "process",

icon: <UserOutlined />,

},

title: "Verification",

status: "wait",

icon: <SolutionOutlined />,

},

title: "Done",

status: "wait",

icon: <SmileOutlined />,

},

]}

/>

</div>

<Form.Item

name="email"

rules={[

type: "email",

message: "The input is not a valid email address!",

},

30
{

required: true,

message: "Please input your email!",

},

]}

>

<Input placeholder="Email" onChange={userName} />

</Form.Item>

<div className="passupdate" onClick={changepass}>

Forgot Password ?

</div>

<Form.Item>

<Input.Password

name="password"

placeholder="password"

onChange={userPassword}

/>

</Form.Item>

<div className="btn">

<Button type="primary" onClick={submit}>

{load ? <LoadingOutlined /> : <LoginOutlined />}Sign In

</Button>

</div>

</Form>

</div>

<div className="bottom-text">

31
Don't have an account? <Link to="signup">SignUp</Link>

</div>

</div>

<div className="image-container">

<img src={pic} alt="pictures" />

</div>

<Modal

title="Password Updation"

open={mod}

onOk={updatepass}

onCancel={() => setMod(false)}

>

<Input

placeholder="Enter Your Mail Id"

onChange={(e) => setUmail(e.target.value)}

/>

</Modal>

</div>

);

export default Login;

32
File Management:
import "./App.css";

import { useState, useEffect } from "react";

import {

DeleteOutlined,

EllipsisOutlined,

EyeOutlined,

FileTextOutlined,

InboxOutlined,

CheckCircleTwoTone,

DownloadOutlined,

LoadingOutlined,

} from "@ant-design/icons";

import { saveAs } from "file-saver";

import {

Avatar,

Card,

Skeleton,

Switch,

Drawer,

Form,

Upload,

Input,

message,

33
Modal,

Popconfirm,

notification,

Result,

} from "antd";

import {

ref,

uploadBytes,

getDownloadURL,

listAll,

getStorage,

deleteObject,

} from "firebase/storage";

import { storage } from "./firebase";

import { useNavigate } from "react-router";

import { Button, FloatButton } from "antd";

const { Meta } = Card;

const { Item } = Form;

const { Dragger } = Upload;

function App() {

const user = JSON.parse(localStorage.getItem("user"));

const [downloadUrl, setDownloadUrl] = useState("");

const [visible, setVisible] = useState(false);

const navi = useNavigate();

const [load, setLoad] = useState(false);

34
// console.log("from app", user);

const [imageUpload, setImageUpload] = useState(null);

const [view, setView] = useState(false);

const [imageUrls, setImageUrls] = useState([]);

const [api, contextHolder] = notification.useNotification();

const imagesListRef = ref(storage, `${user.email}/`);

const uploadFile = () => {

if (imageUpload == null) return;

const imageRef = ref(storage, `${user.email}/${imageUpload.name}`);

uploadBytes(imageRef, imageUpload).then((snapshot) => {

getDownloadURL(snapshot.ref).then((url) => {

setImageUrls((prev) => [...prev, url]);

navi("/notfound");

navi("/");

});

});

setVisible(false);

};

useEffect(() =>

}, 5000);

}, []);

useEffect(() => {

const topRight = "topRight";

api.info({

message: `Files Loading`,

description: "Your Files Are Loading...",

35
topRight,

duration: 2,

});

}, []);

useEffect(() => {

listAll(imagesListRef).then((response) => {

response.items.forEach((item) => {

getDownloadURL(item).then((url) => {

const fileData = {

url: url,

fname: item.name,

};

setImageUrls((prev) => [...prev, fileData]);

});

});

});

}, []);

return (

<div style={{ width: "100%" }}>

{contextHolder}

<Modal

title="Basic Modal"

36
open={visible}

onCancel={() => setVisible(false)}

onOk={uploadFile}

okText="Upload File"

>

<Dragger

name="image"

multiple={false}

action=""

onChange={(info) => {

console.log(info.file);

const { originFileObj } = info.file;

info.file.status = "success";

setImageUpload(originFileObj);

}}

>

<p className="ant-upload-drag-icon">

<InboxOutlined />

</p>

<p className="ant-upload-text">Click Here To Choose Files</p>

<p className="ant-upload-hint">

Accept All Kind Of Douments and Images

</p>

</Dragger>

</Modal>

37
{imageUrls.length == 0 && view ? (

<Result

style={{ width: "100%", marginTop: "40px" }}

status="warning"

title="Hi User"

subTitle="No Files Found On Your UserName"

extra={

<Button

type="primary"

onClick={() => {

setVisible(true);

setLoad(true);

}}

>

{load ? <LoadingOutlined /> : null}Click Here To Upload File

</Button>

/>

):(

<FloatButton

description="Click Here To Upload File"

type="primary"

shape="square"

onClick={() => {

setVisible(true);

}}

38
style={{ right: 50, width: "150px", fontWeight: "bold" }}

></FloatButton>

)}

<div className="App">

{imageUrls.map((data, index) => {

return (

<div class="container" key={index}>

<div class="wrapper">

<div class="banner-image"> </div>

<h3> {data.fname}</h3>

</div>

<div class="button-wrapper">

<button

onClick={() => window.open(data.url, "_blank")}

class="btns outline"

>

View <EyeOutlined />

</button>

<Popconfirm

title="Delete the File ?"

description="Once Delete the File No Chance to Recover"

onConfirm={() => {

const desertRef = ref(

storage,

`${user.email}/${data.fname}

);

39
deleteObject(desertRef)

.then(() => {

console.log("Sucesss");

message.success("SucessFully Deleted");

navi("/notfound");

navi("/");

})

.catch((error) => {

console.log(error);

});

}}

okText="Confirm Delete"

cancelText="No"

>

<button class="btns fill">

Delete <DeleteOutlined />

</button>

</Popconfirm>

</div>

</div>

);

})}

</div>

</div>

);

40
}

export default App;

41
Register:

import { Button, Form, Input, message, Steps, notification } from "antd";

import { Link, useNavigate } from "react-router-dom";

import axios from "axios";

import CryptoJS from "crypto-js";

import React, { useState } from "react";

import logo from "./lo3.png";

import { useDispatch } from "react-redux";

import pic from "./up.jpg";

import "./LoginPartDesign.css";

import {

LoadingOutlined,

SmileOutlined,

SolutionOutlined,

SyncOutlined,

UserAddOutlined,

} from "@ant-design/icons";

// import emailjs from "@emailjs/browser";

import { userAdd } from "./Redux/action";

function SignUpPart() {

const [api, contextHolder] = notification.useNotification();

let exists = true;

const dispatch = useDispatch();

const [regload, setRegload] = useState(false);

42
const go = useNavigate();

const otp = Math.floor(Math.random() * 10000);

const [reg, setReg] = useState({

key: otp,

first_name: "",

last_name: "",

email: "",

password: "",

password_confirmation: "",

});

const validateInput = (value) => {

const regex = /^[a-zA-Z]+$/;

if (!regex.test(value)) {

return false;

} else {

return true;

};

const check = () => {

if (

reg.first_name.trim() !== "" &&

reg.last_name.trim() !== "" &&

reg.email.trim() !== "" &&

reg.password_confirmation.trim() !== "" &&

reg.password.trim() !== ""

){

43
if (reg.password_confirmation.trim() === reg.password.trim()) {

if (validateInput(reg.first_name) && validateInput(reg.last_name)) {

setRegload(true);

const data = JSON.stringify({

});

const key = "My secret key";

const optional = { keySize: 256 / 32 };

const encryptedData = CryptoJS.AES.encrypt(

data,

key,

optional

).toString();

const config = {

method: "post",

url: "register",

headers: {

"Content-Type": "application/json",

},

data: {

email: reg.email,

password: reg.password,

data: encryptedData,

},

};

44
message.loading("Please Be Wait Your Request Under Processing");

axios(config)

.then((res) => {

setTimeout(() => go("/successreg"), 3000);

})

.catch((e) => {

setRegload(false);

message.error(e.response.data.message);

});

} else

message.info(

"Firstname and Lastname Must Be Alphabet Not Accept Sybmols,Numbets

and etc.."

);

} else message.info("Password and Confirm Password Must Be Same");

} else {

message.info("All Fileds Are Manditory");

};

const btnClick = () => {};

return (

<div className="loginForm ">

{contextHolder}

<div className="left_side">

<div className="logo">

45
<img src={logo} alt="logo" />

</div>

<div className="input_element">

<Form size="large">

<div className="step">

<Steps

items={[

title: "Register",

status: "process",

icon: <SmileOutlined />,

},

title: "Verification",

status: "wait",

icon: <SolutionOutlined />,

},

title: "Back to Login",

status: "wait",

icon: <SyncOutlined />,

},

]}

/>

</div>

<div className="nameField">

46
<Form.Item

rules={[

type: "email",

message: "The input is not a valid email address!",

},

required: true,

message: "Please input your email!",

},

]}

>

<div className="sameLine"></div>

<div className="sameLine">

<Input

name="first_name"

placeholder="First Name"

onChange={(e) =>

setReg({ ...reg, first_name: e.target.value })

/>

<Input

name="last_name"

placeholder="Last Name"

onChange={(e) =>

setReg({ ...reg, last_name: e.target.value })

47
/>

</div>

</Form.Item>

</div>

<Form.Item

required: true,

message: "Please input your email!",

},

]}

>

<Input

placeholder="Email"

name="email"

onChange={(e) => setReg({ ...reg, email: e.target.value })}

/>

</Form.Item>

<Form.Item>

<Input.Password

name="password"

placeholder="Password"

onChange={(e) => setReg({ ...reg, password: e.target.value })}

/>

</Form.Item>

<Form.Item>

<Input.Password

48
name="password_confirmation"

placeholder="Confirm Password"

onChange={(e) =>

setReg({ ...reg, password_confirmation: e.target.value })

/>

</Form.Item>

<div className="btn">

<Button type="primary" onClick={check}>

{regload ? <LoadingOutlined /> : <UserAddOutlined />}Sign Up

</Button>

</div>

</Form>

</div>

<div className="bottom-text">

Already have an account?<Link to="/">Sign In</Link>

</div>

</div>

);

export default SignUpPart;

49
Sample Css:
*{
box-sizing: border-box;

margin: 0;

padding: 0;

.logo img {

position: absolute;

left: -40px;

top: -30px;

height: 200px;

width: 200px;

.input:invalid {

animation: shake 300ms;

color: red;

.bottom-text {

display: flex;

align-items: center;

justify-content: center;

margin-top: 20px;

padding-top: 20px;

.loginForm {

display: flex;

50
}

.forgot_field {

display: flex;

justify-content: space-between;

.image-container {

width: 100%;

position: relative;

.sameLine {

display: flex;

justify-content: space-around;

gap: 10px;

image-container img {

margin-top: 75px;

/* position: absolute; */

width: 100vh;

height: 80vh;

.input_element {

margin-top: 200px;

height: 50vh;

display: flex;

51
justify-content: center;

align-items: center;

.left_side {

width: 100%;

.bottom-text a {

all: initial;

color: rgba(0, 0, 0, 0.418);

font-size: small;

cursor: pointer;

52
CHAPTER-7

TESTING

7.1 SYSTEM TESTING


The purpose of testing is to discover errors. Testing is the process of trying to
discover every conceivable fault or weakness in a work product. It provides a way to check
the functionality of components, sub- assemblies, assemblies, and/or a finished product.
It is the process of exercising software with the intent ensuring that the software
system meets its requirement and user expectation and does not fail in an unacceptable
manner. There are various type of test. Each test type addresses a specific testing
requirements.

7.2 TESTING METHODOLOGY:


7.2.1 WHITE BOX TESTING:
White-box testing (also known as clear box testing, glass box testing, transparent box
testing, structural box testing) is a method of testing software that tests internal structure or
workings of an application, its functionality (i.e. black-box testing). In white-box testing an
internal perspective of the system, as well as programming skills, are used to design test
cases.

7.2.2 BLACK BOX TESTING:


Black-box testing is a method of software testing that examines the functionality of an
application without peering into its internal structures or workings. This method of test can be
applied to visually every level of software testing: unit, integration, system and acceptance.

7.2.3 UNIT TESTING:


Unit testing is a software testing method by which individual units of source code sets
of one or more computer programming modules together with associated control data, usage
procedures, and operating procedure, are tested to determine whether they are fit for use. In
procedural programming, a unit could be an entire module, but it is more commonly an
individual function of procedure

53
CHAPTER 8
PERFORMANCE MAINTENANCE

8.1 CONCLUSION:
In conclusion, secure file management in the cloud is essential for businesses and
organizations to protect their sensitive information and maintain continuity in their
operations. Traditional file management systems have limitations, which make them
vulnerable to security threats and disasters. However, the proposed system of secure file
management in the cloud overcomes these limitations and offers several benefits, such as data
encryption, auto-logout, and two-step verification.

JavaScript plays a crucial role in cloud development, as it provides various features


and tools that enable developers to build dynamic and scalable web applications. It can be
integrated with cloud services, allowing real-time communication and cross-platform
compatibility. Additionally, it facilitates cloud-based storage management, analytics, and
visualization, automated deployment and configuration management, and testing and
debugging.
8.2 FUTURE ENHANCEMENT:

1. Blockchain integration: Blockchain technology could be integrated into cloud-based


file management systems to provide a more secure and tamper-proof way of storing
and sharing files.
2. Artificial Intelligence (AI): AI could be used to automatically detect and respond to
security threats, as well as to improve the accuracy and efficiency of file search and
management.
3. Augmented Reality (AR): AR could be used to provide a more intuitive and user-
friendly interface for cloud-based file management, allowing users to interact with
their files in a more natural and intuitive way.
4. Improved collaboration features: Cloud-based file management systems could be
enhanced with more robust collaboration features, such as real-time document editing,
version control, and commenting.
5. Advanced access controls: Advanced access controls could be implemented to provide
more fine-grained control over who can access and modify files, as well as to track
and audit access activity.
6. Better integration with other cloud services: Cloud-based file management systems
could be better integrated with other cloud services, such as email, chat, and project
management tools, to provide a more seamless and integrated user experience.

54
CHAPTER 9

APPENDIX

9.1 SAMPLE SCREENSHOTS:

LOGIN PAGE:

REGISTER PAGE

55
MAIL VERIFICATION:

HOME PAGE:

56
CHAPTER 10
REFERENCES

10.1BOOK AND PAPER REFERENCES

[1] "Cloud Native Development with Node.js" by Eric Chiang and Kevin Decker

[2] "Cloud Applications with Node.js: Build High-Performance Scalable Cloud


Applications with Node.js and Javascript" by Jürgen Etzlstorfer

[3] "Programming the Cloud with Node.js" by Peter Acklam

[4] "Building Applications in the Cloud: Concepts, Patterns, and Projects" by Christopher
M. Moesel

[5] "Cloud Computing with JavaScript" by David Tucker

[6] "Mastering Node.js - Second Edition: Build robust and scalable real-time server-side
web applications efficiently" by Sandro Pasquali and Kevin Faaborg

[7] "Node.js Design Patterns - Second Edition: Master best practices to build modular and
scalable server-side web applications" by Mario Casciaro and Luciano Mammino

[8] "AWS Lambda and Node.js: A Practical Guide to Building Scalable Serverless
Applications" by Simon Holmes

[9] "JavaScript Everywhere: Building Cross-Platform Applications with GraphQL, React,


React Native, and Electron" by Adam D. Scott

57
10.2 WEBSITE REFERENCES:

[1] Cloudinary (https://cloudinary.com/)

[2] AWS JavaScript SDK (https://aws.amazon.com/sdk-for-javascript/)

[3] Firebase (https://firebase.google.com/)

[4] Microsoft Azure JavaScript SDK

(https://docs.microsoft.com/en-us/javascript/api/overview/azure/?view=azure-node-latest )

[5] Heroku (https://www.heroku.com/)

[6] Google Cloud Platform (https://cloud.google.com/docs/overview)

[7] Node.js (https://nodejs.org/en/)

[8] Socket.io (https://socket.io/)

[9] Docker (https://www.docker.com/)

[10] Kubernetes (https://kubernetes.io/)


58
59

You might also like