Papyrus is a real-time collaborative Markdown editor and document repository with simple organization and project-based management. At Furqan Software we always wanted a simple way to collaborate on Markdown documents and Papyrus is our stab at fulfilling that need.
As of writing this README.md, GopherGala 2016's 48 hours is almost up. The core collaborative editing functionality, namely operational transformation and other relevant constructs, have been implemented. The webapp is lacking some functionalities (e.g. removing a member that has been added to a project, deleting a document, etc). At this moment, you can login using a Google or GitHub account, create organizations, create projects, create documents and start editing them collaboratively in real-time.
Create a GOPATH for this project:
$ mkdir -p Papyrus
$ cd Papyrus
$ export GOPATH=`pwd`
Clone this repository:
$ mkdir -p src/github.com/gophergala2016/papyrus
$ cd src/github.com/gophergala2016/papyrus
$ git clone https://github.com/gophergala2016/papyrus.git .
Install dependencies:
$ go get -v ./...
Build papyrusd binary:
$ go build ./cmd/papyrusd
Set necessary environment variables (see env-sample.txt):
$ export ADDR=:5000
$ export SECRET=some-long-secret
$ export BASE=http://localhost:5000
$ export MONGO_URL=mongodb://localhost/papyrus
$ export GITHUB_CLIENT_ID=your-github-client-id-here
$ export GITHUB_CLIENT_SECRET=your-github-client-secret-here
$ export GOOGLE_CLIENT_ID=your-google-client-id-here
$ export GOOGLE_CLIENT_SECRET=your-google-client-secret-here
Make sure MongoDB is running and all necessary environment variables are set.
Run papyrusd:
./papyrusd
Open your web browser and navigate to localhost:5000.
- CodeMirror - One fantastic text editor for the web
- Code Commit - For their amazing explanation of operational transformation
- OT Explained - That visualization!
- golab - For the insights we got from its code
Papyrus is available under the BSD (3-Clause) License.