Digital Paper Edit - Server API
March 9, 2020 · View on GitHub
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
- npm >
6.1.0 - node v 10 - lts/dubnium
- see
.eslintrcin the various packages for linting rules
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.