Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/FurqanSoftware/papyrus
A real-time collaborative Markdown editor and document repository with simple organization and project-based management
https://github.com/FurqanSoftware/papyrus
go golang real-time
Last synced: 3 days ago
JSON representation
A real-time collaborative Markdown editor and document repository with simple organization and project-based management
- Host: GitHub
- URL: https://github.com/FurqanSoftware/papyrus
- Owner: FurqanSoftware
- License: bsd-3-clause
- Created: 2016-01-22T19:23:15.000Z (almost 9 years ago)
- Default Branch: master
- Last Pushed: 2022-12-07T05:29:06.000Z (almost 2 years ago)
- Last Synced: 2024-08-02T05:06:49.658Z (3 months ago)
- Topics: go, golang, real-time
- Language: Go
- Homepage: https://gophergala2016-papyrus.herokuapp.com/
- Size: 853 KB
- Stars: 51
- Watchers: 7
- Forks: 8
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Papyrus
Papyrus is a real-time collaborative Markdown editor and document repository with simple organization and project-based management. At [Furqan Software](https://furqansoftware.com) we always wanted a simple way to collaborate on Markdown documents and Papyrus is our stab at fulfilling that need.
![Obligatory GIF](http://i.imgur.com/WhQqbFA.gif)
As of writing this README.md, [GopherGala 2016](http://gophergala.com/)'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.
## Usage
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](http://localhost:5000).
## Acknowledgements
- [CodeMirror](https://codemirror.net/) - One fantastic text editor for the web
- [Code Commit](http://www.codecommit.com/blog/java/understanding-and-applying-operational-transformation) - For their amazing explanation of operational transformation
- [OT Explained](http://operational-transformation.github.io/visualization.html) - That visualization!
- [golab](https://github.com/mb0/lab) - For the insights we got from its code## License
Papyrus is available under the [BSD (3-Clause) License](http://opensource.org/licenses/BSD-3-Clause).