/filesync

Unidirectional 1-N file syncing with history and local merging

Primary LanguageJavaScript

Unidirectional 1-N file syncing with history and local merging Build Status

This is a proof of concept AND a work in progress, don't share the word, yet.

Motivation

“We are in 2015 and my students still have to copy what I wrote on a screen while I teach them something. This is a long and tedious process that slow down the lectures.

Google Document-like tools should NEVER be used for sharing code, we want syntax highlighting and static analysis not copy/pasting code inside an online document each time we make a change.

Online IDEs are NOT a solution. I have my own finely tuned editor, my students have theirs, we don't want to temporarily trade our workflow comfort for a lecture.

Both solution are stupid.

I want a tool that will allow each students to retrieve in real-time my edits while keeping their own local modifications. This tool will work with any editor/IDE because we sync at the file-system level. Each modifications will be display in an history log and would be either merged locally or dropped definitely.”

— 03/06/2015

Current status

FileSync was first made during a lecture on AngularJS/Socket.io/NodeJS with IUT Nantes students on 3rd March 2015.

Setup

npm i filesync -g
npm i open
npm i prompt
filesync-server
filesync-relay /path/to/directory

Contribute / TODO

See issues there is still a lot of things to do/improve note that I will happily merge any pull-requests that solve each of the specified issues.

Bonus

Since this tool is primary build for teaching, it will also display the number of students that don't currently have the page on focus using HTML5 Page Visibility API. (But yeah they can always open another browser window, in the end that feature was mainly developed for fun...)