Coder Social home page Coder Social logo

prereview / prereview-standup Goto Github PK

View Code? Open in Web Editor NEW
1.0 1.0 0.0 22.39 MB

Beta testing in progress on PREreview 2

Home Page: https://v2.prereview.org

License: MIT License

JavaScript 90.73% CSS 3.55% HTML 5.73%
academic-publishing literature peer-review scholarly-articles

prereview-standup's Introduction

PREreview

A platform for reviewing preprints.

Requirements

Structure

Composed of 3 different parts:

  • A React-based frontend that provides a standalone webform tool to submit tickets.
  • A Koa-based backend that renders & serves the frontend and exposes an API used by the frontend.

These parts are located here in this repository:

src/backend  # The backend components
src/common   # Common code and assets
src/frontend # The React frontend

Configuration

PREreview is configured via variables either specified in the environment or defined in a .env file (see env.example for an example configuration that may be edited and copied to .env).

The backend parses the following configuration variables:

PREREVIEW_LOG_LEVEL       # Logging level (default: error)
PREREVIEW_HOST            # The host PREreview runs on (default: localhost)
PREREVIEW_PORT            # The port to bind to (default: 3000)
PREREVIEW_ADMIN_USERNAME  # The administrative user (default: 'admin')
PREREVIEW_ADMIN_PASSWORD  # The administrative password
PREREVIEW_DB_HOST         # Postgres database host (default: localhost)
PREREVIEW_DB_PORT         # Postgres port (default: 5432)
PREREVIEW_DB_DATABASE     # Postgres database name (default: prereview)
PREREVIEW_DB_USERNAME     # Postgres user (default: prereview)
PREREVIEW_DB_PASSWORD     # Postgres password
PREREVIEW_DB_POOL_MIN     # Postgres minimum connections (default: 0)
PREREVIEW_DB_POOL_MAX     # Postgres max connections (default: 10)
PREREVIEW_DB_TIMEOUT      # Postgres connection timeout (default: 0)

Additionally, we use the semi-standard NODE_ENV variable for defining test, staging, and production environments as well as log4js for setting logging verbosity.

Deployment

Standalone

First, clone this repository and from the root of the resulting directory install dependencies:

npm install

Then, build all components:

npm run build

Create the database:

npm run db:migrations

And start the running processes (with necessary environment variables if not defined in .env):

npm run start

(use npm run start:dev to run in development mode)

Additionally, components can be built or started individually using for example npm run build:backend, npm run start:worker, etc.

Docker

You can deploy this tool using Docker. There is an included docker-compose.yml file that will allow you to run it in a production configuration. First, clone the repo and from this directory run docker-compose:

docker-compose up --build -d

This will build the docker container from the current repository, download the official Postgres docker image, and configure them both (the -d flag will detach from the current shell so that you can leave it running, but you can omit it in order to leave the log output attached).

If this is the first time you've run it on this system, you'll want to run the database migrations to initialize the database:

docker-compose run prereview npm run db:migrations

By default, it runs on http://localhost:3000, but you can place it behind a proxy such as Nginx in order to provide TLS support and other features.

License

PREreview is an open-source software project licensed under the MIT License by PREreview.

prereview-standup's People

Contributors

alexandru-patrascu avatar danielberigoi avatar dasaderi avatar gabrielcazacu96 avatar jheretic avatar vlad-wg avatar

Stargazers

 avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

prereview-standup's Issues

"Add a PREreviewer" button

We need a way for PREreviewers to add other authors to the PREreview.

We discussed the possibility of having a "Add a PREreviewer" button at the top of the editing box which creates a unique link that can be shared with another PREreviewer or a person who is not a user yet.

Another solution, perhaps more intuitive, is that the button opens a search box that goes through a database of PREreviewers but in that case the main PREreviewer needs to know the PREreview account name. Also this needs a way for the added author to confirm their willingness to be mentioned.

Postgres managed DB integration in production

In development, we will use a dockerised postgres server, but because this is a small team project the cost/benefit payoff of using a managed db service is huge.

note: Details left out of the issue for security reasons.

offloads part of #19

Admin controls

Extra controls for admins to display on:

  • reviews (hide / delete / edit)
  • comments (hide / delete / edit)
  • user profiles (send template email, reveal identity)

Public view on PREreviewers' profiles

Currently not loading. When I clicked on name of PREreviewer it brought me to a white page and it kept loading forever.

What we should see is a profile of that PREreview with info according to their choice of private/public profile.

User profiles

Basic profile pre-populated from ORCID and with descriptive fields editable by the user

PDF.js display

Build out PDF.js display system (without committing to any particular design)

Use literate config management

Ideally in general, and especially for projects with lots of contributors or where multiple teams might be responsible over time, sensitive information such as API keys, database configurations, etc, should be well documented and easy to control the permissions of.

This is a problem that is currently not well solved in general, and we are using a reasonable first approach given the scope of the project. We could make transitions between teams much easier by using a literate system, like (@mozilla/node-convict)[https://github.com/mozilla/node-convict]. Not urgent but will save costly developer time later.

Rebuild issue tracker

  • migrate issue labels
  • migrate relevant issues from other repos and from airtable
  • triage issues and assign milestones

Set up travis CI

  • set up Travis integration
  • configure runners
  • debug test running

giving credit

We should recognise organisations and people that funded/enabled the project.

How about:

Simple strategic recognition in the footer:

  • Community (collectively)
  • Sloan as funders
  • Wellcome Trust as funders
  • CSS as fiscal sponsors

Then in the about page explicitly recognise the funders, any advisors or other people who it would be sensible to acknowledge, and specifically thank community members or groups who contributed to the development of the organisation and platforms.

Development environment and processes

Design process, tooling for remote collaboration, documentation of process, facilitation,
planning and system design:

  • design managed via airtable and design repo
  • remotes via Zoom, appear.in, and collaborative notes in hackmd
  • develop docs

Import content from prereview.org

We have consent from some PREreviewers to bring content to new site and assign DOI.

  • @dasaderi to send email to those users and ask them to sign up in new platform.

  • Daniela wrote to Authorea (Alberto Pepe) twice but got no reply for importing data and redirecting DNS. We will probably need to do this manually.

Migrate prereviews from v1 platform

All PREreviews from the v1 platform, https://www.prereview.org/, should be imported into the new platform. On v1 the prereviews are mixed in with articles and other types of content, so use the prereview tag filter to get actual prereviews.

Steps:

  • research Authorea API
    • there doesn't appear to be a content API so I have started a scraper instead
  • create an archive that can be directly imported into the database
  • add archive import to the database creation script

Landing page

  • Change last image on the right in the What We Do to new one

  • Correct typo in What We Do "Train": last word should be "reviews"

  • When launch, change the beta message to be "A platform for crowdsourcing reviews of preprints".
    Several users have reported the lack of clear understanding of what the platform is about. One suggestion was to adapt search to being the home page with clear message about what's the site is about and use illustration for resources and about page.

  • Give feedback button in top bar should be red

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.