Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/neerajwahi/pairjam
Real-time web-based collaborative coding
https://github.com/neerajwahi/pairjam
Last synced: 5 days ago
JSON representation
Real-time web-based collaborative coding
- Host: GitHub
- URL: https://github.com/neerajwahi/pairjam
- Owner: neerajwahi
- License: mit
- Archived: true
- Created: 2014-02-17T16:24:02.000Z (over 10 years ago)
- Default Branch: master
- Last Pushed: 2018-12-19T18:09:21.000Z (almost 6 years ago)
- Last Synced: 2024-08-01T12:34:49.495Z (3 months ago)
- Language: JavaScript
- Homepage:
- Size: 9.86 MB
- Stars: 121
- Watchers: 8
- Forks: 16
- Open Issues: 8
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-starred - neerajwahi/pairjam - Real-time web-based collaborative coding (others)
README
**THIS PROJECT IS ABANDONED**
Real-time web-based collaborative coding
## Features
- Syntax highlighting code editor (using Ace)
- Live edit merging via operational transforms
- Load files from GitHub repositories and save changes as a patch
- Audio and video through WebRTC## Design overview
Pairjam is separated into **client** and **server** components.The client consists solely of static files, which means it can be served quickly and cheaply on a CDN (pairjam.com assets are hosted on GitHub pages). The client uses WebSockets for communication, WebRTC for peer-to-peer audio / video, and React.js.
The server is a Node.js WebSocket server that can run on one or more separate machines.
## Running your own
### Setup
To get Pairjam running on your local machine, first clone the repository
```bash
git clone https://github.com/neerajwahi/pairjam.git
```Next, install npm dependencies
```bash
cd server && npm install
cd ../client && npm install
```To integrate the server with GitHub, a GitHub API public key and secret are needed. These should be placed in the GITHUB_CLIENT_ID and GITHUB_CLIENT_SECRET environment variables before running the node server.
If the server does not find these env variables upon loading, rate requests will be limited to GitHub's unauthenticated limit.
### Running locally
Once setup has been completed, run the WebSocket server:
```bash
cd ../server && node app.js
```Then in a new tab, serve the static files from the `client/public` directory:
```bash
cd ../client/public && python -m SimpleHTTPServer 8000
```### Hosted
*Instructions coming soon!*## Building Pairjam
Pairjam uses [gulp.js](http://gulpjs.com/) for its build system.### Client
If you're working on the client, run
```bash
cd /path/to/client
gulp && gulp watch
```
This will build the app and watch any .jsx or .scss files for changes.### Server
The server won't reflect your changes until you re-run it. To watch the server and re-run it automatically try [nodemon](http://nodemon.io/).## License
MIT