iascpolls

Polling System developed for the Institute for Ascertaining Scientific Consensus (IASC)

https://github.com/durhamarc/iascpolls

Science Score: 57.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 7 DOI reference(s) in README
  • Academic publication links
    Links to: zenodo.org
  • Academic email domains
  • Institutional organization owner
    Organization durhamarc has institutional domain (www.dur.ac.uk)
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (8.5%) to scientific vocabulary
Last synced: 6 months ago · JSON representation

Repository

Polling System developed for the Institute for Ascertaining Scientific Consensus (IASC)

Basic Info
  • Host: GitHub
  • Owner: DurhamARC
  • License: mit
  • Language: JavaScript
  • Default Branch: main
  • Size: 8.97 MB
Statistics
  • Stars: 2
  • Watchers: 0
  • Forks: 0
  • Open Issues: 5
  • Releases: 1
Created about 3 years ago · Last pushed 9 months ago
Metadata Files
Readme License Citation

README.md

IASCPolls

Unit Tests codecov.io License: MIT Code style: black DOI: 10.5281/zenodo.8155054

Polling System developed for the Institute for Ascertaining Scientific Consensus (IASC). This platform provides a tailored architecture for surveying consensus across the scientific community, and is hosted at https://iasc.awh.durham.ac.uk/

Durham University Project Team

| Project Member | Contact address | Role | Unit | |------------------------------------------------------|-------------------------------------------------------------------|----------------------------------|-------------------------------------------------------------------------------------| | Dr. Samantha Finnigan | samantha.finnigan@dur.ac.uk | Research Software Engineer (RSE) | Advanced Research Computing | | Joanne Sheppard | joanne.r.sheppard@dur.ac.uk | Research Software Engineer (RSE) | Advanced Research Computing | | Prof. Peter Vickers | peter.vickers@dur.ac.uk | IASC Principal Investigator | Department of Philosophy |

Background

Humanity needs a way to pool scientific community opinion quickly and efficiently on a given statement of interest. This should be on a very large scale, such that one can have confidence that the result reflects international scientific opinion. For this pilot project (2022-23), Peter Vickers has built a network of 30+ academic institutions around the world. Personal, one-to-one emails are to be sent locally to all relevant scientists at those institutions, asking for a yes/no answer to a given question. The scientist answers by hitting a button embedded in the email, and confirming the response in a second step. Each scientist on our list should have one vote only, and nobody else gets to vote. Voting should be anonymous, with any 'token' linking the scientist to their vote being destroyed after voting. Votes should be tagged to academic department, and institution, for subsequent data analysis. Originally the project was set up with Word, Excel, and Microsoft Forms, but several problems were encountered; tailored architecture is needed.

Getting Started

This project is developed in Python Django and React.

Run Locally

There are some prerequisites to be aware of: please see Dependencies for more information.

The django development server can be run using the command:

python manage.py runserver

Linting

The Black code style is used to lint this repository on-push. Set up a pre-commit hook to ensure that any code you push is passing this code style or Linting may fail for your commit. The .pre-commit-config.yaml file contains the configuration for this. You need to tell Git to run it with the following command:

pre-commit install

If you see command not found: pre-commit, you need to first install the pre-commit framework.

You can also run black manually by installing the python module and then python -m black ./src.

Contributing

Please feel free to comment on and create issues. When creating an issue, please use the correct issue template, e.g. for Bug Reports or Feature Requests.

main Branch

Protected and should only be pushed to via pull requests. Should be considered stable and a representation of production code.

devel Branch

Should be considered fragile, code should compile and run but features may be prone to errors.

feature Branches

Feature branches should be created from the main and devel branches to track commits per feature being worked on. External developers should fork the repository and add their commits to a Pull Request. This follows the "github-flow" model of branching.

release Branch

Pushing to the release branch triggers the CI/CD workflow to build the Docker images and upload them to the DurhamARC DockerHub repositories, then release to Azure and the backend servers. The release branch is protected and can only be pushed to by authorized members.

The release branch is managed by rebasing on top of the main branch and creating a tag. For example:

shell $ git checkout release $ git rebase main $ git tag -a v1.x -m "Release v1.x" $ git push origin release v1.x $ git checkout main

Built With

We are using the following frameworks and tools to develop this software:

A CI/CD pipeline is used to test and release this software, using GitHub Actions and Azure Pipelines.

License

This work is licensed under the MIT License, a permissive license which allows Commercial use, Modification, and Distribution, but does not admit liability or warranty for use of this code.

Acknowledgements

This project was supported by the Durham University Seedcorn project fund, Durham University Department of Philosophy, and the Centre for Humanities Engaging Science and Society (CHESS).

Citation

Please cite the codebase for this work if you use or reference it in academic publications:

APA

Mitchell Finnigan, S., Sheppard, J., & Vickers, P. (2023). IASCPolls: The Institute for Ascertaining Scientific Consensus Polling Platform (Version 1.0) [Computer software]. https://doi.org/10.5281/zenodo.8155054

BibTeX

@software{ Mitchell_Finnigan_IASCPolls_The_Institute_2023, author = {Mitchell Finnigan, Samantha and Sheppard, Joanne and Vickers, Peter}, doi = {10.5281/zenodo.8155054}, license = {MIT}, month = jul, title = {{IASCPolls: The Institute for Ascertaining Scientific Consensus Polling Platform}}, url = {https://github.com/DurhamARC/IASCPolls}, version = {1.0}, year = {2023} }

//: # ()

//: # ()

//: # ()

Owner

  • Name: Durham University Advanced Research Computing
  • Login: DurhamARC
  • Kind: organization

GitHub Events

Total
  • Release event: 1
  • Delete event: 5
  • Issue comment event: 5
  • Push event: 13
  • Pull request event: 9
  • Create event: 5
Last Year
  • Release event: 1
  • Delete event: 5
  • Issue comment event: 5
  • Push event: 13
  • Pull request event: 9
  • Create event: 5

Dependencies

.github/workflows/docker.yml actions
  • actions/cache v3 composite
  • actions/checkout v3 composite
  • docker/build-push-action v3 composite
  • docker/login-action v2 composite
  • docker/setup-buildx-action v2 composite
  • docker/setup-qemu-action v2 composite
.github/workflows/lint.yml actions
  • actions/checkout v2 composite
  • actions/setup-node v3 composite
  • psf/black stable composite
.github/workflows/unit-tests.yml actions
  • Azure/pipelines v1.2 composite
  • actions/cache v3 composite
  • actions/checkout v2 composite
  • codecov/codecov-action v3 composite
  • conda-incubator/setup-miniconda v2 composite
  • postgres 15.2-alpine docker
Dockerfile docker
  • continuumio/miniconda3 4.12.0 build
  • debian bullseye-slim build
  • node alpine3.15 build
docker-compose.yml docker
  • postgres 15.2-alpine
react-app/package-lock.json npm
  • 1288 dependencies
react-app/package.json npm
  • @babel/core ^7.21.8 development
  • @babel/preset-env ^7.21.5 development
  • @babel/preset-react ^7.18.6 development
  • babel-loader ^9.1.2 development
  • clean-webpack-plugin ^4.0.0 development
  • css-loader ^6.7.3 development
  • eslint 8.22.0 development
  • eslint-config-airbnb ^19.0.4 development
  • eslint-config-prettier ^8.8.0 development
  • eslint-plugin-import ^2.27.5 development
  • eslint-plugin-jsx-a11y ^6.7.1 development
  • eslint-plugin-react ^7.32.2 development
  • eslint-plugin-react-hooks ^4.6.0 development
  • prettier 2.7.1 development
  • style-loader ^3.3.2 development
  • webpack ^5.82.0 development
  • webpack-bundle-tracker ^1.8.1 development
  • webpack-cli ^5.0.2 development
  • @testing-library/jest-dom ^5.16.5
  • @testing-library/react ^13.4.0
  • @testing-library/user-event ^13.5.0
  • axios ^1.4.0
  • react ^18.2.0
  • react-dom ^18.2.0
  • react-dropzone ^14.2.3
  • react-error-boundary ^4.0.4
  • react-router-dom ^6.11.1
  • react-scripts ^5.0.1
  • react-select ^5.7.3
  • web-vitals ^2.1.4
requirements.txt pypi
  • django ==4.1
  • django-cors-headers *
  • django-environ >=0.4.5
  • django-filter *
  • django-webpack-loader *
  • djangorestframework *
  • djangorestframework-filters *
  • drf-excel *
  • gunicorn *
  • openpyxl *
  • pandas *
  • psycopg2 *
  • requests *
  • thefuzz *
  • whitenoise *