Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/scirate/scirate
An open peer review site for arXiv preprints
https://github.com/scirate/scirate
Last synced: 3 months ago
JSON representation
An open peer review site for arXiv preprints
- Host: GitHub
- URL: https://github.com/scirate/scirate
- Owner: scirate
- License: mit
- Created: 2013-03-18T03:05:06.000Z (over 11 years ago)
- Default Branch: main
- Last Pushed: 2024-04-23T05:42:13.000Z (7 months ago)
- Last Synced: 2024-06-07T05:32:53.999Z (5 months ago)
- Language: Ruby
- Homepage: https://scirate.com
- Size: 4.07 MB
- Stars: 152
- Watchers: 8
- Forks: 24
- Open Issues: 30
-
Metadata Files:
- Readme: README.markdown
- License: MIT-LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
README
# SciRate
[![Build Status](https://github.com/scirate/scirate/actions/workflows/ci.yaml/badge.svg)](https://github.com/scirate/scirate/actions/workflows/ci.yaml)
[SciRate](https://scirate.com/) is an open source rating and commenting system
for [arXiv](http://arxiv.org/) preprints. Papers are upvoted and discussed by
the community, and we sometimes play host to more [in-depth peer
review](https://scirate.com/tqc-2014-program-committee).Bug reports and feature requests should be submitted as [GitHub
issues](https://github.com/scirate/scirate/issues).## Setting up for development
Development is best done locally using [docker-compose](https://docs.docker.com/compose/install/):
```sh
docker-compose build
```In order to run the app, you will need a `local_settings.rb` file, and a
`config/database.yml` file. You can copy these from the CI versions:```sh
cp local_settings.rb.ci local_settings.rb
cp config/database.yml.ci config/database.yml
```Then, spin up all the servers,
```sh
docker-compose up -d
```You need to make sure elasticsearch is fully up; it can take 10 seconds or so, you can verify with
```sh
while true; do sleep 1; curl localhost:9200/_cat/health; done
```You can check to make sure something is at . You should see SciRate.
> If nothing is there, it's possible something went wrong. One common message is something like `A server is already running. Check ... tmp/pids/server.pid.` Deleting `./tmp/pids/server.pid` fixes this issue.
From here, you can run the tests.
```sh
docker-compose exec web rspec
```After that, you can sync to arXiv.org and then play around with the system
locally:```sh
docker-compose exec web rake arxiv:feed_import
docker-compose exec web rake arxiv:oai_update
```and visit and you will be looking at SciRate!
It may not be possible to make new users locally. If you get stuck, you can disable the `unless verify_recaptcha` code block in `app/controllers/users_controller.rb` and it should work.
## Testing
There is a fairly comprehensive series of unit and integration tests in
`spec`. Running `docker-compose exec web rspec`, if the entire docker-compose
system is up, will run them.## Deploying
Locally, you can run `./deploy.rb`. You will need `ssh` access to the production server for this to run successfully.
On the server, the logs are in `/home/scirate/scirate/log/`.
## Automatic updates
The website updates automatically every hour with a `sync.sh` script in a crontab on the server. The crontab uses a file lock via `flock`.
* It first calls `arxiv_paper_sync.rake`. This checks if it's the right time to update, and if so, downloads new papers via `arxiv_oai_update.rake`. This uses the custom [arxivsync](https://github.com/scirate/arxivsync) package.
* Then it calls `arxiv_author_sync.rake`. This checks if it's the right time to update, and if so, links the arXiv author identifiers specified by users with the list of papers on arXiv.org via `arxiv_authorship_update.rake`.## Moderating
In the database, each user (in `users`) has an `account_status` column. Change this to `admin` or `moderator` for extra powers on the site.
* Both admins and moderators can hide inflammatory recent comments.
* Admins can see a dashboard `https://scirate.com/admin`, set a global alert (i.e. for announcing upcoming site maintenance), and act as other users.
* A user can also have `account_status` set to `spam`.There is also a feature to lock comments of a paper. This can be done by changing a flag in the database (there is an open issue to make this accessible in the frontend https://github.com/scirate/scirate/issues/335).
## Acknowledgements
- Maintained by [Kunal Marwaha](https://kunalmarwaha.com/about)
- Previously maintained by [Noon van der Silk](https://github.com/silky)
- Original website by [Dave Bacon](http://dabacon.org)
- [Bill Rosgen](http://intractable.ca/bill/)
- [Aram Harrow](http://www.mit.edu/~aram/)
- [Draftable](https://draftable.com/)