{"id":13870107,"url":"https://github.com/scirate/scirate","last_synced_at":"2025-07-15T20:31:20.192Z","repository":{"id":1741448,"uuid":"8846085","full_name":"scirate/scirate","owner":"scirate","description":"An open peer review site for arXiv preprints","archived":false,"fork":false,"pushed_at":"2024-08-19T20:06:29.000Z","size":4275,"stargazers_count":155,"open_issues_count":30,"forks_count":24,"subscribers_count":8,"default_branch":"main","last_synced_at":"2024-08-20T22:50:06.956Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://scirate.com","language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/scirate.png","metadata":{"files":{"readme":"README.markdown","changelog":null,"contributing":null,"funding":null,"license":"MIT-LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2013-03-18T03:05:06.000Z","updated_at":"2024-08-20T18:56:42.000Z","dependencies_parsed_at":"2023-02-11T22:01:09.266Z","dependency_job_id":"e577c88a-9815-46b6-88ec-9de12464cd98","html_url":"https://github.com/scirate/scirate","commit_stats":{"total_commits":1300,"total_committers":25,"mean_commits":52.0,"dds":0.5092307692307692,"last_synced_commit":"12a92c4daf9c1dcc89774d1e2ba29ecce6648c77"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/scirate%2Fscirate","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/scirate%2Fscirate/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/scirate%2Fscirate/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/scirate%2Fscirate/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/scirate","download_url":"https://codeload.github.com/scirate/scirate/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":226068204,"owners_count":17568714,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-08-05T20:01:28.976Z","updated_at":"2024-11-23T16:31:08.741Z","avatar_url":"https://github.com/scirate.png","language":"Ruby","funding_links":[],"categories":["Ruby","Open-Source Research Utilities"],"sub_categories":[],"readme":"# SciRate\n\n[![Build Status](https://github.com/scirate/scirate/actions/workflows/ci.yaml/badge.svg)](https://github.com/scirate/scirate/actions/workflows/ci.yaml)\n\n[SciRate](https://scirate.com/) is an open source rating and commenting system\nfor [arXiv](http://arxiv.org/) preprints. Papers are upvoted and discussed by\nthe community, and we sometimes play host to more [in-depth peer\nreview](https://scirate.com/tqc-2014-program-committee).\n\nBug reports and feature requests should be submitted as [GitHub\nissues](https://github.com/scirate/scirate/issues).\n\n## Setting up for development\n\nDevelopment is best done locally using [docker compose](https://docs.docker.com/compose/install/):\n\n```sh\ndocker compose build\n```\n\nIn order to run the app, you will need a `local_settings.rb` file, and a\n`config/database.yml` file. You can copy these from the CI versions:\n\n```sh\ncp local_settings.rb.ci local_settings.rb\ncp config/database.yml.ci config/database.yml\n```\n\nThen, spin up all the servers,\n\n```sh\ndocker compose up -d\n```\n\nYou need to make sure elasticsearch is fully up; it can take 10 seconds or so, you can verify with\n```sh\nwhile true; do sleep 1; curl localhost:9200/_cat/health; done\n```\n\nYou can check to make sure something is at \u003clocalhost:3000\u003e. You should see SciRate.\n\n\u003e 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.\n\nFrom here, you can run the tests.\n\n```sh\ndocker compose exec web rspec\n```\n\nAfter that, you can sync to arXiv.org and then play around with the system\nlocally:\n\n```sh\ndocker compose exec web rake arxiv:feed_import\ndocker compose exec web rake arxiv:oai_update\n```\n\nand visit \u003chttp://localhost:3000\u003e and you will be looking at SciRate!\n\nIt 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.\n\n## Testing\n\nThere is a fairly comprehensive series of unit and integration tests in\n`spec`. Running `docker compose exec web rspec`, if the entire docker compose\nsystem is up, will run them.\n\n## Deploying\n\nLocally, you can run `./deploy.rb`. You will need `ssh` access to the production server for this to run successfully.\n\nOn the server, the logs are in `/home/scirate/scirate/log/`.\n\n## Automatic updates\n\nThe website updates automatically every hour with a `sync.sh` script in a crontab on the server. The crontab uses a file lock via `flock`.\n* 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.\n* 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`.\n\n\n## Moderating\n\nIn the database, each user (in `users`) has an `account_status` column. Change this to `admin` or `moderator` for extra powers on the site.\n\n* Both admins and moderators can hide inflammatory recent comments.\n* 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.\n* A user can also have `account_status` set to `spam`.\n\nThere 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).\n\n## Acknowledgements\n\n- Maintained by [Kunal Marwaha](https://kunalmarwaha.com/about)\n- Previously maintained by [Noon van der Silk](https://github.com/silky)\n- Original website by [Dave Bacon](http://dabacon.org)\n- [Bill Rosgen](http://intractable.ca/bill/)\n- [Aram Harrow](http://www.mit.edu/~aram/)\n- [Draftable](https://draftable.com/)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fscirate%2Fscirate","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fscirate%2Fscirate","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fscirate%2Fscirate/lists"}