Skip to content

dartsync/dartsync

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

76 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

dartsync

This repository contains the source code for Computer Networks (CS 60) group project. It consists of a C client with support for Raspberry pi tracker, Java client for supporting multi platforms and and Android client for support for mobile devices. Following is a small description for this project. Full detail can be found here.

A system called DartSync, which is an application that runs on a local always-on node as a tracker, and a set of our personal devices as peers. Users can specify files that they want to synch across devices, and DartSync will synchronize these files across devices upon file update, addition, or removal. The tracker is implemented on a Raspberry PI node, a credit-card size Linux machine supporting Python and C. We choose Pi to implement the tracker because it entails low power to stay always on. The peer nodes is our laptops, Linux machines in Lab 003 and smartphones.

At the high level, DartSync runs on a tracker (server) and multiple peers (clients). The tracker collects file information from all peers, maintains records of all files, and notifies peers upon any file updates. Note that tracker does not store files, but rather only keeps file information. A peer node monitors a local file directory, communicates with the tracker, and updates files if necessary. To use DartSync, a user specifies a local file directory to synchronize (similar to the Dropbox root directory), and the DartSync system synchronizes all files under this directory across all peer nodes.