Open Sync

Application Description

         TheOpen Sync is an open-source application aimed to allow the user to transfer files via wireless from an Android handheld device to a computer that runs a specific listening program.

The structure of the project

       The project was designed based on a client-server system . Consequently, it has two parts:

Development history      

        This application, developed as a summer-school project, was originally intended to be an open-source Android media server application. However, after the initial research into existing media-servers out there, we encountered a number of problems:

       After discussing the afore-mentioned issues, we decided to change the application and transform it into a file sycnhronizer. The reason for this choice was the fact that the open-source applications which served this purpose only had a command line interface on the PC side. So we decided to go one step further and develop a graphical user interface for the computer part of the application, thus making the entire system  more user-friendly.

Features available for the first version         

     Android application

        1-2             

        The initial screen waits for the user to input the IP Address of the listening PC server application, a password which will be validated by the server, and the path.

         The only field from the above ones which can be left blank is the path field ( in which case the browsing system will show the entire filesystem of the phone). We are aware that requesting the IP address might be a problem when the application is used by the general public, we found no other available sollutions in the given time frame for establishing a connection with the computer. 

         After the user presses the "List files" button, the window changes and the file browsing window appears. This allows the user to select one or more files, mark them, view the marked files and send them towards the server.

2-1       2-5    2-4-1

     PC application

       screenshot1      

         The PC server application was developed using the Java Swing libraries. It consists of a main window which allows the user to interact with the system. The features made available in the current version are:

         The password system uses the MD5 algorithm both for the client and server applications. When the user inputs the password in the phone application a message digest of the password given is obtained and it will be sent before attempting to send the actual files. The server keeps a collection of allowed passwords ( which are also message digests obtained using the same algorithm) and when a new connection is established verifies the message digest sent by the client. If a bad password was provided then the server doesn't accept data from the client.

         The server system was designed using the Observer Pattern. The idea was to isolate the actual server, which handles incoming connections and the transfer of data from the GUI part of the application. However, changes in one of the components needed to be passed to the other one. This feature was obtained by the use of this general design pattern, therefore allowing the GUI to show the Log window  and the server to take the required actions when the IP, download folder changed or a new password was added.

Problems encountered

Features that should be available in future versions