PubPub: Open publishing
JavaScript CSS HTML
Permalink
Failed to load latest commit information.
api doing the big merge Nov 15, 2016
bin Updating translate to be cleaner and to throw error. Removing error o… Aug 19, 2016
src Adding markdown serialization and making discussion input work Nov 15, 2016
static doing the merge Nov 15, 2016
translations added test Oct 31, 2016
webpack Fixing up webpack build so that messages properly build Aug 25, 2016
.babelrc es6 seems to be happy Jan 7, 2016
.editorconfig Init commit of pubpub architecture with react, redux, node Nov 2, 2015
.eslintignore Removing lots of unnecessary packages. Updating other npm packages. Aug 2, 2016
.eslintrc Creating a simple editor view Nov 15, 2016
.gitignore Added .atomignore to gitignore and translated more Aug 30, 2016
.istanbul.yml Istanbul and coverage support. Travis should pipe to coveralls now May 5, 2016
.travis.yml Adding Joel's content to AboutPubs. Fixing About tests Aug 3, 2016
CHANGELOG.md Fixing Discussion button on mobile Sep 23, 2016
CONTRIBUTING.md DOC: very minor typo Apr 18, 2016
DOCUMENTATION.md Alphabatizing DOCUMENTATION Apr 7, 2016
LICENSE.md License and changelog changes Apr 6, 2016
Procfile Init commit of pubpub architecture with react, redux, node Nov 2, 2015
README.md Updated readme Jul 26, 2016
app.json Don't block non-featured pubs from journal URLs if they aren't publis… Apr 18, 2016
package.json an inline editor that workss Oct 13, 2016
server.babel.js Don't block non-featured pubs from journal URLs if they aren't publis… Apr 18, 2016
tests.webpack.js Don't block non-featured pubs from journal URLs if they aren't publis… Apr 18, 2016

README.md

Build Status Coverage Status Dependency Status devDependency Status

PubPub

PubPub is a platform for open reading, writing, and publishing.

PubPub is open to all and available at www.pubpub.org

For more details, see http://www.pubpub.org/pub/about.

Getting Started

PubPub can be run on your own local machines or controlled servers. There are a few external dependencies which must first be configured. See /api/config.sample.js to configure these services. We strive to make PubPub completely independent from any external proprietary services, but our team is still small, so for the moment it is necessary.

Once the services are configured, run the following commands to install packages and run the dev server. Note, you will need https://nodejs.org/en/download/ installed on your machine:

npm install
npm run dev

PubPub is built with react, redux, node, express, and mongoose. For great react/redux testing, we use https://github.com/gaearon/redux-devtools. We suggest installing the https://chrome.google.com/webstore/detail/redux-devtools/lmhkpmbekcpmknklioeibfkpmmfibljd for a less popup-y dev environment.

For document collaboration to work the https://github.com/pubpub/collab server needs to be running and the url and secret need to be added to /api/config.js.

Building and Running Production Server

npm run build
npm run start

Deploying to Heroku

For testing or production services, PubPub deploys easily to Heroku. A few config variables must be set:

heroku create
heroku config:set NODE_ENV=production
heroku config:set NODE_PATH=./src
heroku config:set NPM_CONFIG_PRODUCTION=false
heroku config:set mongoURI=<MONGOURI>
git push heroku master
heroku ps:scale web=1

Docs

Most documentation is spread throughout the project alongside the code it is describing.

DOCUMENTATION.md aggregates those READMEs for easy navigation.

Updates and Roadmap

CHANGELOG.md documents changes to the project and future features.

Contributing

We welcome contributions to PubPub in the form of feedback, bug reports, feature ideas, and code!

CONTRIBUTING.md documents contributing guidelines.

Testing

Tests run using Mocha. All test files follow the pattern filename.test.js.

To run tests:

npm install
npm run test        # test client and server code with mocha

More on tests