/digital-paper-edit-api

Work in progress - BBC News Labs digital paper edit project - Express server API

Primary LanguageJavaScriptOtherNOASSERTION

Digital Paper Edit - Server API

Current status

The client and API was initially developed to be portable to any platform - i.e local, web, cloud provider, and Electron. We are currently developing and maintaining a firebase version that merged the functionalities of the client and API. The BBC is not actively working on digital-paper-edit-client and digital-paper-edit-api. This is because we are prioritising getting Digital Paper Edit in front of our journalists. For the full list of active/inactive DPE repos, see here.

A fork of the client and API is still being developed in the open, in a separate fork, thanks to @pietrop.

We don't want the opensource collaboration to stop, so we will be pulling in changes from the forks. If there's a valuable feature that we haven't yet implemented from the fork, please open an issue in this repo or get in touch with us!

Collaborating across forks

We will look at the changes in the fork and manually add them to our firebase version.

When manually adding changes to the changes from a fork - there are challenges of pulling in dependencies, such as:

[
  ("@bbc/aes31-adl-composer": "^1.0.1"),
  ("@bbc/digital-paper-edit-react-components": "^1.3.2"),
  ("@bbc/fcpx-xml-composer": "^1.0.0"),
  ("@bbc/react-transcript-editor": "^1.4.0")
];

These dependencies (non-exhaustive) they might've been forked also. In this case, this is a matter of updating the BBC's version with the newest changes from the dependency's forks and making sure everything works together.

For understanding the approach see this PR.


---> Work in progress <--

See here for overall project architecture info

Setup

git clone git@github.com:bbc/digital-paper-edit-api.git
cd digital-paper-edit-api

Optional step to setup nvm to use node version 10, otherwise just use node version 10

nvm use || nvm install

in root of project

npm install

alternatively for production is also on npm

Usage - development

npm run start:dev

Server API is listening on http://localhost:7080

Usage - production

The project is also publicly available in the npm registry @bbc/digital-paper-edit-api

you can add it to your project

npm install @bbc/digital-paper-edit-api

and eg in an express server you can serve the static build as follows

require('@bbc/digital-paper-edit-api');

See notes in infrastructure repository on Importing JS modules without specifying export for more details on this work.

System Architecture

Express web server API

Development env

Node version is set in node version manager .nvmrc

Build

TBC

Tests

npm test:watch

Deployment

TBC

Contributing

See CONTRIBUTING.md guidelines and CODE_OF_CONDUCT.md guidelines.

Licence

See LICENCE

Legal Disclaimer

Despite using React and DraftJs, the BBC is not promoting any Facebook products or other commercial interest.