Giter Club home page Giter Club logo

towtruck's Introduction

TowTruck - Who you call when you get stuck

What is TowTruck?

TowTruck is a service for your website that makes it surprisingly easy to collaborate in real-time.

Using TowTruck two people can interact on the same page, seeing each other's cursors, edits, and browsing a site together. The TowTruck service is included by the web site owner, and a web site can customize and configure aspects of TowTruck's behavior on the site.

For more information and to see TowTruck in action, visit towtruck.mozillalabs.com

If you want to integrate TowTruck onto your site see the wiki and specifically Getting Started.

Contributing

The remainder of this document is about contributing to TowTruck - but reports, fixes, features, etc. Look back at those other links if you are looking for something else.

Bug Reports

Please submit bug reports as github issues. Don't worry about labels or milestones. If you use the in-app feedback to give us a bug report that's fine too.

Roadmap & Plans

To see what we're planning or at least considering to do with TowTruck, look at see our bug tracker.

Setting up a development environment

TowTruck has two main pieces:

  • The server, which echos messages back and forth between users. The server doesn't do much, you may gaze upon it's incredibly boring history.

  • The client in towtruck/ which does all the real work.

There is a TowTruck hub server deployed at https://hub.towtruck.mozillalabs.com - and there's little need for other server deployments. If you want to try TowTruck out we recommend you use our hub server. Note if you include TowTruck on an https site, you must use an https hub server.

The files need to be lightly "built": we use LESS for styles, and a couple files are generated. To develop you need to build the library using Grunt.

To build a copy of the library, check out TowTruck:

$ git clone git://github.com/mozilla/towtruck.git
$ cd towtruck

Then install npm and run:

$ npm install
$ npm install -g grunt-cli

This will install a bunch of stuff, most of which is only used for development. The only "server" dependency is WebSocket-Node (and if you use our hub then you don't need to worry about the server). By default everything is installed locally, i.e., in node_modules/. This works just fine, but it is useful to install the grunt command-line program globally, which npm install -g grunt-cli does.

Now you can build TowTruck, like:

$ grunt build buildsite --no-hardlink

This will create a copy of the entire towtruck.mozillalabs.com site in build/. You'll need to setup a local web server of your own pointed to the build/ directory.

If you want to develop with TowTruck you probably want the files built continually. To do this use:

$ grunt devwatch

This will rebuild when changes are detected. Note that Grunt is configured to create hard links instead of copying so that most changes you make to files in towtruck/ don't need to be rebuilt to show up in build/towtruck/. --no-hardlink turns this behavior off.

You may with to create a static copy of the TowTruck client to distribute and use on your website. To do this run:

$ grunt build --base-url https://myapp.com --no-hardlink --dest static-myapp

Then static-myapp/towtruck.js and static-myapp/towtruck-min.js will be in place, and the rest of the code will be under static-myapp/towtruck/. You would deploy these on your server.

Running a local server

You shouldn't need to run your own version of the hub server. But if you happen to make changes to the server, you can change the default hub URL by setting the HUB_URL environment variable when building. For example:

$ HUB_URL=http://localhost:8080 grunt devwatch

Testing

Tests are in towtruck/tests/ -- these are doctest.js tests. To actually run the tests build towtruck, serve it up, and go to http://localhost:PORT/towtruck/tests/ -- from there the tests are linked to from the top of the page. The actual tests are *.js files in towtruck/tests/, generally test_*.js for unit-style tests, and func_*.js for functional tests.

The "Manual testing" link is something that lets you simulate different conditions in TowTruck without setting up a second browser/client.

There is unfortunately no automated runner for these tests. It might be nice if Karma could be setup with doctest.js in general, but so far that isn't done.

License

This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/.

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.