RitZBox-A file Sharing system

3,647 views
3,560 views

Published on

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.

Published in: Technology
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
3,647
On SlideShare
0
From Embeds
0
Number of Embeds
6
Actions
Shares
0
Downloads
0
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

RitZBox-A file Sharing system

  1. 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. 2. MAULANA AZAD NATIONAL INSTITUTE OF TECHNOLOGY BHOPAL 462051 DEPARTMENT OF COMPUTER SCIENCE ENGINEERING CONDIDATE’S DECLARATIONWe hereby certify that the work which is being presented in the project report entitled“RitZBoX- A File Synchronizing and Sharing Application using Desktop, AndroidApp. And Web Interface” submitted in partial fulfilment of the requirement for the awardof the degree of Bachelor of Technology in Information Technology, submitted toDepartment of Computer Science Engineering, Maulana Azad National Institute ofTechnology, Bhopal is an authentic record of our own work carried out during the periodof Jan 2012 to Apr 2012 under the supervision of Dr. R. K. Pateriya, Associate Professor,Department of Computer Science Engineering, Maulana Azad National Institute ofTechnology, Bhopal.The matter being presented in the project report has not been submitted by us for the awardof any other degree or diploma of this or any other Institute/University.Rituraj Dashore Subham Sahu Satish Thapak (091115007) (091115059) (091115075) I
  3. 3. MAULANA AZAD NATIONAL INSTITUTE OF TECHNOLOGY BHOPAL- 462051 DEPARTMENT OF COMPUTER SCIENCE ENGINEERING CERTIFICATEThis is to certify that Mr. Rituraj Dashore (091115007) ,Mr. Subham Sahu (091115059),Mr. Satish Thapak (091115075) of third year B.Tech , Information Technology havesuccessfully completed their minor project entitled “RitZBox: A File Synchronization andSharing Application using Desktop , Android And Web Interface ” in the partialfulfilment of their B.Tech in Information Technology for session 2011-2012.GUIDE PROJECT CORDINATORDr. R. K. PATERIYA Prof. JYOTI BHARTI(Associate Professor) (Associate Professor)Dept. of Computer Science Engineering Dept. of Computer Science Engineering II
  4. 4. ACKNOWLEDGEMENTWe would like to take this opportunity to extend our heartfelt gratitude to our guide andmentor Dr. R. K. Pateriya, Associate Professor, Department of Computer Science andInformation Technology, Maulana Azad National Institute of Technology, Bhopal, forhis trust in our work, his able guidance, regular source of encouragement and assistancethroughout this project work. We would state that the dissertation work would not have beenin the present shape without his inspirational support and we consider our self-fortunate tohave done our project under him. We have been able to successfully complete this project because of excellentguidance and infinite help given to us by Dr. Nilay Khare, Head of dept. of ComputerScience Engineering. We thank Dr. Appu Kuttan K K , Director, MANIT for allowing us to use collegeresource for completion of our project. It is difficult to acknowledge adequately the help and encouragement we receivedfrom faculty of department but we take this opportunity to thanks them profusely.Rituraj Dashore Subham Sahu Satish Thapak (091115007) (091115059) (091115075) III
  5. 5. ABSTRACT The emerging technologies are replacing the old hardware and software. Today thespeed & security of data is most important. Since data storing and its sharing has becomevery important in today’s world of globalisation, so a platform is required which can provideus secure and platform independent file storing and sharing. Now-a-days Internet isavailable with tablets and mobile devices as well as personal computers. So a service shouldbe accessible from desktop, website (browser) and Mobile platforms so that we can useInternet 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 canbring this from a project to real-time Product. This System is a server-based hosting service designed as client-server model thatuses server storage to enable users to store and share files and folders with others across theinternet. The server is hosted on three Linux based servers. The client is having three modesof communication. It has a desktop application, Web-site and an Android Mobileapplication. The Desktop module is having a folder containing important files synchronisedwith server. The regular update of folder is synchronised with server which ensures thesecure storage of files. The website is the gateway to see all the files and the download themon the Desktops where the application is not installed. Android application is to be installedon Mobiles and tablets for availing the services. As per security requirement of the files the project uses GPS service, and Encryptionof files, to avoid many types of Security flaws. The use of Cloud Storage will be done in thenext phase of the project As per business aspect the mobile advertising and Website-advertising is used to earnrevenues. For better revenue Web-mining and Data-mining of the account information helpsus to provide advertising of client’s interest to earn Good revenues. IV
  6. 6. GRAPHICAL ABSTRACT Encryption Uploading Downloading Android Application Development J2SE J2EERitZBoX Desktop application Web Interface Android Application RitZBoX.exe RitZBoX.com RitZBoX.apk Business Aspects V
  7. 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 3Chapter 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 ProcurementChapter 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. 8. 3.5 Android application 19Chapter 4 Software Life Cycle 22 Spiral modelChapter 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 32Chapter 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 59Chapter 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 DDMSChapter 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 67Chapter 10 Business Aspect, Security and miscellaneous Features 68 10.1 Business Aspect Review 68
  9. 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 70Chapter 11 Conclusion And Future Scope 71References 72Source codes
  10. 10. Figure And Snapshot IndexS 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 2910 5.4 File chooser of Windows 3011 5.5 Synchronisation of files with in server and devices 3112 5.6 Figure showing basic outline of Android App 3213 6.1.1 Table_file info 3314 6.1.2 User_info Table 3415 6.2.1 Home page which contains links to go to various pages of site 35 and form to sign in user16 6.2.2 Front page having basic information and user sign in form 3617 6.2.3 For Sign Up facility of the new user 3718 6.2.4 For Sign Up facility of the new user 3719 6.2.5 After logging in user will be able to upload his files and 38 download or delete uploaded files20 6.2.6 List of files uploaded and facility to delete or download them 39 from server21 6.2.7 Public file-sharing blog from which users around the world 40 can upload data22 6.2.8 Public Blog A Place for discussion with all 4123 6.2.9 Advertisement page for revenue collection and business 42 aspects24 6.3.1 RitZboX’s Desktop application installer 43
  11. 11. 25 6.3.2 Authentication with serial numbers during installation 4426 6.3.3 Viewing of License File during installation 4527 6.3.4 Choosing path for installation of RitZboX 4628 6.3.5 Showing install button for extraction of files to desktop 4729 6.3.6 Progression of installation 4830 6.3.7 Choosing RitZboX’s Home Folder when user will use it first 49 time and user verification31 6.3.8 Choosing RitZboX’s Home Folder when user will use it first 49 time and user verification32 6.3.10 RitzBox Folder on Desktop for synchronisation 5033 6.3.11 Files uploaded to server 5134 6.4.1 Opening and Running the Android Emulator 5235 6.4.2 Opening and Running the Android app. on Emulator 5336 6.4.3 Opening and Running the Android application and user 54 credentials entry37 6.4.4 After user credentials verification users are shown options 5538 7.1 Web Module Structure 5739 7.2 Desktop Module Structure 5840 7.3 Android Module Structure 5941 8.1 Brute force method testing 6142 8.2 The error is traced from the top to lower hierarchy of the files 6243 9.1 Task table showing the tasks of the project 6544 9.2 Only Gantt chart with weekly reporting 6645 9.3 Gantt Chart with task table 67
  12. 12. RitZBoX: A File Synchronizing and Sharing Application Using Desktop, Android App. And Web Interface 1Chapter 1INTRODUCTION1.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 Googles "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 users local computer in a variety of formats. 1
  13. 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 networkedstorage to enable users to store and share files and folders with others across the Internet using filesynchronization. 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. 14. RitZBoX: A File Synchronizing and Sharing Application Using Desktop, Android App. And Web Interface 31.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 andmotivation 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. 15. RitZBoX: A File Synchronizing and Sharing Application Using Desktop, Android App. And Web Interface 4Chapter 2PROJECT FUNCTIONALITIES, S/W & H/W REQUIREMENTS 2.1 Project Functionalities: The functionality of the project is divided into 3 phases according to the interfaces. Theoverall 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 Desktopsoftware, Website for log-in And An Android application. Over all functionality of project Fig. 2.1 4
  16. 16. RitZBoX: A File Synchronizing and Sharing Application Using Desktop, Android App. And Web Interface 52.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 folderServer for storing the files Used as home folder Functional flow of Desktop module Fig 2.2 5
  17. 17. RitZBoX: A File Synchronizing and Sharing Application Using Desktop, Android App. And Web Interface 62.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 optionsWebserver storing all thefiles and user informationdatabase upload download Download and upload(using file chooser) Log out(exit) Functional flow of Web module Fig 2.3 6
  18. 18. RitZBoX: A File Synchronizing and Sharing Application Using Desktop, Android App. And Web Interface 72.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. 19. RitZBoX: A File Synchronizing and Sharing Application Using Desktop, Android App. And Web Interface 82.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. 20. RitZBoX: A File Synchronizing and Sharing Application Using Desktop, Android App. And Web Interface 9Chapter 3THEORY 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 follows3.1 File sharing And Its ImportanceFile sharing is the practice of distributing or providing access to digitally stored information, such ascomputer programs, multimedia (audio, images and video), documents, or electronic books. It may beimplemented through a variety of ways. Common methods of storage, transmission and dispersioninclude manual sharing utilizing removable media, centralized servers on computer networks, WorldWide 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 orsystem failure, human error and software corruption. Natural disasters account for one percentof 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 tosurvive.Catastrophes aside, being fast and nimble is one of the defining characteristics of small andmedium sized businesses. Finance executives need fast access to accurate information toperform optimally. In any business however, finding the right version of last month’s financialstatements can sometimes be difficult. If it takes two weeks or more to access and validate anoperating unit’s financials, that may have just lost the deal. It is not only important to providedata 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 anatural disaster is to store backup data in a physically separate location. There are companiesthat specialize in preserving documents on tapes and discs that are stored within otherstructures. Although they too are susceptible to natural disasters, these companies have helpedto save numerous businesses where the damage has only been internal. 9
  21. 21. RitZBoX: A File Synchronizing and Sharing Application Using Desktop, Android App. And Web Interface 103.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 writtenin the Java language must run similarly on any hardware/operating-system platform. This isachieved by compiling the Java language code to an intermediate representation called Javabytecode, instead of directly to platform-specific machine code. Java bytecode instructions areanalogous 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 RuntimeEnvironment (JRE) installed on their own machine for standalone Java applications, or in aWeb browser for Java applets. Standardized libraries provide a generic way to access host-specific features such asgraphics, threading, and networking. 10
  22. 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 interpretationmeans that interpreted programs almost always run more slowly than programs compiled tonative executable would. Just-in-Time (JIT) compilers were introduced from an early stage thatcompiles byte codes to machine code during runtime.The platform is not specific to any one processor or operating system, but rather an executionengine (called a virtual machine) and a compiler with a set of libraries that are implemented forvarious hardware and operating systems so that Java programs can run identically on all ofthem. 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 widelyused platform for programming in the Java language. It is the Java Platform used to deployportable 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 withinthose programs. Some of the topics of JAVA standard edition are really useful in this application and theyare as follows: 11
  23. 23. RitZBoX: A File Synchronizing and Sharing Application Using Desktop, Android App. And Web Interface 123.2.1.1 Threading Threading concept is very important in Java Programing language. A thread is asequential path of code execution within a program. And each thread has its own localvariables, 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. 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/0The Java I/O means Java Input/Output. It is provided by the java.io package. This packagehas 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. 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 aconnectionless protocol, meaning that each time you send datagrams, you also need to send thelocal socket descriptor and the receiving sockets address. As you can tell, additional data mustbe 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 theTCP protocol, a connection must first be established between the pair of sockets. While one ofThe 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 oneof the) directions. 14
  26. 26. RitZBoX: A File Synchronizing and Sharing Application Using Desktop, Android App. And Web Interface 153.2.2 Java Enterprise Edition (for web-development)Enterprise Edition or Java EE is Oracles enterprise java computing platform. Java EEincludes several API specifications, such as JDBC , and defines how to coordinate them. JavaEE also features some specifications unique to Java EE for components. These includeEnterprise JavaBeans, Connectors, servlets, Java Server Pages and several web servicetechnologies. This allows developers to create enterprise applications that are portable andscalable, 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 enabledevelopers to concentrate more on the business logic of the components rather than oninfrastructure and integration tasks.The Java EE APIs includes several technologies that extend the functionality of the base JavaSE APIs.3.2.2.1 Designing of Web PortalA web portal is a web site that brings together information from diverse sources in a unifiedway. Usually, each information source gets its dedicated area on the page for displayinginformation (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 objectsto be embedded and can be used to create interactive forms. It provides a means to create 15
  27. 27. RitZBoX: A File Synchronizing and Sharing Application Using Desktop, Android App. And Web Interface 16structured 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 whichaffect the behaviour of HTML webpages.CSS Cascading Style Sheets (CSS) is a style sheet language used for describing thepresentation 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 inHTML or a similar markup language) from document presentation, including elements such asthe layout, colors, and fonts.[1] This separation can improve content accessibility, providemore flexibility and control in the specification of presentation characteristics, enable multiplepages 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 typedand 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-sidescripting of HTML. jQuery is free, open source software, dual-licensed under the MIT Licenseor the GNU General Public License. jQuerys syntax is designed to make it easier to navigate adocument, select DOM elements, create animations, handle events, and develop Ajaxapplications.3.2.2.2 JSP SERVLETS (middleware) Java Server Pages (JSP) is a technology that helps software developers servedynamically generated web pages based on HTML, XML, or other document types. Released 16
  28. 28. RitZBoX: A File Synchronizing and Sharing Application Using Desktop, Android App. And Web Interface 17in 1999 by Sun Microsystems, JSP is similar to ASP and PHP, but it uses the Javaprogramming language. JSPs are compiled into servlets by a JSP compiler. The compiler either generates aservlet in Java code that is then compiled by the Java compiler, or it may compile the servlet tobyte code which is directly executable. JSPs can also be interpreted on-the-fly, reducing thetime taken to reload change.3.2.2.3 (JDBC) Java Database Connectivity JDBC is a Java-based data access technology (Java Standard Editionplatform) from Sun Microsystems, Inc.. It is not an acronym as it is unofficially referred to asJava Database Connectivity. This technology is an API for the Java programming language thatdefines how a client may access a database. It provides methods for querying and updating datain a database. JDBC is oriented towards relational databases. A JDBC-to-ODBC bridge enablesconnections 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. Thislogical data model contains all the needed logical and physical design choices and physicalstorage parameters needed to generate a design in a Data Definition Language, which can thenbe used to create a database. A fully attributed data model contains detailed attributes for eachentity. The term database design can be used to describe many different parts of the design ofan overall database system. Principally, and most correctly, it can be thought of as the logicaldesign of the base data structures used to store the data. In the relational model these are thetables and views. In an object database the entities and relationships map directly to object 17
  29. 29. RitZBoX: A File Synchronizing and Sharing Application Using Desktop, Android App. And Web Interface 18classes and named relationships. However, the term database design could also be used toapply to the overall process of designing, not just the base data structures, but also the formsand queries used as part of the overall database application within the database managementsystem (DBMS).The process of doing database design generally consists of a number of stepswhich will be carried out by the database designer.3.4 ENCRYPTION In cryptography, encryption is the process of transforming information (referred to asplaintext) using an algorithm (called a cipher) to make it unreadable to anyone except thosepossessing special knowledge, usually referred to as a key. The result of the process isencrypted information (in cryptography, referred to as cipher text). The reverse process, i.e., tomake 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. 30. RitZBoX: A File Synchronizing and Sharing Application Using Desktop, Android App. And Web Interface 193.5 ANDROID APPLICATIONAndroid, the worlds 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 latestGoogle apps (and thousands of other apps available on Google Play) our Android powereddevice is beyond smart.The Android SDK includes a virtual mobile device emulator that runs on our computer. Theemulator lets you prototype, develop and test Android applications without using a physicaldevice.The Android emulator mimics all of the hardware and software features of a typical mobiledevice, except that it cannot place actual phone calls. It provides a variety of navigation andcontrol keys, which you can "press" using your mouse or keyboard to generate events for yourapplication. It also provides a screen in which our application is displayed, together with anyother active Android applications.To let us model and test your application more easily, the emulator utilizes Android VirtualDevice (AVD) configurations. AVDs let you define certain hardware aspects of your emulatedphone and allow you to create many configurations to test many Android platforms andhardware permutations. Once your application is running on the emulator, it can use theservices of the Android platform to invoke other applications, access the network, play audioand 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 youcan log kernel output, simulate application interrupts (such as arriving SMS messages or phonecalls), 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 canrun 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. 31. RitZBoX: A File Synchronizing and Sharing Application Using Desktop, Android App. And Web Interface 20applications. You can choose what version of the Android system you want to run in theemulator by configuring AVDs, and you can also customize the mobile device skin and keymappings. When launching the emulator and at runtime, you can use a variety of commandsand options to control its behaviour.The Android system images available through the Android SDK Manager contain code for theAndroid Linux kernel, the native libraries, the Dalvik VM, and the various Android packages(such as the Android framework and preinstalled applications). The emulator provides dynamicbinary translation of device machine code to the OS and processor architecture of yourdevelopment 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. 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.121
  33. 33. RitZBoX: A File Synchronizing and Sharing Application Using Desktop, Android App. And Web Interface 22Chapter 4SOFTWARE LIFE CYCLE A software life cycle model (also called process model) is a descriptive anddiagrammatic representation of the software life cycle. A life cycle model represents all theactivities required to make a software product transit through its life cycle phases. It alsocaptures the order in which these activities are to be undertaken. In other words, a life cyclemodel maps the different activities performed on a software product from its inception toretirement. Different life cycle models may map the basic development activities to phasesin different ways. Thus, no matter which life cycle model is followed, the basic activitiesare included in all life cycle models though the activities may be carried out in differentorders in different life cycle models. As we studied different short-coming and industrial approach to projects we found theSPIRAL MODEL is found to be most appropriate for our project. So we have approachedspiral model for life cycle of Software development. The Spiral model of software development is shown in figure. The diagrammaticrepresentation of this model appears like a spiral with many loops. The exact number ofloops in the spiral is not fixed. Each loop of the spiral represents a phase of the softwareprocess. 22
  34. 34. RitZBoX: A File Synchronizing and Sharing Application Using Desktop, Android App. And Web Interface 23 FIG 4.123
  35. 35. RitZBoX: A File Synchronizing and Sharing Application Using Desktop, Android App. And Web Interface 24we see three loops as 3 stages of developments with different and increased models. So in eachquadrant 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: prototype3FIRST QUADRANT(RISK ANALYSIS AND PROTOTYPE DESIGN ) • Loop1: Risk analysis of : prototype1 • Loop2: Risk analysis of : prototype2 • Loop3: Risk analysis of : prototype3FOURTH QUADRANT(DETAILED DESIGN AND IMPLEMENTATION ) • Loop1: Software requirement and requirement validation • Loop2: Software design and design validation • Loop3: Detailed designTHIRD QUADRANT( PLANNING) • Loop1: Software development • Loop2: Development plan • Loop3: Software integration and Test planThe Spiral model development is implemented and the phases are discussed as chapters. 24
  36. 36. RitZBoX: A File Synchronizing and Sharing Application Using Desktop, Android App. And Web Interface 25Chapter 5SOFTWARE DESIGN Software design deals with transforming the customer requirements, as described inthe SRS document, into a form (a set of documents) that is suitable for implementation in aprogramming language. A good software design is seldom arrived by using a single stepprocedure 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 areas 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. 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. 38. RitZBoX: A File Synchronizing and Sharing Application Using Desktop, Android App. And Web Interface 275.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 serverDESIGNING  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. 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 Blob5.2 Design of Module 2:- Web DevelopmentsRequirements:  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. 40. RitZBoX: A File Synchronizing and Sharing Application Using Desktop, Android App. And Web Interface 29Design: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. 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 DesktopApplication 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. 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 devices31
  43. 43. RitZBoX: A File Synchronizing and Sharing Application Using Desktop, Android App. And Web Interface 325.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 filesfrom SD Card to the server 3. The user should be able to download files from the server Fig 5.6 32
  44. 44. RitZBoX: A File Synchronizing and Sharing Application Using Desktop, Android App. And Web Interface 33Chapter 6SNAPSHOTS OF THE PROJECT6.1 Database Design Table file info Fig 6.1.1 33
  45. 45. RitZBoX: A File Synchronizing and Sharing Application Using Desktop, Android App. And Web Interface 34 User_info_table Fig 6.1.234
  46. 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 35Home page which contains links to go to various pages of site and form to sign in user Fig 6.2.1 35
  47. 47. RitZBoX: A File Synchronizing and Sharing Application Using Desktop, Android App. And Web Interface 36 zFront page having basic information and user sign in form Fig 6.2.2 36
  48. 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.437
  49. 49. RitZBoX: A File Synchronizing and Sharing Application Using Desktop, Android App. And Web Interface 38After logging in user will be able to upload his files and download or delete uploaded files Fig 6.2.5 38
  50. 50. RitZBoX: A File Synchronizing and Sharing Application Using Desktop, Android App. And Web Interface 39List of files uploaded and facility to delete or download them from server Fig 6.2.6 39
  51. 51. RitZBoX: A File Synchronizing and Sharing Application Using Desktop, Android App. And Web Interface 40Public file-sharing blog from which users around the world can upload data Fig 6.2.7 40
  52. 52. RitZBoX: A File Synchronizing and Sharing Application Using Desktop, Android App. And Web Interface 41Public Blog A Place for discussion with all Fig 6.2.8 41
  53. 53. RitZBoX: A File Synchronizing and Sharing Application Using Desktop, Android App. And Web Interface 42Advertisement page for revenue collection and business aspects Fig 6.2.9 42
  54. 54. RitZBoX: A File Synchronizing and Sharing Application Using Desktop, Android App. And Web Interface 436.3 Desktop module SnapshotsThe screenshots of the RitZboX’s Desktop application installer Fig 6.3.1 43
  55. 55. RitZBoX: A File Synchronizing and Sharing Application Using Desktop, Android App. And Web Interface 44authentication with serial numbers during installation Fig 6.3.2 44
  56. 56. RitZBoX: A File Synchronizing and Sharing Application Using Desktop, Android App. And Web Interface 45 Fig 6.3.345
  57. 57. RitZBoX: A File Synchronizing and Sharing Application Using Desktop, Android App. And Web Interface 46Choosing path for installation of RitZboX Fig 6.3.4 46
  58. 58. RitZBoX: A File Synchronizing and Sharing Application Using Desktop, Android App. And Web Interface 47 Fig 6.3.547
  59. 59. RitZBoX: A File Synchronizing and Sharing Application Using Desktop, Android App. And Web Interface 48 Fig 6.3.648
  60. 60. RitZBoX: A File Synchronizing and Sharing Application Using Desktop, Android App. And Web Interface 49Choosing RitZboX’s Home Folder when user will use it first time and user verification Fig 6.3.7 Fig 6.3.8 49
  61. 61. RitZBoX: A File Synchronizing and Sharing Application Using Desktop, Android App. And Web Interface 50 Fig 6.3.950
  62. 62. RitZBoX: A File Synchronizing and Sharing Application Using Desktop, Android App. And Web Interface 51 Fig 6.3.1051
  63. 63. RitZBoX: A File Synchronizing and Sharing Application Using Desktop, Android App. And Web Interface 526.4 MODULE 4 –Android moduleOpening of android em Opening and Running the Android Emulator Fig 6.4.1 52
  64. 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.253
  65. 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.354
  66. 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.455
  67. 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.556
  68. 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 reuseWeb Module Structure Fig 7.1 57
  69. 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. 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. 71. RitZBoX: A File Synchronizing and Sharing Application Using Desktop, Android App. And Web Interface 60Chapter 8SOFTWARE TESTING, DEBUGGING AND LIMITATION8.1 Software Testing Software testing is an investigation conducted to provide stakeholders withinformation about the quality of the product or service under test.[1] Software testing can alsoprovide an objective, independent view of the software to allow the business to appreciateand understand the risks of software implementation. Test techniques include, but are notlimited to, the process of executing a program or application with the intent offinding 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 testingUnit testing, also known as component testing, refers to tests that verify the functionality of aspecific section of code, usually at the function level. In an object-oriented environment, thisis usually at the class level, and the minimal unit tests include the constructors anddestructors. We verified every Class and methods for functionality under unit testing. 8.1.2 Integration testingIntegration testing is any type of software testing that seeks to verify the interfaces betweencomponents against a software design. Software components may be integrated in an iterativeway or all together ("big bang"). Normally the former is considered a better practice since itallows interface issues to be localised more quickly and fixed. Under this testing, we integrated the system and the functionality is compared withthe 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 testingSystem 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. 72. RitZBoX: A File Synchronizing and Sharing Application Using Desktop, Android App. And Web Interface 618.2 Approaches for Testing 8.2.1 White-box testing White-box testing is when the tester has access to the internal data structures andalgorithms 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 ofinternal implementation. Black-box testing methods include: equivalencepartitioning, boundary value analysis, all-pairs testing, fuzz testing, model-basedtesting, exploratory testing and specification-based testing.8.3 Debugging Debugging is a methodical process of finding and reducing the number of bugs, ordefects, in a computer program or a piece of electronic hardware, thus making it behave asexpected. Debugging tends to be harder when various subsystems are tightly coupled, aschanges in one may cause bugs to emerge in another. Many books have been written aboutdebugging (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 specialdesign 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 thisapproach, print statements are inserted throughout the programme. Fig 8.1 61
  73. 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 hasbeen observed , the source code is traced backwards until the error is discovered. it is a fairlycommon approach. The error is traced from the top to lower hierarchy of the files Fig 8.28.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 andheap information on the device, logcat, process, and radio state information, incoming calland SMS spoofing, location data spoofing, and more.Using LogCatLogCat is integrated into DDMS, and outputs the messages that we print out usingthe Log class along with other system messages such as stack traces when exceptions arethrown. View the Reading and Writing Log Messages. topic for more information on how tolog messages to the LogCat.When we set up your logging, you can use the LogCat feature of DDMS to filter certainmessages with the following buttons: • Verbose • Debug 62
  74. 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 phones voice and data network status. This is useful when we want to test our applications 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 phones 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 applications 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 applications 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. 75. RitZBoX: A File Synchronizing and Sharing Application Using Desktop, Android App. And Web Interface 64Chapter 9Gantt ChartGantt Charts (Gant Charts) are useful tools for analyzing and planning more complexprojects. 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 onschedule. If it is not, it allows you to pinpoint the remedial action necessary to put it back onschedule.Sequential and parallel activities:An essential concept behind project planning (and Critical Path Analysis) is that someactivities are dependent on other activities being completed first. As a shallow example, it isnot 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 activitiessequential or linear.Other activities are not dependent on completion of any other tasks. These may be done atany time before or after a particular stage is reached. These are nondependent or paralleltasks. 64
  76. 76. RitZBoX: A File Synchronizing and Sharing Application Using Desktop, Android App. And Web Interface 659.1Task table showing the tasks of the project Fig 9.1 65
  77. 77. RitZBoX: A File Synchronizing and Sharing Application Using Desktop, Android App. And Web Interface 66 9.2 Only Gantt chart with weekly reportingOnly Gantt chart with weekly reporting Fig 9.2 66
  78. 78. RitZBoX: A File Synchronizing and Sharing Application Using Desktop, Android App. And Web Interface 67 9.3 Gantt Chart with task tableGantt Chart with task table Fig 9.3 67
  79. 79. RitZBoX: A File Synchronizing and Sharing Application Using Desktop, Android App. And Web Interface 68Chapter 10BUSINESS ASPECT, SECURITY AND MISCELLANEOUS FEATURESTechnological project comes to market only after having a sound business plan, as thedeveloper needs bread and butter from the system so a project should be well modelledaccording to financial planning of the developer. Different Features makes the projectornamental and add-ons are better way of maintaining the project as well as it grabs user’sinterest as the newer version released on market.10.1 Business Aspects ReviewThe project is designed to give us more benefit from every source. Several business strategieshave been used to develop this project as commercial product. 68
  80. 80. RitZBoX: A File Synchronizing and Sharing Application Using Desktop, Android App. And Web Interface 69We have used several product taglines like :  Now Your Data Will Follow You  You are now free to move around the World ......  Now Enjoy Worlds Public Data ...Competitor on present market:Identification of competitors in the market is an important step for Entrepreneurship in orderto 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 forfile storage and backup. Google-docs by google Inc, Dropbox , BoxNetSources 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 revenue10.1.2 Freemium model: • The basic user will be given 5Gb free space. • The users will be given as referral ids 69
  81. 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 membership10.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 secure10.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 Hackers70
  82. 82. RitZBoX: A File Synchronizing and Sharing Application Using Desktop, Android App. And Web Interface 71Chapter 11CONCLUSION 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

×