SciRate is an open source rating and commenting system for arXiv preprints. Papers are upvoted and discussed by the community, and we sometimes play host to more in-depth peer review.
Bug reports and feature requests should be submitted as GitHub issues.
Development is best done locally using docker-compose:
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:
cp local_settings.rb.ci local_settings.rb
cp config/database.yml.ci config/database.yml
Then, spin up all the servers,
docker-compose up -d
You need to make sure elasticsearch is fully up; it can take 10 seconds or so, you can verify with
while true; do sleep 1; curl localhost:9200/_cat/health; done
You can check to make sure something is at localhost:3000. 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.
docker-compose exec web rspec
After that, you can sync to arXiv.org and then play around with the system locally:
docker-compose exec web rake arxiv:feed_import
docker-compose exec web rake arxiv:oai_update
and visit http://localhost:3000 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.
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.
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/
.
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 viaarxiv_oai_update.rake
. This uses the custom 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 viaarxiv_authorship_update.rake
.
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 tospam
.
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 #335).
- Maintained by Kunal Marwaha
- Previously maintained by Noon van der Silk
- Original website by Dave Bacon
- Bill Rosgen
- Aram Harrow
- Draftable