The emerging technologies are replacing the old hardware and software. Today the speed & security of data is most important. Since data storing and its sharing has become very important in today’s world of globalization, so a platform is required which can provide us secure and platform independent file storing and sharing. Now-a-days Internet is available with tablets and mobile devices as well as personal computers. So a service should be accessible from desktop, website (browser) and Mobile platforms so that we can use Internet to store data securely and share data. Android is emerging Mobile platform now-a-days as well as in future as published by Google.
We designed this project to fulfil all this demands and requirements and with a full-fledged business model, which can make this project commercially viable, so that we can bring this from a project to real-time Product.
This System is a server-based hosting service designed as client-server model that uses server storage to enable users to store and share files and folders with others across the internet. The server is hosted on three Linux based servers. The client is having three modes of communication. It has a desktop application, Web-site and an Android Mobile application. The Desktop module is having a folder containing important files synchronized with server. The regular update of folder is synchronized with server which ensures the secure storage of files. The website is the gateway to see all the files and the download them on the Desktops where the application is not installed. Android application is to be installed on Mobiles and tablets for availing the services.
As per security requirement of the files the project uses GPS service, and Encryption of files, to avoid many types of Security flaws. The use of Cloud Storage will be done in the next phase of the project
As per business aspect the mobile advertising and Website-advertising is used to earn revenues. For better revenue Web-mining and Data-mining of the account information helps us to provide advertising of client’s interest to earn Good revenues.
1. [Type your address][Type your phone number][Type your e-mail address]
Designed by MANIT BHOPAL
SUBHAM
SUBHAM
MAULANA AZAD NATIONAL INSTITUTE OF TECHNOLOGY
BHOPAL -462051
DEPARTMENT OF COMPUTER SCIENCE ENGINEERING
MINOR PROJECT REPORT
ON
“RitZBoX - A File Synchronization and Sharing Application using Desktop ,
SUBMITTED IN PARTIAL FULFILMENT FOR THE DEGREE OF
Android And Web Interface”
BACHELOR OF TECHNOLOGY
SUBMITTED BY
Mr. RITURAJ DASHORE (091115007)
Mr. SUBHAM SAHU (091115059)
Mr. SATISH THAPAK (091115075)
UNDER THE GUIDANCE OF
Dr. R. K. PATERIYA
SESSION 2011-12
2. MAULANA AZAD NATIONAL INSTITUTE OF TECHNOLOGY
BHOPAL 462051
DEPARTMENT OF COMPUTER SCIENCE ENGINEERING
CONDIDATE’S DECLARATION
We hereby certify that the work which is being presented in the project report entitled
“RitZBoX- A File Synchronizing and Sharing Application using Desktop, Android
App. And Web Interface” submitted in partial fulfilment of the requirement for the award
of the degree of Bachelor of Technology in Information Technology, submitted to
Department of Computer Science Engineering, Maulana Azad National Institute of
Technology, Bhopal is an authentic record of our own work carried out during the period
of Jan 2012 to Apr 2012 under the supervision of Dr. R. K. Pateriya, Associate Professor,
Department of Computer Science Engineering, Maulana Azad National Institute of
Technology, Bhopal.
The matter being presented in the project report has not been submitted by us for the award
of any other degree or diploma of this or any other Institute/University.
Rituraj Dashore Subham Sahu Satish Thapak
(091115007) (091115059) (091115075)
I
3. MAULANA AZAD NATIONAL INSTITUTE OF TECHNOLOGY
BHOPAL- 462051
DEPARTMENT OF COMPUTER SCIENCE ENGINEERING
CERTIFICATE
This is to certify that Mr. Rituraj Dashore (091115007) ,Mr. Subham Sahu (091115059),
Mr. Satish Thapak (091115075) of third year B.Tech , Information Technology have
successfully completed their minor project entitled “RitZBox: A File Synchronization and
Sharing Application using Desktop , Android And Web Interface ” in the partial
fulfilment of their B.Tech in Information Technology for session 2011-2012.
GUIDE PROJECT CORDINATOR
Dr. R. K. PATERIYA Prof. JYOTI BHARTI
(Associate Professor) (Associate Professor)
Dept. of Computer Science Engineering Dept. of Computer Science Engineering
II
4. ACKNOWLEDGEMENT
We would like to take this opportunity to extend our heartfelt gratitude to our guide and
mentor Dr. R. K. Pateriya, Associate Professor, Department of Computer Science and
Information Technology, Maulana Azad National Institute of Technology, Bhopal, for
his trust in our work, his able guidance, regular source of encouragement and assistance
throughout this project work. We would state that the dissertation work would not have been
in the present shape without his inspirational support and we consider our self-fortunate to
have done our project under him.
We have been able to successfully complete this project because of excellent
guidance and infinite help given to us by Dr. Nilay Khare, Head of dept. of Computer
Science Engineering.
We thank Dr. Appu Kuttan K K , Director, MANIT for allowing us to use college
resource for completion of our project.
It is difficult to acknowledge adequately the help and encouragement we received
from faculty of department but we take this opportunity to thanks them profusely.
Rituraj Dashore Subham Sahu Satish Thapak
(091115007) (091115059) (091115075)
III
5. ABSTRACT
The emerging technologies are replacing the old hardware and software. Today the
speed & security of data is most important. Since data storing and its sharing has become
very important in today’s world of globalisation, so a platform is required which can provide
us secure and platform independent file storing and sharing. Now-a-days Internet is
available with tablets and mobile devices as well as personal computers. So a service should
be accessible from desktop, website (browser) and Mobile platforms so that we can use
Internet to store data securely and share data. Android is emerging Mobile platform now-a-
days as well as in future as published by Google.
We designed this project to fulfil all this demands and requirements and with a full-
fledged business model, which can make this project commercially viable, so that we can
bring this from a project to real-time Product.
This System is a server-based hosting service designed as client-server model that
uses server storage to enable users to store and share files and folders with others across the
internet. The server is hosted on three Linux based servers. The client is having three modes
of communication. It has a desktop application, Web-site and an Android Mobile
application. The Desktop module is having a folder containing important files synchronised
with server. The regular update of folder is synchronised with server which ensures the
secure storage of files. The website is the gateway to see all the files and the download them
on the Desktops where the application is not installed. Android application is to be installed
on Mobiles and tablets for availing the services.
As per security requirement of the files the project uses GPS service, and Encryption
of files, to avoid many types of Security flaws. The use of Cloud Storage will be done in the
next phase of the project
As per business aspect the mobile advertising and Website-advertising is used to earn
revenues. For better revenue Web-mining and Data-mining of the account information helps
us to provide advertising of client’s interest to earn Good revenues.
IV
6. GRAPHICAL ABSTRACT
Encryption
Uploading Downloading
Android Application Development
J2SE J2EE
RitZBoX Desktop application Web Interface Android Application
RitZBoX.exe RitZBoX.com RitZBoX.apk
Business Aspects
V
7. Table of Contents
Topic Page
no.
Chapter 1 introduction 1
1.1 Overview 1
1.2 Motivation 2
1.2.1 Advantages 2
1.2.2 Development Challenges 2
1.3 Problem Statements 3
1.4 Project Report Organisation 3
Chapter 2 Project functionalities & S/w & H/w Requirements 4
2.1 Project Functionalities 4
2.1.1 Functionality of Desktop module 5
2.1.2 Functionality of Web Module 6
2.1.3 Functionality of Android application 7
2.2 S/w and H/w Requirements 8
2.2.1 Desktop interface 8
2.2.2 Website Interface 8
2.2.3 Android application 8
2.2.4 For Development Purpose s/w Procurement
Chapter 3 Theory and/or Technologies 9
3.1 File sharing And Its Importance 9
3.2 JAVA 10
3.2.1 JAVA2SE (used for desktop application) 11
3.2.1.1 Threading 12
3.2.1.2 Java I/0 13
3.2.1.3 Networking with java 14
3.2.2 Java Enterprise Edition 15
3.2.2.1 JSP SERVLETS (middleware) 16
3.2.2.2 (JDBC) Java Database Connectivity 17
3.3 Database Designing 17
3.4 Encryption 18
8. 3.5 Android application 19
Chapter 4 Software Life Cycle 22
Spiral model
Chapter 5 Software Design 25
5.1 MODULE 1 Installing and configuring tomcat server and Database 27
Design
5.2 MODULE 2 Web Development 28
5.3 MODULE 3 Development of Desktop Application and 30
Synchronisation with server
5.4 MODULE 4 Development of Android Application 32
Chapter 7 Implementation And Coding 57
7.1 Web Module Implementation Structure 57
7.2 Desktop Module Implementation Structure 58
7.3 Android Module Implementation Structure 59
Chapter 8 Software Testing, Debugging and limitation 60
8.1 Software Testing 60
8.1.1 Unit testing 60
8.1.2 Integration testing 60
8.1.3 System testing 61
8.2 Approaches for testing 61
8.3 Debugging 61
8.3.1 Brute force method 61
8.3.2-Backtracking 62
8.4 DDMS
Chapter 9 Gantt Chart 64
9.1 Task table showing the tasks of the project 65
9.2 Only Gantt chart with weekly reporting 66
9.3 Gantt Chart with task table 67
Chapter 10 Business Aspect, Security and miscellaneous Features 68
10.1 Business Aspect Review 68
9. 10.1.1Financial study related to each module 69
10.1.2 Freemium model 69
10.2 Security 70
10.3 GPS location services 70
Chapter 11 Conclusion And Future Scope 71
References 72
Source codes
10. Figure And Snapshot Index
S no Fig. Name Page No.
No.
1 2.1 Over all functionality of project 4
2 2.2 Functional flow of Desktop module 5
3 2.3 Functional flow of Web module 6
4 2.4 Functional flow of mobile(Android application) module 7
5 3.1 The emulator on desktop for running applications and other 21
application testing purposes
6 4.1 Spiral Model(software development cycle) 23
7 5.1 Detailed Modular Design 26
8 5.2 Basic design of UI 29
9 5.3 Basic design of UI 29
10 5.4 File chooser of Windows 30
11 5.5 Synchronisation of files with in server and devices 31
12 5.6 Figure showing basic outline of Android App 32
13 6.1.1 Table_file info 33
14 6.1.2 User_info Table 34
15 6.2.1 Home page which contains links to go to various pages of site 35
and form to sign in user
16 6.2.2 Front page having basic information and user sign in form 36
17 6.2.3 For Sign Up facility of the new user 37
18 6.2.4 For Sign Up facility of the new user 37
19 6.2.5 After logging in user will be able to upload his files and 38
download or delete uploaded files
20 6.2.6 List of files uploaded and facility to delete or download them 39
from server
21 6.2.7 Public file-sharing blog from which users around the world 40
can upload data
22 6.2.8 Public Blog A Place for discussion with all 41
23 6.2.9 Advertisement page for revenue collection and business 42
aspects
24 6.3.1 RitZboX’s Desktop application installer 43
11. 25 6.3.2 Authentication with serial numbers during installation 44
26 6.3.3 Viewing of License File during installation 45
27 6.3.4 Choosing path for installation of RitZboX 46
28 6.3.5 Showing install button for extraction of files to desktop 47
29 6.3.6 Progression of installation 48
30 6.3.7 Choosing RitZboX’s Home Folder when user will use it first 49
time and user verification
31 6.3.8 Choosing RitZboX’s Home Folder when user will use it first 49
time and user verification
32 6.3.10 RitzBox Folder on Desktop for synchronisation 50
33 6.3.11 Files uploaded to server 51
34 6.4.1 Opening and Running the Android Emulator 52
35 6.4.2 Opening and Running the Android app. on Emulator 53
36 6.4.3 Opening and Running the Android application and user 54
credentials entry
37 6.4.4 After user credentials verification users are shown options 55
38 7.1 Web Module Structure 57
39 7.2 Desktop Module Structure 58
40 7.3 Android Module Structure 59
41 8.1 Brute force method testing 61
42 8.2 The error is traced from the top to lower hierarchy of the files 62
43 9.1 Task table showing the tasks of the project 65
44 9.2 Only Gantt chart with weekly reporting 66
45 9.3 Gantt Chart with task table 67
12. RitZBoX: A File Synchronizing and Sharing Application Using Desktop, Android App. And Web Interface 1
Chapter 1
INTRODUCTION
1.1 Overview
Today the time has come that the Internet has become an integral part of daily life.
Digitalised life is now dependent on digital files. Starting from documents to image files,
Spread sheets to Contact files, files are now costlier than many thing and become very
important. File sharing and Synchronization is the practice of distributing or providing
access to digitally stored information, such as computer programs, multimedia (audio, images
and video), documents, or electronic books. It may be implemented through a variety of
ways. Common methods of storage, transmission and dispersion include manual sharing
utilizing removable media, centralized servers on computer networks, World Wide Web-
based hyperlinked documents, and the use of distributed peer-to-peer networking.
File storing and sharing is essential, and we are now having many ways to perform this but
every way has its merits and demerits. For storing the use of dedicated server is used which
has various demerits and also the cloud server is used which is complicated for deployment
and also require more systems. The file sharing has become very popular now a day for its
higher data secure and utilisation properties.
The peer to peer file sharing systems provide infrastructure for communities to share
storage space (e.g. Napster, Gnutella, Kazza ). Unlike traditional distributed systems, P2P
networks aim to aggregate large numbers of computers that join and leave the network
frequently and might not have permanent network (IP) addresses. In a pure distributed P2P
system such as Gnutella, peers communicate directly with each other and share resources
without dedicated servers. In essence, these P2P systems build, at the application level, a
virtual overlay network with it own routing mechanisms.
Different file sharing ways as Google Docs, Dropbox, mediafire, hotfile are there, which
provides various file sharing services in different ways of services. Google Docs is Google's
"software as a service" office suite. Documents, spreadsheets, presentations can be created
with Google Docs, imported through the web interface, or sent via email. Documents can be
saved to a user's local computer in a variety of formats.
1
13. RitZBoX: A File Synchronizing and Sharing Application Using Desktop, Android App. And Web Interface 2
Dropbox is a Web-based file hosting service operated by Dropbox, Inc. that uses networked
storage to enable users to store and share files and folders with others across the Internet using file
synchronization.
Tablet and mobile users needs a common platform to share the files and should be safe
about their files. They should be able to retrieve the files from mobile, through website and
synchronized folders of their personal computers, Which is designed as this project and the
product of the project is named as “RitZBoX”
1.2 Motivation
The motivation for the study comes from the unique challenges offered in the varied
application domain. We will now discuss the various advantages of this project and then the
problems statements.
1.2.1 Advantages
• The website facilitates user download and upload the files to the server
• The folder on desktop is synchronised with server, which makes user less effort for
storage and user friendly environment.
• The Android application makes the system more useful as the 3G (Third-generation)
wireless cellular network provides both voice and data services to its subscribers. It
combines wireless communication with internet
• Entrepreneurial aspects and security.
1.2.2 Development Challenges
• Scalability: The aim of scaling is to allow the system to expand in scale without
disrupting the activities of the users. The enormous data should not lead to corrupt or
any other issues.
• Heterogeneity: the system should be available and accessible from different plat-
form without any difference in performance.
• Real-Time Data Delivery: the system should be able to deliver data in real-time
when-where ever data is requested.
• Limited Bandwidth: Although Internet is available to all devices(within the
targeted), but many of devices have very slow connection speed and for better
costing Limited Bandwidth is to be taken care of.
2
14. RitZBoX: A File Synchronizing and Sharing Application Using Desktop, Android App. And Web Interface 3
1.3 Problem Statement
To design File storing and sharing system having following features
1. To able to implement tomcat server
2. To create Data base as back end to store data on the servers
3. Create a web-platform as user interface for downloading, uploading and sharing of
files.
4. Create a desktop application which facilitate to synchronise a folder with server
ensuring the files in that folder has its copy on server
5. Designing an Android application, so that user can store of send any file from the
mobile to server
6. Ensuring the encryption of data on the server for batter security.
7. Appling several business concepts like advertisement and Entrepreneurship skills.
1.4 PROJECT-REPORT Organisation
The report comprises of seven chapters including this chapter that introduces the topic and
motivation of the project. The rest of dissertation is organized as follows:
Chapter 2: Project functionalities and hardware Requirement: here we describe the
three functionalities such as desktop interface, server, mobile etc.
Chapter 3: Theory and/of Technologies: throws light on the theories and technologies
related to this project.
Chapter 4: Software Life Cycle: here we describe the software life cycle and different
phases, the development life cycle of this project
Chapter 5: Software Design: It describes the design of this project, the modules it was
divided into and its DFD digrams.
Chapter 6: Implementation And Coding: It have the algorithms related to all the
modules of the project .
Chapter 7: Business aspect, Security and miscellaneous Features: It has the
information about other features of project like Encryption techniques used,
advertising issues and others.
Chapter 8: Software Testing, Debugging
Chapter 9: Gantt charts
Chapter10: Conclusion and future work: Some future work is proposed and the project
report concluded.
3
15. RitZBoX: A File Synchronizing and Sharing Application Using Desktop, Android App. And Web Interface 4
Chapter 2
PROJECT FUNCTIONALITIES, S/W & H/W REQUIREMENTS
2.1 Project Functionalities:
The functionality of the project is divided into 3 phases according to the interfaces. The
overall functionality of the project is described in fig 2.1 as follows:
The total project has a total system with availing user 3 interfaces, as Desktop
software, Website for log-in And An Android application.
Over all functionality of project
Fig. 2.1
4
16. RitZBoX: A File Synchronizing and Sharing Application Using Desktop, Android App. And Web Interface 5
2.1.1 Functionality of Desktop module:
• User will be given with RitZBoX_setup.exe
• During installation user will be asked to choose home folder if not choosen set
default folder as home folder
• If the user is installing for first time then username and password will be asked and
verified from the server
• User is required to put the files there in folder in order to make automatic backup of
files
• Folder should be Synchronised with server continuously
• Any new file added to the folder will be automatically backed up to the server
User is given with
RitZBoX_Setup.exe
Choose a folder as Not choosen
home folder
choosen
Default is chosen
Use chosen folder
Server for storing the
files
Used as home
folder
Functional flow of Desktop module
Fig 2.2
5
17. RitZBoX: A File Synchronizing and Sharing Application Using Desktop, Android App. And Web Interface 6
2.1.2 Functionality of Web Module
• User should log in to RitZBoX.com if for the first time sign up
• After sign up the user will get options for operation
• If user wills to Download the files then Click on Download
• If user wills to upload then file-chooser will be shown after selecting , Click on upload
• After file operation user will view an advertisement
• Then he can log-out.
Open browser and visit
RitZBoX.com
No
Signed up?
Yes
Sign-up and log-in
Log-in
connected
See the files and options
Webserver storing all the
files and user information
database
upload download
Download and upload(using
file chooser)
Log out(exit)
Functional flow of Web module
Fig 2.3
6
18. RitZBoX: A File Synchronizing and Sharing Application Using Desktop, Android App. And Web Interface 7
2.1.3 Functionality of Android application
• User should install RitZBoX.apk file for the first time.
• After signed-in the user will get options for operation
• If user wills to Download the files then Click on Download
• If user wills to upload then file-chooser will be shown after selecting , Click on upload
• After file operation user will view an advertisement
Open mobile and install
RitZBoX.apk
If user data not exist
Give username and
password
If user data exists on server
Display “sign up on
website”
User logged in
Server storing all the files
Download and upload(using
and user information
file chooser)
upload and download
Exit the application
Functional flow of mobile(Android application) module
Fig 2.4
7
19. RitZBoX: A File Synchronizing and Sharing Application Using Desktop, Android App. And Web Interface 8
2.2 S/w and H/w Requirements:-
2.2.1 Desktop interface:
• 2gb RAM
• 2GHz processor
• Connected to internet
• 40Gb hard Disk
2.2.2 Website Interface:
• Mozilla firefor 5 or later
• Internet Explorer 7 or later
• Google chrome 18.0.1025.xxx
• Safari 5.x.x or later
2.2.3 Android application:
• Android 2.2.3 or later
• Internet connection
2.2.4 For Development Purpose s/w Procurement
• Netbeans , Eclipse for coding and MySQL GUI for Data Base
• Android SDK for Eclipse and Apache Tomcat for web module
• Microsoft Project software for project documentation
• Advanced Installer for project installer creation
8
20. RitZBoX: A File Synchronizing and Sharing Application Using Desktop, Android App. And Web Interface 9
Chapter 3
THEORY AND/OF TECHNOLOGIES
The project is an extensive application of emerging technologies. This project uses
technologies like information retrieval, Web Development, Desktop application development,
Android Application Development, Encryption technologies. Different technological aspect
of the project are discussed as follows
3.1 File sharing And Its Importance
File sharing is the practice of distributing or providing access to digitally stored information, such as
computer programs, multimedia (audio, images and video), documents, or electronic books. It may be
implemented through a variety of ways. Common methods of storage, transmission and dispersion
include manual sharing utilizing removable media, centralized servers on computer networks, World
Wide Web-based hyperlinked documents, and the use of distributed peer-to-peer networking.
Small businesses lose billions of dollars each year due to data loss from hardware or
system failure, human error and software corruption. Natural disasters account for one percent
of all data loss. Although the probability is small, the impact can be overwhelming. In fact,
companies that aren’t able to resume operations within ten days of a disaster are not likely to
survive.
Catastrophes aside, being fast and nimble is one of the defining characteristics of small and
medium sized businesses. Finance executives need fast access to accurate information to
perform optimally. In any business however, finding the right version of last month’s financial
statements can sometimes be difficult. If it takes two weeks or more to access and validate an
operating unit’s financials, that may have just lost the deal. It is not only important to provide
data protection, but quick and easy access to the right information.
In today’s increasingly wired business world, the best way to recover from data loss due to a
natural disaster is to store backup data in a physically separate location. There are companies
that specialize in preserving documents on tapes and discs that are stored within other
structures. Although they too are susceptible to natural disasters, these companies have helped
to save numerous businesses where the damage has only been internal.
9
21. RitZBoX: A File Synchronizing and Sharing Application Using Desktop, Android App. And Web Interface 10
3.2 JAVA
Java is a programming language originally developed by James Gosling at Sun
Microsystems (which has since merged into Oracle Corporation) and released in 1995 as a
core component of Sun Microsystems' Java platform. The language derives much of
its syntax from C and C++ but has a simpler object model and fewer low-level facilities. Java
applications are typically compiled to byte code (class file) that can run on any Java Virtual
Machine (JVM) regardless of computer architecture. Java is a general-purpose, concurrent,
class-based, object-oriented language that is specifically designed to have as few
implementation dependencies as possible. It is intended to let application developers "write
once, run anywhere" (WORA), meaning that code that runs on one platform does not need to
be recompiled to run on another. Java is currently one of the most popular programming
languages in use, particularly for client-server web applications, with a reported 10 million
users.
Java platform
One characteristic of Java is portability, which means that computer programs written
in the Java language must run similarly on any hardware/operating-system platform. This is
achieved by compiling the Java language code to an intermediate representation called Java
bytecode, instead of directly to platform-specific machine code. Java bytecode instructions are
analogous to machine code, but are intended to be interpreted by a virtual machine (VM)
written specifically for the host hardware. End-users commonly use a Java Runtime
Environment (JRE) installed on their own machine for standalone Java applications, or in a
Web browser for Java applets.
Standardized libraries provide a generic way to access host-specific features such as
graphics, threading, and networking.
10
22. RitZBoX: A File Synchronizing and Sharing Application Using Desktop, Android App. And Web Interface 11
A major benefit of using byte code is porting. However, the overhead of interpretation
means that interpreted programs almost always run more slowly than programs compiled to
native executable would. Just-in-Time (JIT) compilers were introduced from an early stage that
compiles byte codes to machine code during runtime.
The platform is not specific to any one processor or operating system, but rather an execution
engine (called a virtual machine) and a compiler with a set of libraries that are implemented for
various hardware and operating systems so that Java programs can run identically on all of
them.
Java Card: A technology that allows small Java-based applications (applets) to be run
securely on smart cards and similar small- memory devices.
Java ME (Micro Edition): Specifies several different sets of libraries (known as profiles)
for devices with limited storage, display, and power capacities. Often used to develop
applications for mobile devices, PDAs, TV set-top boxes, and printers.
Java SE (Standard Edition): For general-purpose use on desktop PCs, servers and similar
devices.
Java EE (Enterprise Edition): Java SE plus various APIs useful for multi-tier client–
server enterprise applications.
3.2.1 JAVA2SE (used for desktop application development)
Java Platform, Standard Edition or Java SE is a widely
used platform for programming in the Java language. It is the Java Platform used to deploy
portable applications for general use. In practical terms, Java SE consists of a virtual machine,
which must be used to run Java programs, together with a set of libraries (or "packages")
needed to allow the use of file systems, networks, graphical interfaces, and so on, from within
those programs.
Some of the topics of JAVA standard edition are really useful in this application and they
are as follows:
11
23. RitZBoX: A File Synchronizing and Sharing Application Using Desktop, Android App. And Web Interface 12
3.2.1.1 Threading
Threading concept is very important in Java Programing language. A thread is a
sequential path of code execution within a program. And each thread has its own local
variables, program counter and lifetime.
1. Life Cycle of A Thread
Life Cycle of Thread contains different states - New state, Runnable, Running state,
Dead state, Non-Runnable state.
2. Thread Creation
Thread can be implementing by one of two ways - Extending the java.lang.Thread
Class, Implementing the java.lang.Runnable Interface.
3. Thread Constructors
Several constructors are available for creating new Thread instances
like Thread(), Thread(String),Thread(Runnable) etc....
4. Introduction to Multithreading
Multithreading is a technique that allows a program or a process to execute many tasks
concurrently (at the same time and parallel). It allows a process to run its tasks in
parallel mode on a single processor system.
5. Creation of Multiple Threads
Like creation of a single thread, You can also create more than one thread
(multithreads) in a program using class Thread or implementing interface Runnable.
6. Thread Priorities and Scheduler
In Java, thread scheduler can use the thread priorities in the form of integer value to
each of its thread to determine the execution schedule of threads . Thread gets
the ready-to-run state according to their priorities.
7. Deadlock
A situation where a thread is waiting for an object lock that holds by second thread, and
this second thread is waiting for an object lock that holds by first thread, this situation is
known as Deadlock.
8. Lock and Synchronized Threads
Java uses monitor also known as semaphore to prevent data from being corrupted by
multiple threads by a keyword synchronized to synchronize them and
12
24. RitZBoX: A File Synchronizing and Sharing Application Using Desktop, Android App. And Web Interface 13
intercommunicate to each other. Lock term refers to the access granted to a particular
thread that can access the shared resources.
9. Inter-Thread Communication
A process where, a thread is paused while running in its critical region and another
thread is allowed to enter (or lock) in the same critical section to be executed. This
technique is known as Inter-Thread communication
10. Daemon Thread
Daemon threads are service providers for other threads or objects running in the same
process as the daemon thread. Daemon threads are used for background supporting
tasks and are only needed while normal threads are executing
11. Thread Synchronization in Java :
When two or more threads need shared resource, they need a proper mechanism to
ensure that the resource will be used by only one thread at a time. The mechanism we
use to achieve this is known as thread synchronization.
3.2.1.2 Java I/0
The Java I/O means Java Input/Output. It is provided by the java.io package. This package
has an Input Stream and Output Stream. Java Input Stream is defined for reading the stream,
byte stream and array of byte stream.
• Working with the Files
The File class deals with the machine dependent files in a machine-independent manner i.e. it is easier to
write platform-independent code that examines and manipulates files using the File class. This class is
available in the java. Lang package.
Create a File
Constructing a File Name path
Read the File
Write to a File
Appending to a File
Getting the Size of a File
Count lines of a particular file
Renaming a File or Directory
Copying a File to Another File
Copying Multiple Files
Moving a File or Directory to Another Directory
Deleting a File or Directory
13
25. RitZBoX: A File Synchronizing and Sharing Application Using Desktop, Android App. And Web Interface 14
Change a File timestamp
Create a Temp File
Delete a Temp File
Getting an absolute path and Parents of a Filename
3.2.1.3 Networking with java
The Java platform is extremely preferable to write an application program require to
communicate with the resources on network. Java, mainly focuses on the networking relating
the description of the networking capabilities of the Java platform and second one is describes
a brief summary of networking in a very simple manner that how to use URLs, sockets, and
datagrams.
In Java, there is a java.net package provides the network support. All the classes for
making a network program are defined in the java.net package. Through TCP we can
communicate over the network.
TCP/IP and UDP/IP communications
There are two communication protocols that one can use for socket programming:
datagram communication and stream communication.
Datagram communication:
The datagram communication protocol, known as UDP (user datagram protocol), is a
connectionless protocol, meaning that each time you send datagrams, you also need to send the
local socket descriptor and the receiving socket's address. As you can tell, additional data must
be sent each time a communication is made.
Stream communication:
The stream communication protocol is known as TCP (transfer control protocol).
Unlike UDP, TCP is a connection-oriented protocol. In order to do communication over the
TCP protocol, a connection must first be established between the pair of sockets. While one of
The sockets listen for a connection request (server), the other asks for a connection (client).
Once two sockets have been connected, they can be used to transmit data in both (or either one
of the) directions.
14
26. RitZBoX: A File Synchronizing and Sharing Application Using Desktop, Android App. And Web Interface 15
3.2.2 Java Enterprise Edition (for web-development)
Enterprise Edition or Java EE is Oracle's enterprise java computing platform. Java EE
includes several API specifications, such as JDBC , and defines how to coordinate them. Java
EE also features some specifications unique to Java EE for components. These include
Enterprise JavaBeans, Connectors, servlets, Java Server Pages and several web service
technologies. This allows developers to create enterprise applications that are portable and
scalable, and that integrate with legacy technologies. Like RMI, e-mail, JMS, web services,
XML, etc.
A Java EE application server can handle transactions, security, scalability,
concurrency and management of the components that are deployed to it, in order to enable
developers to concentrate more on the business logic of the components rather than on
infrastructure and integration tasks.
The Java EE APIs includes several technologies that extend the functionality of the base Java
SE APIs.
3.2.2.1 Designing of Web Portal
A web portal is a web site that brings together information from diverse sources in a unified
way. Usually, each information source gets its dedicated area on the page for displaying
information (a port let); often, the user can configure which ones to display.
HTML
HyperText Markup Language (HTML) is the main markup language for web pages.
HTML elements are the basic building-blocks of webpages.HTML allows images and objects
to be embedded and can be used to create interactive forms. It provides a means to create
15
27. RitZBoX: A File Synchronizing and Sharing Application Using Desktop, Android App. And Web Interface 16
structured documents by denoting structural semantics for text such as headings, paragraphs,
lists, links, quotes and other items. It can embed scripts in languages such as JavaScript which
affect the behaviour of HTML webpages.
CSS
Cascading Style Sheets (CSS) is a style sheet language used for describing the
presentation semantics (the look and formatting) of a document written in a markup language
CSS is designed primarily to enable the separation of document content (written in
HTML or a similar markup language) from document presentation, including elements such as
the layout, colors, and fonts.[1] This separation can improve content accessibility, provide
more flexibility and control in the specification of presentation characteristics, enable multiple
pages to share formatting, and reduce complexity and repetition in the structural content.
JAVA SCRIPT
JavaScript is a prototype-based scripting language that is dynamic, weakly typed
and has first-class functions. It is a multi-paradigm language, supporting object-oriented,
imperative, and functional programming styles.
JQUERY
JQuery is a cross-browser JavaScript library designed to simplify the client-side
scripting of HTML. jQuery is free, open source software, dual-licensed under the MIT License
or the GNU General Public License. jQuery's syntax is designed to make it easier to navigate a
document, select DOM elements, create animations, handle events, and develop Ajax
applications.
3.2.2.2 JSP SERVLETS (middleware)
Java Server Pages (JSP) is a technology that helps software developers serve
dynamically generated web pages based on HTML, XML, or other document types. Released
16
28. RitZBoX: A File Synchronizing and Sharing Application Using Desktop, Android App. And Web Interface 17
in 1999 by Sun Microsystems, JSP is similar to ASP and PHP, but it uses the Java
programming language.
JSPs are compiled into servlets by a JSP compiler. The compiler either generates a
servlet in Java code that is then compiled by the Java compiler, or it may compile the servlet to
byte code which is directly executable. JSPs can also be interpreted on-the-fly, reducing the
time taken to reload change.
3.2.2.3 (JDBC) Java Database Connectivity
JDBC is a Java-based data access technology (Java Standard Edition
platform) from Sun Microsystems, Inc.. It is not an acronym as it is unofficially referred to as
Java Database Connectivity. This technology is an API for the Java programming language that
defines how a client may access a database. It provides methods for querying and updating data
in a database. JDBC is oriented towards relational databases. A JDBC-to-ODBC bridge enables
connections to any ODBC-accessible data source in the JVM host environment.
3.3 DATABASE DESIGNING
Database design is the process of producing a detailed data model of a database. This
logical data model contains all the needed logical and physical design choices and physical
storage parameters needed to generate a design in a Data Definition Language, which can then
be used to create a database. A fully attributed data model contains detailed attributes for each
entity.
The term database design can be used to describe many different parts of the design of
an overall database system. Principally, and most correctly, it can be thought of as the logical
design of the base data structures used to store the data. In the relational model these are the
tables and views. In an object database the entities and relationships map directly to object
17
29. RitZBoX: A File Synchronizing and Sharing Application Using Desktop, Android App. And Web Interface 18
classes and named relationships. However, the term database design could also be used to
apply to the overall process of designing, not just the base data structures, but also the forms
and queries used as part of the overall database application within the database management
system (DBMS).The process of doing database design generally consists of a number of steps
which will be carried out by the database designer.
3.4 ENCRYPTION
In cryptography, encryption is the process of transforming information (referred to as
plaintext) using an algorithm (called a cipher) to make it unreadable to anyone except those
possessing special knowledge, usually referred to as a key. The result of the process is
encrypted information (in cryptography, referred to as cipher text). The reverse process, i.e., to
make the encrypted information readable again, is referred to as decryption.
Encryption can be used to protect data "at rest", such as files on computers and storage devices
(e.g. USB flash drives) mobile telephones, wireless microphones, wireless intercom systems,
Bluetooth devices and bank automatic teller machines.
18
30. RitZBoX: A File Synchronizing and Sharing Application Using Desktop, Android App. And Web Interface 19
3.5 ANDROID APPLICATION
Android, the world's most popular mobile platform, Android powers millions of phones,
tablets, and other devices and brings the power of Google and the web into our hands.
With an amazingly fast browser, cloud sync, multi-tasking, easy connect & share, and the latest
Google apps (and thousands of other apps available on Google Play) our Android powered
device is beyond smart.
The Android SDK includes a virtual mobile device emulator that runs on our computer. The
emulator lets you prototype, develop and test Android applications without using a physical
device.
The Android emulator mimics all of the hardware and software features of a typical mobile
device, except that it cannot place actual phone calls. It provides a variety of navigation and
control keys, which you can "press" using your mouse or keyboard to generate events for your
application. It also provides a screen in which our application is displayed, together with any
other active Android applications.
To let us model and test your application more easily, the emulator utilizes Android Virtual
Device (AVD) configurations. AVDs let you define certain hardware aspects of your emulated
phone and allow you to create many configurations to test many Android platforms and
hardware permutations. Once your application is running on the emulator, it can use the
services of the Android platform to invoke other applications, access the network, play audio
and video, store and retrieve data, notify the user, and render graphical transitions and themes.
The emulator also includes a variety of debug capabilities, such as a console from which you
can log kernel output, simulate application interrupts (such as arriving SMS messages or phone
calls), and simulate latency effects and dropouts on the data network.
The Android emulator is an application that provides a virtual mobile device on which you can
run your Android applications. It runs a full Android system stack, down to the kernel level,
that includes a set of preinstalled applications (such as the dialer) that you can access from your
19
31. RitZBoX: A File Synchronizing and Sharing Application Using Desktop, Android App. And Web Interface 20
applications. You can choose what version of the Android system you want to run in the
emulator by configuring AVDs, and you can also customize the mobile device skin and key
mappings. When launching the emulator and at runtime, you can use a variety of commands
and options to control its behaviour.
The Android system images available through the Android SDK Manager contain code for the
Android Linux kernel, the native libraries, the Dalvik VM, and the various Android packages
(such as the Android framework and preinstalled applications). The emulator provides dynamic
binary translation of device machine code to the OS and processor architecture of your
development machine.
The Android emulator supports many hardware features likely to be found on mobile devices,
including:
• An ARMv5 CPU and the corresponding memory- management unit (MMU)
• A 16-bit LCD display
• One or more keyboards (a Qwerty-based keyboard and associated Dpad/Phone buttons)
• A sound chip with output and input capabilities
• Flash memory partitions (emulated through disk image files on the development
machine)
• A GSM modem, including a simulated SIM Card
• A camera, using a webcam connected to your development computer.
• Sensors like an accelerometer, using data from a USB-connected Android device.
20
32. RitZBoX: A File Synchronizing and Sharing Application Using Desktop, Android App. And Web Interface 21
The emulator on desktop for running applications and other
application testing purposes
Fig 3.1
21
33. RitZBoX: A File Synchronizing and Sharing Application Using Desktop, Android App. And Web Interface
22
Chapter 4
SOFTWARE LIFE CYCLE
A software life cycle model (also called process model) is a descriptive and
diagrammatic representation of the software life cycle. A life cycle model represents all the
activities required to make a software product transit through its life cycle phases. It also
captures the order in which these activities are to be undertaken. In other words, a life cycle
model maps the different activities performed on a software product from its inception to
retirement. Different life cycle models may map the basic development activities to phases
in different ways. Thus, no matter which life cycle model is followed, the basic activities
are included in all life cycle models though the activities may be carried out in different
orders in different life cycle models.
As we studied different short-coming and industrial approach to projects we found the
SPIRAL MODEL is found to be most appropriate for our project. So we have approached
spiral model for life cycle of Software development.
The Spiral model of software development is shown in figure. The diagrammatic
representation of this model appears like a spiral with many loops. The exact number of
loops in the spiral is not fixed. Each loop of the spiral represents a phase of the software
process.
22
34. RitZBoX: A File Synchronizing and Sharing Application Using Desktop, Android App. And Web Interface
23
FIG 4.1
23
35. RitZBoX: A File Synchronizing and Sharing Application Using Desktop, Android App. And Web Interface
24
we see three loops as 3 stages of developments with different and increased models. So in each
quadrant we define 3 levels of development.
SECOND QUADRANT(DETERMINE REQUIREMENT ANALYSIS )
• Determine the Requirements Analysis
• Loop1: Development of Web portal and mysql database: prototype1
• Loop2: Development of Desktop Synchronisation : prototype2
• Loop3: Development of Android application and access through it: prototype3
FIRST QUADRANT(RISK ANALYSIS AND PROTOTYPE DESIGN )
• Loop1: Risk analysis of : prototype1
• Loop2: Risk analysis of : prototype2
• Loop3: Risk analysis of : prototype3
FOURTH QUADRANT(DETAILED DESIGN AND IMPLEMENTATION )
• Loop1: Software requirement and requirement validation
• Loop2: Software design and design validation
• Loop3: Detailed design
THIRD QUADRANT( PLANNING)
• Loop1: Software development
• Loop2: Development plan
• Loop3: Software integration and Test plan
The Spiral model development is implemented and the phases are discussed as chapters.
24
36. RitZBoX: A File Synchronizing and Sharing Application Using Desktop, Android App. And Web Interface
25
Chapter 5
SOFTWARE DESIGN
Software design deals with transforming the customer requirements, as described in
the SRS document, into a form (a set of documents) that is suitable for implementation in a
programming language. A good software design is seldom arrived by using a single step
procedure but rather through several iterations through a series of steps.
As a part of Software design we first divided the full project to 5 Modules. They are
as follows:
Module 1: Installing and configuring tomcat server and Database Design
Module 2: Development of Client-server (Web portal) way of
communication
Module 3: Development of Desktop Application and Synchronisation
with server
Module 4: Development of Android Application and Access to Server
Module 5: Apply of Business models in all modules and Security
Enhancements by Encryption
During the design the following points are being taken cared of as:
• The total design should be properly modulated
• Cohesion of the project is high
• Coupling of the project is low
25
37. RitZBoX: A File Synchronizing and Sharing Application Using Desktop, Android App. And Web Interface
26
Detailed Modular Design (Cohesion and Coupling)
MODULE 1
(SERVER INSTALLATION AND CONFIGURATION
and DATABASE DESIGN)
MODULE 3 MODULE 4
MODULE 2
(Desktop application (Android Application
(Website devlopment) development and server development and
Synchronisation) Database Access)
MODULE 5
(Apply of Business models in all modules and
Security Enhancements by Encryption)
OUT PUT
Fig 5.1
26
38. RitZBoX: A File Synchronizing and Sharing Application Using Desktop, Android App. And Web Interface
27
5.1 Design of Module 1
Installing and configuring tomcat server and database designing.
Requirements:
Database should be designed to facilitate following features such as:
• User signup
• User logged in
• File description
• File path on server
DESIGNING
Install the eucalyptus on server.
The database with following table should be created.
Table1
Attributes Data types
F_name Varchar(150)
F_path Varchar(300)
F_size Big int(20)
F_type Varchar(50)
Upload_date Date time
Upload_location Varchar(200)
Fk_userid (F-key) Varchar(100)
27
39. RitZBoX: A File Synchronizing and Sharing Application Using Desktop, Android App. And Web Interface
28
Table2
Attributes Data type
User_name(primary-key) Varchar(100)
Password Varchar(50)
Sex Varchar(50)
E-mail_id Varchar(7)
Address Varchar(70)
Occupation Varchar(130)
Interest Varchar(100)
Stored_size Varchar (200)
File_count Integer
Acc_start_date Integer
Acc_info Varchar (100)
Wants add Tinyint (1)
Uploaded_file_info Blob
5.2 Design of Module 2:- Web Developments
Requirements:
The website should be having these functionalities.
• User signup and login verifications & functionalities.
• Cookies should be enabled.
• Server response should be there for file available on server.
• Uploading and entering the file i/o operation in database.
• User should able to download and upload server.
28
40. RitZBoX: A File Synchronizing and Sharing Application Using Desktop, Android App. And Web Interface
29
Design:
The basic design as per requirement is as the
User id
User
password
Signup
Fig 5.2
Welcome
Upload
File1 215k download
File2 256k
Fig 5.3
Web page is to be designed.
The database should be fetched and checked from database entry.
29
41. RitZBoX: A File Synchronizing and Sharing Application Using Desktop, Android App. And Web Interface
30
The DAO should be made for linking b/w Mysql and client.
5.3 Design of Module 3:- Development of Desktop
Application and Synchronisation with server
Core requirements:
1. An RitZBoX_setup.exe file fir window user installation
2. He should be able to Choose home folder of RitZboX
3. The folder should be synchronised with the server.
So the basic need can be designed as
Fig 5.4
The file chooser should be alike with windows file chooser
30
42. RitZBoX: A File Synchronizing and Sharing Application Using Desktop, Android App. And Web Interface
31
Fig 5.5
Synchronisation of files with in server and devices
31
43. RitZBoX: A File Synchronizing and Sharing Application Using Desktop, Android App. And Web Interface
32
5.4 Module 4:- Development of Android Application
Requirements:
1. An RitZBoX_setup.apk file fir android user installation
2. User should be able to choose files from list of files in SD Card and upload files
from SD Card to the server
3. The user should be able to download files from the server
Fig 5.6
32
44. RitZBoX: A File Synchronizing and Sharing Application Using Desktop, Android App. And Web Interface
33
Chapter 6
SNAPSHOTS OF THE PROJECT
6.1 Database Design
Table file info
Fig 6.1.1
33
45. RitZBoX: A File Synchronizing and Sharing Application Using Desktop, Android App. And Web Interface
34
User_info_table
Fig 6.1.2
34
46. 6.2 Module 2 Web Module(Hosted on local server)
RitZBoX: A File Synchronizing and Sharing Application Using Desktop, Android App. And Web Interface
35
Home page which contains links to go to various pages of site and form to sign in user
Fig 6.2.1
35
47. RitZBoX: A File Synchronizing and Sharing Application Using Desktop, Android App. And Web Interface
36
z
Front page having basic information and user sign in form
Fig 6.2.2
36
48. RitZBoX: A File Synchronizing and Sharing Application Using Desktop, Android App. And Web Interface
37
For Sign Up facility of the new user
Fig 6.2.3
Fig 6.2.4
37
49. RitZBoX: A File Synchronizing and Sharing Application Using Desktop, Android App. And Web Interface
38
After logging in user will be able to upload his files and download or delete uploaded files
Fig 6.2.5
38
50. RitZBoX: A File Synchronizing and Sharing Application Using Desktop, Android App. And Web Interface
39
List of files uploaded and facility to delete or download them from server
Fig 6.2.6
39
51. RitZBoX: A File Synchronizing and Sharing Application Using Desktop, Android App. And Web Interface
40
Public file-sharing blog from which users around the world can upload data
Fig 6.2.7
40
52. RitZBoX: A File Synchronizing and Sharing Application Using Desktop, Android App. And Web Interface
41
Public Blog A Place for discussion with all
Fig 6.2.8
41
53. RitZBoX: A File Synchronizing and Sharing Application Using Desktop, Android App. And Web Interface
42
Advertisement page for revenue collection and business aspects
Fig 6.2.9
42
54. RitZBoX: A File Synchronizing and Sharing Application Using Desktop, Android App. And Web Interface
43
6.3 Desktop module Snapshots
The screenshots of the RitZboX’s Desktop application installer
Fig 6.3.1
43
55. RitZBoX: A File Synchronizing and Sharing Application Using Desktop, Android App. And Web Interface
44
authentication with serial numbers during installation
Fig 6.3.2
44
56. RitZBoX: A File Synchronizing and Sharing Application Using Desktop, Android App. And Web Interface
45
Fig 6.3.3
45
57. RitZBoX: A File Synchronizing and Sharing Application Using Desktop, Android App. And Web Interface
46
Choosing path for installation of RitZboX
Fig 6.3.4
46
58. RitZBoX: A File Synchronizing and Sharing Application Using Desktop, Android App. And Web Interface
47
Fig 6.3.5
47
59. RitZBoX: A File Synchronizing and Sharing Application Using Desktop, Android App. And Web Interface
48
Fig 6.3.6
48
60. RitZBoX: A File Synchronizing and Sharing Application Using Desktop, Android App. And Web Interface
49
Choosing RitZboX’s Home Folder when user will use it first time and user verification
Fig 6.3.7
Fig 6.3.8
49
61. RitZBoX: A File Synchronizing and Sharing Application Using Desktop, Android App. And Web Interface
50
Fig 6.3.9
50
62. RitZBoX: A File Synchronizing and Sharing Application Using Desktop, Android App. And Web Interface
51
Fig 6.3.10
51
63. RitZBoX: A File Synchronizing and Sharing Application Using Desktop, Android App. And Web Interface
52
6.4 MODULE 4 –Android module
Opening of android em Opening and Running the Android Emulator
Fig 6.4.1
52
64. RitZBoX: A File Synchronizing and Sharing Application Using Desktop, Android App. And Web Interface
53
Opening and Running the Android app. on Emulator
Fig 6.4.2
53
65. RitZBoX: A File Synchronizing and Sharing Application Using Desktop, Android App. And Web Interface
54
Opening and Running the Android application and user credentials entry
Fig 6.4.3
54
66. RitZBoX: A File Synchronizing and Sharing Application Using Desktop, Android App. And Web Interface
55
After user credentials verification users are shown options
Fig 6.4.4
55
67. RitZBoX: A File Synchronizing and Sharing Application Using Desktop, Android App. And Web Interface
56
User is shown files for uploading to server and after clicking it is done
Fig 6.4.5
56
68. RitZBoX: A File Synchronizing and Sharing Application Using Desktop, Android App. And Web Interface
57
Chapter 7
SOURCE CODE STRUCTURE
7.1 Web Module Implementation Structure
Fig 7.1 shows the structure of project of web module.All classes and programs have
properly arranged by use of packages.Programs having similar functionality have
been kept in same package for ease of understaing and future maintanance and reuse
Web Module Structure
Fig 7.1
57
69. RitZBoX: A File Synchronizing and Sharing Application Using Desktop, Android App. And Web Interface
58
7.2 Desktop Module Implementation Structure
Fig 7.2 shows the structure of project of desktop module.All classes and programs
have properly arranged by use of packages.
Desktop Module Structure
Fig 7.2
58
70. RitZBoX: A File Synchronizing and Sharing Application Using Desktop, Android App. And Web Interface
59
7.3 Android Module Implementation Structure
Fig 7.3 shows the structure of project of android module.All classes and programs have
properly arranged by use of packages.
Android Module Structure
Fig 7.3
59
71. RitZBoX: A File Synchronizing and Sharing Application Using Desktop, Android App. And Web Interface
60
Chapter 8
SOFTWARE TESTING, DEBUGGING AND LIMITATION
8.1 Software Testing
Software testing is an investigation conducted to provide stakeholders with
information about the quality of the product or service under test.[1] Software testing can also
provide an objective, independent view of the software to allow the business to appreciate
and understand the risks of software implementation. Test techniques include, but are not
limited to, the process of executing a program or application with the intent of
finding software bugs (errors or other defects).
This is a process of validating and verifying that a software program/application/product:
1. Meets the requirements that guided its design and development;
2. Works as expected; and
3. Can be implemented with the same characteristics.
8.1.1 Unit testing
Unit testing, also known as component testing, refers to tests that verify the functionality of a
specific section of code, usually at the function level. In an object-oriented environment, this
is usually at the class level, and the minimal unit tests include the constructors and
destructors.
We verified every Class and methods for functionality under unit testing.
8.1.2 Integration testing
Integration testing is any type of software testing that seeks to verify the interfaces between
components against a software design. Software components may be integrated in an iterative
way or all together ("big bang"). Normally the former is considered a better practice since it
allows interface issues to be localised more quickly and fixed.
Under this testing, we integrated the system and the functionality is compared with
the software design, And the system performance is checked.
Phase 1: Module 1 is tested by integrating all the classes
Phase 2: Module 2 is tested by integrating all the classes
Phase 3: Module 2 is tested by integrating all the classes
8.1.3 System testing
System testing tests a completely integrated system to verify that it meets its requirements.
Under this testing strategy, We tested the whole system
All the modules integrated in previous phases were tested.
60
72. RitZBoX: A File Synchronizing and Sharing Application Using Desktop, Android App. And Web Interface
61
8.2 Approaches for Testing
8.2.1 White-box testing
White-box testing is when the tester has access to the internal data structures and
algorithms including the code that implement these.
8.2.1 Black-box testing
Black-box testing treats the software as a "black box"—without any knowledge of
internal implementation. Black-box testing methods include: equivalence
partitioning, boundary value analysis, all-pairs testing, fuzz testing, model-based
testing, exploratory testing and specification-based testing.
8.3 Debugging
Debugging is a methodical process of finding and reducing the number of bugs, or
defects, in a computer program or a piece of electronic hardware, thus making it behave as
expected. Debugging tends to be harder when various subsystems are tightly coupled, as
changes in one may cause bugs to emerge in another. Many books have been written about
debugging (see below: Further reading), as it involves numerous aspects,
including interactive debugging, control flow, integration testing, log files, monitoring
(application, system), memory dumps, profiling, Statistical Process Control, and special
design tactics to improve detection while simplifying changes.
Approaches for debugging applied
8.3.1 Brute force method
Bruteforce method is common method but it is least efficient method.In this
approach, print statements are inserted throughout the programme.
Fig 8.1
61
73. RitZBoX: A File Synchronizing and Sharing Application Using Desktop, Android App. And Web Interface
62
8.3.2 Backtracking
In this approach, beginning from the statement at which an error symptom has
been observed , the source code is traced backwards until the error is discovered. it is a fairly
common approach.
The error is traced from the top to lower hierarchy of the files
Fig 8.2
8.4 DDMS
Android ships with a debugging tool called the Dalvik Debug Monitor Server
(DDMS), which provides port-forwarding services, screen capture on the device, thread and
heap information on the device, logcat, process, and radio state information, incoming call
and SMS spoofing, location data spoofing, and more.
Using LogCat
LogCat is integrated into DDMS, and outputs the messages that we print out using
the Log class along with other system messages such as stack traces when exceptions are
thrown. View the Reading and Writing Log Messages. topic for more information on how to
log messages to the LogCat.
When we set up your logging, you can use the LogCat feature of DDMS to filter certain
messages with the following buttons:
• Verbose
• Debug
62
74. RitZBoX: A File Synchronizing and Sharing Application Using Desktop, Android App. And Web Interface
63
• Info
• Warn
• Error
we can setup our own custom filter to specify more details such as filtering messages with the
log tags or with the process id that generated the log message. The add filter, edit filter, and
delete filter buttons let you manage your custom filters.
Emulating phone operations and location
The Emulator control tab lets us simulate a phone's voice and data network status. This is
useful when we want to test our application's robustness in differing network environments.
Changing network state, speed, and latency
The Telephony Status section of the Emulator controls tab lets you change different aspects
of the phone's networks status, speed and latency. The following options are available to us
and are effective immediately after us set them:
Voice - unregistered, home, roaming, searching, denied
Data - unregistered, home, roaming, searching, denied
Speed - Full, GSM, HSCSD, GPRS, EDGE, UMTS, HSDPA
Latency - GPRS, EDGE, UMTS
Spoofing calls or SMS text messages
The Telephony Actions section of the Emulator controls tab lets us spoof calls and messages.
This is useful when you want to to test your application's robustness in responding to
incoming calls and messages that are sent to the phone. The following actions are available to
you:
• Voice - Enter a number in the Incoming number field and click Call to send a simulated call
to the emulator or phone. Click the Hang up button to terminate the call.
• SMS - Enter a number in the Incoming number field and a message in the Message: field
and click the Send button to send the message.
Setting the location of the phone
If your application depends on the location of the phone, you can have DDMS send your
device or AVD a mock location. This is useful if you want to test different aspects of your
application's location specific features without physically moving. The following geo-
location data types are available to us:
• Manual - set the location by manually specifying decimal or sexagesimal longitude and
latitude values.
• GPX - GPS eXchange file
• KML - Keyhole Markup Language file
63
75. RitZBoX: A File Synchronizing and Sharing Application Using Desktop, Android App. And Web Interface
64
Chapter 9
Gantt Chart
Gantt Charts (Gant Charts) are useful tools for analyzing and planning more complex
projects. They:
• Help to plan out the tasks that need to be completed
• Give a basis for scheduling when these tasks will be carried out
• Allow us to plan the allocation of resources needed to complete the project, and
• Help us to work out the critical path for a project where you must complete it by a
particular date.
When a project is under way, Gantt Charts help us to monitor whether the project is on
schedule. If it is not, it allows you to pinpoint the remedial action necessary to put it back on
schedule.
Sequential and parallel activities:
An essential concept behind project planning (and Critical Path Analysis) is that some
activities are dependent on other activities being completed first. As a shallow example, it is
not a good idea to start building a bridge before we have designed it!
These dependent activities need to be completed in a sequence, with each stage being more-
or-less completed before the next activity can begin. We can call dependent activities
'sequential' or 'linear'.
Other activities are not dependent on completion of any other tasks. These may be done at
any time before or after a particular stage is reached. These are nondependent or 'parallel'
tasks.
64
76. RitZBoX: A File Synchronizing and Sharing Application Using Desktop, Android App. And Web Interface
65
9.1Task table showing the tasks of the project
Fig 9.1
65
77. RitZBoX: A File Synchronizing and Sharing Application Using Desktop, Android App. And Web Interface
66
9.2 Only Gantt chart with weekly reporting
Only Gantt chart with weekly reporting
Fig 9.2
66
78. RitZBoX: A File Synchronizing and Sharing Application Using Desktop, Android App. And Web Interface
67
9.3 Gantt Chart with task table
Gantt Chart with task table
Fig 9.3
67
79. RitZBoX: A File Synchronizing and Sharing Application Using Desktop, Android App. And Web Interface
68
Chapter 10
BUSINESS ASPECT, SECURITY AND MISCELLANEOUS FEATURES
Technological project comes to market only after having a sound business plan, as the
developer needs bread and butter from the system so a project should be well modelled
according to financial planning of the developer. Different Features makes the project
ornamental and add-ons are better way of maintaining the project as well as it grabs user’s
interest as the newer version released on market.
10.1 Business Aspects Review
The project is designed to give us more benefit from every source. Several business strategies
have been used to develop this project as commercial product.
68
80. RitZBoX: A File Synchronizing and Sharing Application Using Desktop, Android App. And Web Interface
69
We have used several product taglines like :
Now Your Data Will Follow You
You are now free to move around the World ......
Now Enjoy World's Public Data ...
Competitor on present market:
Identification of competitors in the market is an important step for Entrepreneurship in order
to identify and develop a unique feature to our product to compete with the existing firms.
We have identified several competitor companies which provide similar facility to user for
file storage and backup.
Google-docs by google Inc, Dropbox , BoxNet
Sources of income of our project:
10.1.1 Financial study related to each module
Web-module :
• The Google AdSense is used for displaying Advertisings
• The Traffic to Website will give good revenue
• While uploading we will show the video on our Business partner/client
Android Application:
• Android business has 3 ways
• Downloading cost of the application can give us revenue
• The Advertisings during downloading application will give us revenue
• An image(Advertisings) during uploading and downloading will give us a
good revenue
10.1.2 Freemium model:
• The basic user will be given 5Gb free space.
• The users will be given as referral ids
69
81. RitZBoX: A File Synchronizing and Sharing Application Using Desktop, Android App. And Web Interface
70
• For every successful reference and user signup user will get another
500mbs
• For more then 50Gb requirement user qill get an VIP membership
10.2 Security:
• As the files stored on server and it is on Ubuntu,So the files are encrypted
• The desktop module is secure as the connection is through URI
• The SQLinjection may take place as SQL is used in web module but every step is
taken to not allow SQL injection.
• Android is secure as digital signature and shared preferences are used
• Asking the password every-time of uploading file and association of username-file
makes it more secure
10.3 GPS location services
• The GPS location services are used on Android Devices
• GPS provides more Security to files
• GPS can be used for anomaly on files by Hackers
70
82. RitZBoX: A File Synchronizing and Sharing Application Using Desktop, Android App. And Web Interface
71
Chapter 11
CONCLUSION AND FUTURE SCOPE
Our project has reached the milestone as we designed to meet the requirements, The
Desktop Application comes as Setup file, Website provides user friendly interface for
users and Android application is in Good working conditions.
The primary goal of this project is to give an idea about file synchronization among
android mobile and desktop with web server. This project has given us an depth
information about java technology , j2ee and ANDROID technology and its applications
in day today life. This project offers several benefits due to the use of simple and easy to
understand interface. This project is developed using java and android platform ,which is
easy to read, learn, scales well, performs well for being interpreted, and is incredibly well-
documented.
As the final result meet to our expectation of File sharing and File synchronisation. We are
expecting to bring this project to market with real-time cloud file sharing platform. The
file sharing application and the platform is ready.
Future Scope
• The system is to be modified for better traffic control
• The System Cloud should be of larger size
• The Encryption of connection should be done
• The desktop application should be modified for slower bandwidth
• The Android application should be made useful for Slower connection
71
83. RitZBoX: A File Synchronizing and Sharing Application Using Desktop, Android App. And Web Interface
72
References:
1.Write to java certification by khalid maughal
2 http://owncloud.org/support/setup-and- installation/windows-server/
3. http://android-developers.blogspot.in/
4. http://en.wikipedia.org/wiki/Cloud_database
5. youtube.com/marakaNAtv
6.http://www.ibm.com/developerworks/aix/library/au-cloud_apache/
7.http://www.computerworld.com/s/article/66405/Processes_and_Threads
8.Thinking in Java by Bruce Eckel
72
84. RitZBoX: A File Synchronizing and Sharing Application Using Desktop, Android App. And Web Interface
73
73