Dpilot is a cloud based file transfer application that allows its user to upload data on cloud server and the receiver on the other hand can downlaod the data from the server. The Downlaod information is send to the receiver via mail service.
Other Features include:-
Secure Login system
Easy data Access
Lightening Fast Uploads and Downloads
Connect with your Facebook Or Gmail Account for easy access
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
Project Dpilot Documentation
1. In-House Training Report
on
Dpilot
Submitted in the partial fulfillment of the requirement for the award of the degree of
Bachelor of Technology
(Information Technology)
[2016-2020]
Under the Supervision of
Dr. Pinki Nayak , Mr. Ram Paul , Mr. Deepak Sinwar
by
Kritika Phulli [01610402716]
Nidhi Kumari Chauhan [02110402716]
Deepanshu Sharma [3 5210402716]
Vishal Bhat [(41910402716)]
Department of Information Technology
[AMITY SCHOOL OF ENGINEERING & TECHNOLOGY]
(Affiliated to Guru Gobind Singh Indraprastha University, New Delhi)
[June-July, 2018]
2. 1
CERTIFICATE
It is hereby certified that the project entitled “Dpilot” has been submitted
by Ms. Kritika Phulli Enrollment No. 01610402716 , Ms. Nidhi Kumar
Chauhan Enrollment No. 02110402716 , Mr. Deepanshu Sharma
Enrollment No. 35210402716 and Mr. Vishal Bhat Enrollment No.
35210402716 of CSE 5th
Semester, under the guidance of “In-house
Training Coordinators” as a part of B.Tech In-house training/ workshop
(ETCS-359)
This work put in by them is an outcome of their own hard work and effort
and the matter embodied in the report has not been submitted for the award
of any other degree.
Mr. Ram Paul
Mr. Deepak Sinwar
Dr. Pinki Nayak
(In-house Training In-charge) (Dr. M N Gupta)
(HOD, CSE)
Date: 18/07/2018
Place: Amity School of Engineering and Technology
3. 2
ACKNOWLEDGEMENT
In the course of development of this project many people have helped us
on various levels. First of all we would like to thank Prof. Rekha
Aggarwal, Director and Prof. M.N. Gupta, Head of Department of IT
and CSE, ASET (Bijwasan) for their constant encouragement and
guidance throughout the project, thus enabling us to perform our best. We
would also like all our mentors for their unbound technical guidance and
ideas that have helped us enrich and make this project better at each level.
Finally, yet importantly, we would like to thank almighty for blessing us to
do and complete his project.
I express my sincere thanks to the entire faculty of Amity School of
Engineering and Technology for giving us all the facilities during our
training period.
Kritika Phulli [01610402716]
Nidhi Kumari Chauhan [02110402716]
Deepanshu Sharma [35210402716]
Vishal Bhat [35210402716]
4. 3
ABSTRACT
Dpilot is a Cloud-Based AI powered secured file transfer and storage system to
help the on-boarding their flight to have a safe and healthy journey . The main
objective of our project titled ‘Dpilot’ is to provide a cloud-based data sharing
and storing platform to ease the data sharing and storing process. Dpilot has three
easy steps – register, upload and download. Dpilot works on MERN Stack
development software i.e., MongoDB, ExpressJS, ReactJS, NodeJS having four
main characteristic – quick access, flexible storage, file security, reliable tech
support. Dpilot is also powered by a chatbot which helps in working and also
make sure that no one gets stucks anywhere while performing the data transfer
and helps to make your intermediate queries resolved in an effective manner.
Dpilot also includes PHP, Azure Bot Service, Microsoft QNA Maker. Dpilot
offers an user-friendly environment so that user can share its data and also
download the data more efficiently. Dpilot is on the process to make all bugs to
be fixed and make it more reliable. Presently, Dpilot is only available for
windows (PC) only but looking forward to make it available for mobiles too i.e.,
Android, iOS, Windows (Phone).
5. 4
LIST OF FIGURES
Figure 1 : Cloud Computing Deployment Method
Figure 2 : MERN Stack Development
Figure 3 : Microsoft Qna Maker
Figure 4 : Building a Bot
Figure 5 : E-R Diagram of User-Cloud Interaction
Figure 6 : E-R Diagram of Contact Form Database
Figure 7 : Gantt Chart
Figure 8 : Pert Chart
Figure 9 : Data Flow Diagram of User’s Journey of Diplot
Figure 10 : Modular Chart
Figure 11: Selenium Logo
Figure 12 : Snapshot of Selenium IDE
Figure 13 : Snapshot of Command Prompt of Selenium
LIST OF TABLES
Table 1. List of Activities
6. 5
TABLE OF CONTENTS
CERTIFICATE I
ACKNOWLEDGEMENT II
ABSTRACT III
LIST OF FIGURES IV
LIST OF TABLES IV
1. Introduction to the project 6
2. Feasibility Study 10
3. Hardware/Software Requirements 11
4. Software Requirement Specifications 13
5. List of Activities 16
6. E-R Diagram 17
7. GANTT Chart and PERT Chart 18
8. Data Flow Diagram 19
9. Modular Chart 20
10. Test Techniques 21
11. Conclusion 24
12. Limitations 25
13. Future Scope 26
Appendix-I (Program Code)
Appendix-II(Screenshots)
7. 6
1. INTRODUCTION
“Dpilot is the delivery of computing resources over the internet instead of
your computer’s hard drive.”
Dpilot is a cloud based data sharing and storage platform. Here, we can
store our data in form of files and can be accessed through any computer
using the cloud computing. Distinct users has their distinct and unique
portals which is accessed using login credentials made by the users only.
Dpilot is a combination of cloud computing and MERN stack development.
1.1 PRE –REQUISITES KNOWLEDGE:
CLOUD COMPUTING:
As defined..
“An emerging computer paradigm where data and services reside in
massively scalable data centers in the cloud and can be accessed from
any connected devices over the internet.”
Cloud computing is Internet based development and use of computer
technology. It typically involves the delivery of dynamically scalable and
often virtualized resources as a service over the Internet. The term cloud is
used as a symbol for the Internet. The basis of cloud computing is to create
a set of virtual servers on the available vast resource pool and give it to the
clients. Any web enabled device can be used to access the resources
through the virtual servers. Based on the computing needs of the client, the
infrastructure allotted to the client can be scaled up or down. One of the
key concepts of cloud computing is that as and when the amount of data
increases, the cloud computing services can be used to manage the load
effectively and make the processing tasks easier. Typical cloud computing
services provide common business applications online that are accessed
from a web browser, while the software and data are stored on the server.
8. 7
Types of Cloud Computing:-
In practice, cloud service providers (CSP’s) tend to offer services that can
be grouped into three categories: software as a service, platform as a
service, and infrastructure as a service.
Software as a Service (SaaS):-
Provides the same software to different customers via a network, usually
the Internet. It is managed by third party venders.
Accessible via any computer without any downloads.
Software as a service features a complete application offered as a service
on demand. The most widely known example of SaaS is salesforce.com.
Platform as a Service (PaaS):-
Offer an Internet-based platform to developers who want to create services
and application but don't want to build their own cloud. Hence, No need to
buy hardware and software. Servers, storage and networking managed by
third party venders.
Someone producing PaaS might produce a platform by integrating an OS,
application software, and even a development environment that is then
provided to a customer as a service. The customer interacts with the
platform through the API, and the platform does what is necessary to
manage and scale itself to provide a given level of service.
Infrastructure as a Service (IaaS):-
Allows applications to be run on a cloud supplier’s hardware by allows you
to install a virtual server on their IT infrastructure.
No need to purchase servers, or network equipment.
Servers, storage and networking managed by venders whereas applications
and updates are managed by users.
10. 9
1.2 MERN FULL STACK DEVELOPMENT:
MERN (MongoDB, Express, React, Node.js) is another popular full stack
development. It is usually considered as an alternative to MEAN stack
development. Below is the architecture of MERN:
MongoDB - Database layer
ExpressJS - Middleware for Nodejs
ReactJS - Front end (User Interface)
Node.js - Web server logic
The main difference between MERN and MEAN stack is Angular and
React. Both Angular and React does the job for your requirement. Its
personal choice which one to use. Before learning MERN stack
development, we should have knowledge of HTML/CSS, JavaScript,
React JS, Node JS.
Figure 2: Mern Stack Development
11. 10
2. FEASIBILITY STUDY:
Extensive desktop application: Some desktop applications like
Matlab, Mathematica are becoming so compute intensive that a single
desktop machine is no longer enough to run them. So they are developed to
be capable of using cloud computing to perform extensive evaluations.
On-Demand Self-Service: A consumer can unilaterally provision
computing capabilities, such as server time and network storage, as needed
automatically without requiring human interaction with each service
provider.
Broad Network Access: Cloud computing simply means network
access from just about anywhere worldwide. Use a standard web browser to
access the user interface, without any software add- on or specific OS
requirements. You just need to log in to your account using an internet
connection in order to extract the important information from the service
provider’s website. This is an important feature of cloud computing as it
really helps in generating the best possible results.
Resource Pooling: Resource pooling is an IT term used in cloud
computing environments .It share resources and costs across a large pool of
users, allowing for centralization and increased peak load capacity. This is
the practice of permitting several clients to knock into a single pool of
servers or disk storage or other type of specific resource.
Measured Service: Consume resources as a service and pay only for
resources used. Cloud systems automatically control and optimize resource
use by leveraging a metering capability at some level of abstraction
appropriate to the type of service (e.g., storage, processing, bandwidth, and
active user accounts). Resource usage can be monitored, controlled, and
reported, providing transparency for both the provider and consumer of the
utilized service. The best thing about cloud computing is that it comes with
a pay per use feature. This is the reason why more and more companies are
choosing it for the purpose of storage.
12. 11
3. HARDWARE/SOFTWARE
REQUIRMENTS
3.1 Hardware Requirements:
Following configurations are required for development:
Processor Intel Pentium 4 or Higher
Operating Microsoft Windows 7/8/10
RAM 512MB (1GB recommended)
3.2 Software Requirements:
1. File Sharing Screen:
Robo Mongo- MongoDB (Version: 2.2.33) – Database
Management Software
Express.js & Node.js (Version: 4.16.2) – Backend
Application
React.js (Version: 16.4.1) – Frontend Application
2. Login Screen:
HTML & CSS – Frontend Development
PHP - Backend Development
3. Landing Screen:
HTML & CSS
Bootstrap
4. Bot:
Microsoft QNA Maker
C#
5. Cloud Service:
Amazon S3 (AWS)
Microsoft Azure
13. 12
6. Supported Operating System:
Windows 7/8/10(32 or 64 bit)
64-bit distributions must be capable of running 32-bit
applications
7. Web Browser:
Google Chrome /Bing/ Microsoft Edge
8. Supported Development Environments:
JetBrains Webstorm 2018 1.5
Microsoft Visual Studio
14. 13
4. SOFTWARE REQUIREMENT
SPECIFICATIONS(SRS):
4.1 MERN STACK DEVELOPMENT:
I. MongoDB: MongoDB is a free and open-source cross-
platform document-oriented database program that provides persistence
for your application data and is designed with both scalability and
developer agility in mind. MongoDB is written in C++. Instead of storing
data in rows and columns as one would with a relational database,
MongoDB stores JSON documents in collections with dynamic schemas.
MongoDB's document data model makes it easy to store and combine data
of any structure, without giving up sophisticated validation rules, flexible
data access, and rich indexing functionality. Our application will access
MongoDB via the JavaScript/Node.js driver which we install as a Node.js
module
II. ExpressJS: Express is the web application framework that runs your back-
end application (JavaScript) code. Express runs as a module within the Node.js
environment. Express can handle the routing of requests to the right parts of your
application (or to different apps running in the same environment). In this
project, we have used Express to perform two functions:
A. Send the front-end application code to the remote browser when the user
browses to our app.
B. Provide a REST API that the front-end can access using HTTP network
calls, in order to access the database.
III. ReactJS : , React JS is a JavaScript library developed by Facebook to
build interactive/reactive user interfaces. Like Angular, React breaks the
front-end application down into components. Each component can hold its
own state and a parent can pass its state down to its child components and
those components can pass changes back to the parent through the use of
callback functions. Complex React applications usually require the use of
additional libraries for state management, routing, and interaction with
an API.
15. 14
IV. NodeJS: Node.js is a JavaScript runtime environment that runs
your back-end application (via Express). Node.js is based on Google's V8
JavaScript engine which is used in the Chrome browsers.Third party
modules, including the MongoDB driver, can be installed, using
the npm tool. Node.js is an asynchronous, event-driven engine where the
application makes a request and then continues working on other useful
tasks rather than stalling while it waits for a response. On completion of the
requested task, the application is informed of the results via a callback. This
enables large numbers of operations to be performed in parallel which is
essential when scaling applications.
4.2 PHP:
PHP is an acronym for PHP: Hypertext Processor. PHP is a server side
scripting language that is embedded in HTML. It is used to manage dynamic
content, databases, session tracking, even build entire e-commerce sites.
PHP is a widely-used, free, and efficient alternative to competitors such as
Microsoft's ASP.PHP can send and receive cookies .PHP can add, delete,
modify data in your database. PHP can be used to control user-access. PHP
can encrypt data.
4.3 Azure Bot Service:
Azure Bot Service provides tools to build, test, deploy, and manage
intelligent bots all in one place. Through the modular and extensible
framework provided by the SDK, developers can leverage templates to
create bots that provide speech, language understanding, question and
answer, and more. A bot is an app that users interact with in a conversational
way using text, graphics (cards), or speech. It may be a simple question and
answer dialog, or a sophisticated bot that allows people to interact with
services in an intelligent manner using pattern matching, state tracking and
artificial intelligence techniques well-integrated with existing business
services.
16. 15
4.3.1 Microsoft QNA Maker:
QNA Maker enables you to power a question and answer service from your
semi-structured content like FAQ (Frequently Asked Questions) documents
or URLs and product manuals. An easy-to-use graphical user interface
enables you to create, manage, train and get your service up and running
without any developer experience.
A complete no-code experience to create a FAQ bot.
No more network throttling. Pay for hosting the service and not for the
number of transactions.
Scale as per your needs. Choose the appropriate SKUs of the individual
components that suit your scenario. See how to choose capacity for your
QnA Maker service.
Full data compliance. The data and runtime components are deployed in
the user's Azure subscription and within their compliance boundary.
4.3.2 BUILDING A BOT:
Figure 4: Building a Bot
Figure 3 : Microsoft Qna Maker
17. 16
5. List of Activities
Activity No. Activity Name Preceeding
Activities
Duration(Days)
A. Prerequisite Research on feasible
topics
- 0.5
B. Exploring the possible
applications and identifying the
drawbacks in existing system
A 0.5
C. Selection of Final Project A,B 0.5
D. Designing the rough layout and
Deciding the technologies
B,C 1
E. Downloading and Installing the
required software For MERN
Stack and Bot
C 1
F. Designing the layouts of each
screens including Landing Page
D 1
G. Understanding the basic concepts
of MERN STACK, PHP and Bot
Implementation
E 2
H. Getting Familiar with IDE’s and
executing basic programs of each
component
E,G 1
I. Implementing the designed
layouts of each screen
D,F 2
J. Finalizing the designs of
Login/Signup Screens and File
sharing web pages
I 0.5
K. Realizing the finalized designs
into Front End
J 0.5
L. Developing the Backend for File
Sharing Web pages and
Integrating it with the Bot
K 2
M. Connecting the backend with
Database
D 1
N. Deciding upon the Qna Bot and
Finalising it
J,K,D 1
O. Linking the Login/Screen with File
sharing web pages
O 1
Q. Testing , Debugging the Web App P 1
R. Publishing the final Web App Q 1
S. Generation of Final Report R 1
18. 17
6. E-R DIAGRAM
Figure 5: E-R Diagram for User-Cloud Interaction
Figure 6 : E-R Digram for Contact Form Database
22. 21
10. TEST TECHNIQUES
Introducing Selenium:
Selenium is a robust set of tools that
supports rapid development of test
automation for web-based applications.
Selenium provides a rich set of testing
functions specifically geared to the
needs of testing of a web application. Selenium operations are highly
flexible, allowing many options for locating UI elements and comparing
expected test results against actual application behavior.
The Seven Basic Steps of Selenium Test:
There are seven basic steps in creating a Selenium test script, which apply
to any test case and any application under test (AUT).
1.Create a WebDriver instance.
2.Navigate to a Web page.
3.Locate an HTML element on the Web page.
4.Perform an action on an HTML element.
5.Anticipate the browser response to the action.
6.Run tests and record test results using a test framework.
7.Conclude the test.
Selenium Architecture
Selenium has a client-server architecture, and includes both client and
server components Selenium Client includes:
The WebDriver API, which you use to develop test scripts to interact with
page and application elements
The RemoteWebDriver class, which communicates with a remote
Selenium server Selenium Server includes:
Figure 11 : Selenium Logo
23. 22
A server component, to receive requests from Selenium
Client 's RemoteWebDriver class
The WebDriver API, to run tests against web browsers on a server
machine.
Selenium Grid, implemented by Selenium Server in command-line
options for grid features, including a central hub and nodes for various
environments and desired browser capabilities.
Selenium IDE:
It is an integrated development environment for Selenium scripts. It is
implemented as a Chrome and Firefox extension, and allows you to record, edit,
and debug tests.
Figure 12: Snapshot of Selenium IDE
Selenium Server: Selenium Server receives Selenese commands
from test program, executes them, and reports back the results of running
those tests. When a test program opens the browser Selenium Core is
automatically injected into it allowing Selenium server to control it.
Selenium core is a JavaScript program that executes Selenese command
using browser's JavaScript execution engine.
24. 23
Selenium-WebDriver: The WebDriver was introduced in
Selenium 2.0 version it provides a simpler programming interface with
well-designed object-oriented API. It directly calls to browser using
browser’s native support for automation and features they support depend
on browser you are using. If your browser and tests will all run on same
machine and your tests only use WebDriver API, then you do not need to
run Selenium-Server.
Using the code
Step 1: Setup Selenium WebDriver in your machine
To setup the driver create a folder in your drive say C:WebDriver copy
respective driver EXE(s) to this folder. Now add this folder path
to PATH environment variable in your machine. This is required as
WebDriver API will search for the respective EXE to open web browser.
Step 2: Run the application by providing arguments
Now you have two option to run the application one is to run from Visual
Studio go to Project>Properties>Debug tab provide command line
arguments as shown below or you can go to command prompt, navigate to
debug folder and provide the arguments. The screen shot below shows
command line arguments to search for Selenium keyword in google on
Firefox browser.
Figure 13 : Snapshot of Command Prompt for Selenium
25. 24
11. CONCLUSION
a
To conclude, Cloud computing is the latest technology that promises
immense benefits however there is lot of research which is still required in
this area as many of the concerns related to security and privacy issues are
not been answered by the experts and remains open.
Cloud computing is a powerful new abstraction for large scale data
processing systems which is scalable, reliable and available. In cloud
computing, there are large self-managed server pools available which
reduces the overhead and eliminates management headache. Cloud
computing services can also grow and shrink according to need. Cloud
computing is particularly valuable to small and medium businesses, where
effective and affordable IT tools are critical to helping them become more
productive without spending lots of money on in-house resources and
technical equipment. Also, it is a new emerging architecture needed to
expand the Internet to become the computing platform of the future.
Cloud computing has enabled tea1ms and organizations to streamline
lengthy procurement processes. Cloud computing enables innovation by
alleviating the need of innovators to find resources to develop, test, and
make their innovations available to the user community. Innovators are
free to focus on the innovation rather than the logistics of finding and
managing resources that enable the innovation.
Cloud computing has also its pros and cons. It is a new technology that
helps to save money but the information can be attacked by hackers to be
used it improperly.
26. 25
12. LIMITATIONS
Despite of various advantages Dpilot also possess some disadvantages:
Dpilot requires a constant internet connection. If you have no internet
connection, you have no access to your data.
Dpilot is potential to be useful, but the lack of instructions and explanation
make it frustrating to use. There is also a lack of polish and intuitiveness.
It does not work properly with low-speed connections.
At present, Dpilot cannot be used on android and iOS. It is mainly available
for Windows only.
If you want to manipulate your files locally through multiple devices, you
will need to download the service on all devices.
Data on cloud is not likely to be secured as cloud provides less security and
privacy.
Data stored on cloud can be lost.
Cloud computing technology allows cloud servers to reside anywhere, thus
the enterprise may not know the physical location of the server used to store
and process their data and applications.
Not everything can be fitted in the cloud.
In cloud computing, every component is online, which exposes potential
vulnerabilities. If you want to be able to manipulate your files locally
through multiple devices, you’ll need to download the service on all devices.
27. 26
13. FUTURE SCOPE
A cloud allows users to access application, information, and data of all
sorts on an online level rather than by use of actual hardware or devices. A
company offering reliable cloud technology allows for computing to be
done in a much more shared way, as a cloud provides a service rather than
a product. Users get and share their information in a way that can allow
them to access and give access to the whole world or any groups of people
within their cloud.
i. As of now, Dpilot is a website available. We will provide mobile
application which will support the platform like Android, IOS, Windows
Mobile.
ii. Easier hybrid cloud strategies.
iii. Making it more secure and reliable.
iv. Productivity tools and proactive policies.
v. More focus on Internet of Things (IoT)
vi. Managing the time and making it speedier.
vii. Making working of Dpilot offline i.e., we can share data when there is no
connectivity of internet.
viii. Allowing the Dpilot to share the data using WIFI hotspot in the absence of
internet.
ix.Range: Making its range wider when running offline.
x. The bot available (additional feature of Dpilot) is QNA bot. Making the
bot more user friendly.
xi. Adding the chat option for the users while sharing the data over the cloud.
xii. Allowing all the formats of the files to be shared over the cloud.
xiii. Time is a valuable thing, hence increasing the speed of data sharing
between cloud and the user.
Cloud computing is the future for the organizations. Hence, there is large
scope for amendments in the cloud computing and leading to the
enhancement of its application.