Awesome
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 <--
<!-- _One liner + link to confluence page_ _Screenshot of UI - optional_ -->See here for overall project architecture info
Setup
<!-- _stack - optional_ _How to build and run the code/app_ -->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
<!-- _High level overview of system architecture_ -->Express web server API
Development env
<!-- _How to run the development environment_ _Coding style convention ref optional, eg which linter to use_ _Linting, github pre-push hook - optional_ -->- npm >
6.1.0
- node v 10 - lts/dubnium
- see
.eslintrc
in the various packages for linting rules
Node version is set in node version manager .nvmrc
Build
<!-- _How to run build_ -->TBC
Tests
<!-- _How to carry out tests_ -->npm test:watch
Deployment
<!-- _How to deploy the code/app into test/staging/production_ -->TBC
Contributing
See CONTRIBUTING.md guidelines and CODE_OF_CONDUCT.md guidelines.
Licence
<!-- mention MIT Licence -->See LICENCE
Legal Disclaimer
Despite using React and DraftJs, the BBC is not promoting any Facebook products or other commercial interest.