Overview

We have identified the following direct external dependencies:

  • Bulma, used as the base CSS framework for the frontend.
  • CarrierWave, used as a library for handling uploaded images and generating thumbnails.
  • Dart Sass, used for compiling user-facing CSS.
  • Devise, used for authenticating customers and administrators.
  • Font Awesome, used for iconography.
  • jQuery, used as a JavaScript framework for optional enhancement of the Administrator Panel.
  • OmniAuth, used for communicating with external systems for user authentication.
  • OmniAuth Apple, used as an OmniAuth provider for Sign In with Apple support.
  • OmniAuth Facebook, used as an OmniAuth provider for Sign In with Facebook support.
  • OmniAuth SAML, used as an OmniAuth provider for SAML based administrator sign in support.
  • PostgreSQL, used as the database storage system.
  • RuboCop, used to ensure adherence to best practices and catch some types of security issues in a static scan.
  • Ruby on Rails, used as the Web application framework.

We have identified these indirect external dependencies:

  • Hotwire, used as a site-wide JavaScript framework.
  • ImageMagick, used by MiniMagick for image processing.
  • MiniMagick, used for generating thumbnails with the CarrierWave library.
  • omniauth-rails_csrf_protection, used to prevent CSRF attacks on OmniAuth forms.
  • Puma, used as the interface between Rack and the TLS terminator.
  • Ruby SAML, used by omniauth-saml to process SAML.

The following development-only dependencies are outside of the scope of this document, but are still mentioned here for full system documentation.

  • FactoryBot, used for creating mock objects in the test suite.
  • RSpec, used for the test suite.
  • SimpleCov, used for generating test suite coverage data.
  • SQLite 3, used in the development and test environments to ensure future portability to other RDBMS if necessary.