From 9b9750a6b4680d5b38b856ffe885320519142c4f Mon Sep 17 00:00:00 2001 From: David Winslow Date: Sat, 2 May 2020 17:45:52 +0000 Subject: [PATCH] Start docs directory for developer-oriented documentation --- docs/code-overview.md | 51 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 docs/code-overview.md diff --git a/docs/code-overview.md b/docs/code-overview.md new file mode 100644 index 0000000..94b5134 --- /dev/null +++ b/docs/code-overview.md @@ -0,0 +1,51 @@ +# Tour of the PREreview Codebase + +## Key concepts + +
+
Preprint
+
An academic paper prior to formal review and publishing.
+
Review
+
PREreview's mission is to lower the barrier to entry for academic review of preprints. + Reviews can be requested and submitted via the website.
+
+ +## Key libraries + +* [React](https://reactjs.org/) The UI framework for the PREreview website. +* [Express.js](https://expressjs.com/) The web framework for the PREreview API; also supplies data to the website. + +## Key services +* [Redis](https://redis.io/) Holds cached results for some operations. +* [CouchDB](https://couchdb.apache.org/) Primary "source of truth" for PREreview users, reviews, and other application state. + +## External services +PREreview uses well-known preprint servers to find metadata and content for preprints, including: + +- arXiv +- bioArxiv +- Crossref +- OpenAire +- Google Scholar +- DOI.org + +Additionally, PREreview relies on [ORCid](https://orcid.org/) for user authentication. + +# API +Documentation about the API is published as part of the application; https://outbreaksci.prereview.org/api/ . +This can be edited in `../src/components/api.js`. + +# Database Structure + +We divide PREreview data among CouchDB collections. +The design docs for these are stored in `../src/ddocs/`; see [CouchDB documentation](https://docs.couchdb.org/en/stable/ddocs/index.html) for more info on design docs. +Database queries are consolidated in `../src/db/db.js`. + +## `rapid-prereview-docs` +Stores information about preprints retrieved from authoritative services. + +## `rapid-prereview-users` +Stores information about users who have provided profile information for the site. + +## `rapid-prereview-index` +Stores a partial copy of information from other collections for full-text indexing. \ No newline at end of file