Giter Site home page Giter Site logo

filesync's Introduction

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 student 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 modification will be displayed 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
filesync-server
filesync-relay /path/to/directory

How to contribute

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...)

filesync's People

Contributors

evuez avatar fgribreau avatar rbaumier avatar theredfish avatar varadiell avatar xartok avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

filesync's Issues

Impossible installation on Windows 8

Hello,

I tried to install filesync on my computer with npm i filesync -g
I got this output on my command prompt:

npm error

I have bower installed globally.
My config:

Windows 8.1 x64
node v0.12.2

Please, can someone tell me it's easy to fix ?
Thanks. ^^

Error highlightjs, can't show updated file's content

We succesfully launched relay.js and server.js on IUT's computers but when we change a file, on the web page an element show up containing the date and the file's name like usual. The content of the file don't show and a angular-highlightjs error appears in the console :

"Error: hljs is undefined
.$get@http://127.0.0.1:3000/components/angular-highlightjs/angular-highlightjs.js:47:8
invoke@http://127.0.0.1:3000/components/angular/angular.js:4219:14
createInjector/instanceCache.$injector<@http://127.0.0.1:3000/components/angular/angular.js:4037:20
getService@http://127.0.0.1:3000/components/angular/angular.js:4178:39
invoke@http://127.0.0.1:3000/components/angular/angular.js:4210:1
$ControllerProvider/this.$get</</<@http://127.0.0.1:3000/components/angular/angular.js:8516:11
nodeLinkFn/<@http://127.0.0.1:3000/components/angular/angular.js:7762:13
forEach@http://127.0.0.1:3000/components/angular/angular.js:334:11
nodeLinkFn@http://127.0.0.1:3000/components/angular/angular.js:7761:11
compositeLinkFn@http://127.0.0.1:3000/components/angular/angular.js:7140:13
compositeLinkFn@http://127.0.0.1:3000/components/angular/angular.js:7143:13
compositeLinkFn@http://127.0.0.1:3000/components/angular/angular.js:7143:13
nodeLinkFn@http://127.0.0.1:3000/components/angular/angular.js:7786:1
compositeLinkFn@http://127.0.0.1:3000/components/angular/angular.js:7140:13
compositeLinkFn@http://127.0.0.1:3000/components/angular/angular.js:7143:13
publicLinkFn@http://127.0.0.1:3000/components/angular/angular.js:7019:30
createBoundTranscludeFn/boundTranscludeFn@http://127.0.0.1:3000/components/angular/angular.js:7158:1
controllersBoundTransclude@http://127.0.0.1:3000/components/angular/angular.js:7818:18
ngRepeatAction@http://127.0.0.1:3000/components/angular/angular.js:24822:15
$watchCollectionAction@http://127.0.0.1:3000/components/angular/angular.js:14279:13
$RootScopeProvider/this.$get</Scope.prototype.$digest@http://127.0.0.1:3000/components/angular/angular.js:14412:23
$RootScopeProvider/this.$get</Scope.prototype.$apply@http://127.0.0.1:3000/components/angular/angular.js:14675:13
timeout/timeoutId<@http://127.0.0.1:3000/components/angular/angular.js:16423:25
completeOutstandingRequest@http://127.0.0.1:3000/components/angular/angular.js:4940:7
Browser/self.defer/timeoutId<@http://127.0.0.1:3000/components/angular/angular.js:5328:7
"

After some searches , we found that the content of the file was well send to the page under edit.content. The error is on "hljs" in line :

<div hljs src="edit.content">
     <textarea></textarea>
</div>

However it seems to work on everyone else personal computer.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.