Skip to content

galahq/gala

Repository files navigation

Gala

GitHub release badge. Github commits (since latest release) CircleCI badge. Greenkeeper badge. license View performance data on Skylight

Gala is a platform for the collaborative study of media-rich teaching cases.

Dependencies

  • Docker
  • Ruby 2.7.6
  • Node 12.5.0

Using rbenv

  1. rbenv install 2.7.6
  2. rbenv shell 2.7.6
  3. gem install bundler
  4. bundle install

Using nodenv

  1. nodenv install 12.5.0
  2. nodenv shell 12.5.0
  3. npm install yarn
  4. yarn

Getting started

  • docker compose up to start the app
  • docker compose down to stop the app
  • bundle exec rspec to run the Ruby tests
  • yarn test to run the Javascript tests

Updating dependencies

When you update dependencies be sure to run these commands locally first

  • bundle install to install Ruby dependencies
  • yarn to install Javascript dependencies

Then you can run docker compose up --build to rebuild the containers with the new dependencies.

If you update Javascript dependencies, you'll need to additionally run docker compose run web yarn to install them in the web container since the node_modules directory is mounted as an anonymous volume (for performance).

Other useful commands

  • docker compose run web yarn to install new JS dependencies in the web container
  • docker compose run web bash to get a shell inside the web container
  • docker volume rm gala_db_data to delete the database volume
  • docker compose up --build to rebuild the containers

Cron jobs

The full-text case search is powered by a Postgres materialized view so it’s really fast. The consequence is that changes don’t appear in search results until the view is refreshed. Set a cron job or use Heroku Scheduler or the equivalent to run rake indices:refresh as frequently as makes sense.

To send a weekly report of usage data, run rake emails:send_weekly_report once per week.