Skip to content
Zooniverse API to support user defined volunteer research projects
Ruby API Blueprint HTML CSS JavaScript Shell
Branch: master
Clone or download
dependabot-preview and camallen Bump factory_bot_rails from 4.11.1 to 5.0.1 (#3072)
* Bump factory_bot_rails from 4.11.1 to 5.0.1

Bumps [factory_bot_rails]( from 4.11.1 to 5.0.1.
- [Release notes](
- [Changelog](
- [Commits](thoughtbot/factory_bot_rails@v4.11.1...v5.0.1)

Signed-off-by: dependabot[bot] <>

* fix factory bot static attribute declarations

fixed using rubocop --require rubocop-rspec --only FactoryBot/AttributeDefinedStatically --auto-correct

* use transient dsl

ignore dsl is deprecated

* use new dynamic attribute syntax

* ensure build strategy links identity groups

* use create strategy to persist associations

* reformat factory syntax

* update specs to fix association build/creates
Latest commit a59b4c6 Sep 11, 2019
Type Name Latest commit message Commit time
Failed to load latest commit information.
.github add label for approved pull requests (#3064) Feb 4, 2019
app allow selector page size to be set from workflow configuration (#3162) Sep 11, 2019
bin Add bin/spring, and update bin/bundle binstubs Jul 12, 2018
config Added strong_migrations gem and initializer (#3151) Jul 24, 2019
db Ignore sim sets in workflow subjects count (#3144) Jul 8, 2019
doc Update docs (#3051) Jan 29, 2019
lib allow selector page size to be set from workflow configuration (#3162) Sep 11, 2019
log Initial Commit Apr 22, 2014
public allow all robots Feb 11, 2016
scripts move puma to phased restarts (#2778) May 23, 2018
spec Bump factory_bot_rails from 4.11.1 to 5.0.1 (#3072) Sep 11, 2019
vendor/assets Add support for login in through ZooHome database Mar 6, 2015
.dockerignore rework commit_id.txt build Nov 11, 2015
.editorconfig Subject import API (#2788) Jun 14, 2018
.gitignore Load Doorkeeper JWT keypair using env in filename (#1857) Jul 4, 2016
.graphqlconfig Add projects to graphql query root (#3031) Feb 5, 2019
.hound.yml Move rubocop config to normal location (#2037) Nov 10, 2016
.rubocop.yml allow rspec change block syntax (#2793) Jun 6, 2018
.rubocop_todo.yml rubocop updates (#2770) May 18, 2018
.travis.yml Remove workflow contents (#3044) Feb 18, 2019 Create guide (#2536) Nov 28, 2017
Dockerfile lock debian to stretch version (#3089) Mar 21, 2019 use jemalloc memory allocator (#3088) Mar 21, 2019 Docs site (#3015) Jan 28, 2019
Gemfile [Security] Bump devise from 4.6.2 to 4.7.1 (#3172) Sep 11, 2019
Gemfile-rails5 Add Rails 5-specific Gemfile (#3008) Dec 11, 2018
Gemfile-rails5.lock Add Rails 5-specific Gemfile (#3008) Dec 11, 2018
Gemfile.lock Bump factory_bot_rails from 4.11.1 to 5.0.1 (#3072) Sep 11, 2019
Guardfile add focus group to isolate examples and ensure default group is run i… Jun 13, 2014
Jenkinsfile Message slack (#3069) Feb 7, 2019
LICENSE Add License May 2, 2014
Procfile start sidekiq with verbose option in dev mode (#2767) May 17, 2018 add pullreminders badge for OSS license (#3053) Jan 29, 2019
Rakefile remove all references to fig_rake and fig (docker-compose) (#2716) Apr 3, 2018
apiary.apib ignore training subject sets for counters and selection (#3140) Jun 19, 2019 Initial Commit Apr 22, 2014
docker-compose-db.yml Added Contribute link to wiki, added docker-compose-db.yml Apr 22, 2016
docker-compose.yml disable spring in docker compose envs (#2766) May 17, 2018 Don't override RAILS_ENV in Feb 20, 2015
supervisord.conf Don't run sidekiq by default Jan 13, 2016 Don't run sidekiq by default Jan 13, 2016

Panoptes Build Status pullreminders

The new Zooniverse API for supporting user-created projects.


The Panoptes public API is documented here, using

If you're interested in how Panoptes is implemented check out the wiki and the Data Model Description.


Since Panoptes uses Docker to manage its environment, the requirements listed below are also found in docker-compose.yml. The means by which a new Panoptes instance is created with Docker is located in the Dockerfile. If you plan on using Docker to manage Panoptes, skip ahead to Installation.

Panoptes is primarily developed against stable MRI, currently 2.4. If you're running MRI Ruby you'll need to have the Postgresql client libraries installed as well as have Postgresql version 9.4 running.

  • Ubuntu/Debian: apt-get install libpq-dev
  • OS X (with homebrew): brew install postgresql

Optionally, you can also run the following:


We only support running Panoptes via Docker and Docker Compose. If you'd like to run it outside a container, see the above Requirements sections to get started.

Setup Docker and Docker Compose


  1. Clone the repository git clone

  2. Install Docker from the appropriate link above.

  3. cd into the cloned folder.

  4. Run docker-compose build to build the containers Panoptes API container. You will need to re-run this command on any changes to

  5. Install the gem dependencies for the application

    • Run: docker-compose run --rm --entrypoint="bundle install" panoptes
  6. Setup the configuration files via a rake task

    • Run: docker-compose run --rm --entrypoint="bundle exec rake configure:local" panoptes
    • Run: docker-compose run --rm --entrypoint="bundle exec rake configure:doorkeeper_keys" panoptes
    • Alternatively, manually copy the example configuration files and setup the doorkeeper keys.
      • Run: find config/*.yml.hudson -exec bash -c 'for x; do x=${x#./}; cp -i "$x" "${x/.hudson/}"; done' _ {} +
  7. Create and run the application containers with docker-compose up

  8. If the above step reports a missing database error, kill the docker-compose process or open a new terminal window in the current directory and then run docker-compose run --rm --entrypoint="bundle exec rake db:setup" panoptes to setup the database. This command will launch a new Docker container, run the rake DB setup task, and then clean up the container.

  9. To seed the development database with an Admin user and a Doorkeeper client application for API access run docker-compose run --rm --entrypoint="bundle exec rails runner db/dev_seed_data/dev_seed_data.rb" panoptes

  10. Open up the application in your browser at http://localhost:3000

Once all the above steps complete you will have a working copy of the checked out code base. Keep your code up to date and rebuild the image on any code or configuration changes.


There are multiple options for setting up a testing environment:

  1. Run it entirely from within docker-compose:

    1. Run docker-compose build to build the panoptes container.
    2. Install the gem dependencies for the application
      • Run: docker-compose run --rm --entrypoint="bundle install" panoptes
    3. Create config files if you don't already have them, run docker-compose run --rm -e RAILS_ENV=test --entrypoint="bundle exec rake configure:local" panoptes
    4. To create the testing database, run docker-compose run --rm -e RAILS_ENV=test --entrypoint="bundle exec rake db:setup" panoptes
    5. Run the full spec suite docker-compose run -T --rm -e RAILS_ENV=test --entrypoint="bundle exec rspec" panoptes noting that running all tests is slow.
      • Use rspec focus keyword in your specs or specify the spec you want to run, e.g. docker-compose run -T --rm -e RAILS_ENV=test --entrypoint="rspec path/to/spec/file.rb" panoptes
  2. Use parts of docker-compose manually and wire them up manually to create a testing environment.

    1. Run docker-compose run -d --name postgres --service-ports postgres to start the postgres container
    2. Run docker-compose run -T --rm -e RAILS_ENV=test --entrypoint="bundle exec rspec" panoptes to run the full test suite
  3. Assuming you have the correct Ruby environment already setup:

    1. Run bundle install
    2. Start the docker Postgres container by running docker-compose run -d --name postgres --service-ports postgres or run your own
    3. Create config files if you don't already have them, run bundle exec rake configure:local
    4. Create doorkeeper keys, run bundle exec rake configure:doorkeeper_keys
    5. Modify your config/database.yml test env to point to the running Postgres server, e.g. host: localhost
    6. Setup the testing database if you haven't already, by running RAILS_ENV=test rake db:setup
    7. Finally, run rspec with RAILS_ENV=test rspec


Thanks a bunch for wanting to help Zooniverse. Here are few quick guidelines to start working on our project:

  1. Fork the Project on Github.
  2. Clone the code and follow one of the above guides to setup a dev environment.
  3. Create a new git branch and make your changes.
  4. Make sure the tests still pass by running bundle exec rspec.
  5. Add tests if you introduced new functionality.
  6. Commit your changes. Try to make your commit message informative, but we're not sticklers about it. Do try to to add Closes #issue or Fixes #issue somewhere in your message if it's addressing a specific open issue.
  7. Submit a Pull Request
  8. Wait for feedback or a merge!

Your Pull Request will run on travis-ci, and we'll probably wait for it to pass on MRI Ruby 2.4. For more information, see the wiki.


Copyright 2014-2018 by the Zooniverse

Distributed under the Apache Public License v2. See LICENSE

You can’t perform that action at this time.