Docs.plus is a real-time collaborative tools to help communites share knowledge
It is the result of over six years of research by newspeak.house into civil society and public sector coordination and crisis response. It solves many common organising problems, and can be frictionlessly adopted by all typical stakeholders without needing any training.
Docs.plus intuitively combines all the common communication tools:
- βοΈ Collaborative documents
- βοΈ Videocalls (with unlimited self-organising breakout rooms)
- βοΈ Group text chat
- βοΈ Search, filtering and tagging
- π§ Profiling
- βοΈ Email subscription
- βοΈ Mobile and desktop app
- βοΈ Push notifications
- Suggest the next feature...
Docs.plus is built on Etherpad which is a real-time collaborative editor for the web, our team tweek a etherpad bases for the goal we persude, also we are using combanation of etherpad plugin and custom one to power up our goals.
*Let's go ahead and look at our Bible to see what changes we are making!
- ep_wrtc_heading custom build
- ep_headerview custom build
- ep_table_of_contents custom build
- ep_headings2 custom build
- ep_set_title_on_pad custom build
- ep_insert_media custom build
- ep_full_hyperlinks custom build
- ep_bottom_chat_bar custom build
- ep_custom_header_message custom build
- ep_docs_plus_customise custom build
- ep_loading_pad custom build
- ep_profile_modal custom build
- ep_adminpads2
- ep_comments
- ep_hide_line_numbers
- ep_monetization
- ep_remove_embed
- ep_sticky_attributes
Prerequisites and installation are the same as Etherpad flow, follow this link. The following commands will download the source code for docs.plus, install all prerequisites, and run a local server from which Docs.plus can be accessed:
# clone the project
git clone https://github.com/nwspk/docs.plus.git
# move to the project folder
cd docs.plus
# install pre requirement plugins
npm install --no-save --legacy-peer-deps
npm install --no-save --legacy-peer-deps
ep_adminpads2
https://github.com/samirsayyad/ep_rocketchat#f214f48
https://github.com/ether/ep_comments_page
https://github.com/ether/ep_cursortrace
https://github.com/samirsayyad/ep_custom_header_message
https://github.com/samirsayyad/ep_docs_plus_customize#c68bc28
https://github.com/samirsayyad/ep_full_hyperlinks#1eb4ecd
ep_hide_line_numbers
https://github.com/samirsayyad/ep_insert_media#eecbc98
https://github.com/samirsayyad/ep_loading_pad#9ae42cd
ep_monetization
https://github.com/samirsayyad/ep_profile_modal#10a1e17
ep_remove_embed
https://github.com/samirsayyad/ep_headings2#76e3f79
https://github.com/samirsayyad/ep_set_title_on_pad#e507359
https://github.com/samirsayyad/ep_table_of_contents#b123e05
https://github.com/HMarzban/ep_headerview#a4e93eb
# run the docsplus
src/bin/run.sh
Docs.plus should now be accessible from your web browser. To access it type 0.0.0.0:9001 into the address bar.
For mor info Take a look at CI
If you wanna have your Turn/Stun server for the video chat you can follow this installation for the Coturn server; Link.
By default, the video plugin uses a public Stun server More info
Write about new featues more Which makes us more distinct from the Etherpad.
- Single-pad
- Rocket chat π§
- Heading filter π§
- Video group π§
You can use docs.plus as a single-pad document also.
- Add
ep_singlePad
setting to the settings
"ep_singlePad":{
"active": false,
"padId": "padName",
"padName": "padName"
}
- Then change Nginx config like below: (replace padId)
......
location / {
rewrite ^/timeslider(.*) /p/padId/timeslider break;
rewrite ^/$ /p/padId break;
rewrite ^/locales/(.*) /locales/$1 break;
rewrite ^/locales.json /locales.json break;
rewrite ^/admin(.*) /admin/$1 permanent;
rewrite ^/admin/(.*) /admin/$1 break;
rewrite ^/static/(.*) /static/$1 break;
rewrite ^/pluginfw/(.*) /pluginfw/$1 break;
rewrite ^/javascripts/(.*) /javascripts/$1 break;
rewrite ^/socket.io/(.*) /socket.io/$1 break;
rewrite ^/ep/(.*) /ep/$1 break;
rewrite ^/minified/(.*) /minified/$1 break;
rewrite ^/api/(.*) /api/$1 break;
rewrite ^/ro/(.*) /ro/$1 break;
rewrite ^/error/(.*) /error/$1 break;
rewrite ^/jserror(.*) /jserror$1 break;
rewrite ^/redirect(.*) /redirect$1 break;
rewrite /favicon.ico /favicon.ico break;
rewrite /robots.txt /robots.txt break;
rewrite ^/p/(.*) /p/padId break;
rewrite ^/(.*) /p/padId1/$1 break; # ======> single-pad <====== #
proxy_buffering off;
proxy_set_header Host $host;
proxy_pass http://localhost:9101;
proxy_set_header X-Real-IP $remote_addr; # http://wiki.nginx.org/HttpProxyModule
proxy_set_header X-Forwarded-For $remote_addr; # EP logs to show the actual remote IP
proxy_set_header X-Forwarded-Proto $scheme; # for EP to set secure cookie flag when https is used
proxy_set_header Host $host; # pass the host header
proxy_http_version 1.1; # recommended with keepalive connections
proxy_pass_header Server;
# WebSocket proxying - from https://nginx.org/en/docs/http/websocket.html
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
}
......
Thank you for your interest in contributing! Please feel free to put up a PR for any issue or feature request.
The guidelines for contributing are available here.
Thanks goes to these wonderful people (emoji key):
ππΌ edsaperia |
π»π samirsayyad |
π»ππ§βπ«Hossein |
πJosh Balfour |
ππPatryk |
If you have any further questions, please donβt hesitate, you can reach us by the following:
- Twitter: @docsdotplus
- Github: docs.plus
- Slack: docsplus
- Email: contact@newspeak.house
This project is licensed under the Apache License v2 License
Docs.plus is free and open source, please help us stay online: