LSA Evaluate is a Ruby on Rails application designed to facilitate a comprehensive submission and evaluation process. The application allows entrants to complete a profile, submit a body of work electronically, and have that work evaluated. Key features include the maintenance of entry forms, management of evaluations, and visual cues to entrants regarding the status of their submissions.
Initially developed to support the submission processes for Hopwood and MFA, LSA Evaluate is built with flexibility in mind, enabling other units to onboard their contest submission workflows as well. By migrating to this new platform, LSA Technology Services Web and Applications Development Services Team can better support these processes and enterprise the application for broader use across the organization.
In its initial implementation, LSA Evaluate will serve the University of Michigan (UM) community, allowing UM students to participate in any submission workflow created within the platform. Administrators of LSA Evaluate can grant access to both UM and non-UM individuals to evaluate submissions.
- Ruby on Rails: 8.1
- Ruby Version: 4.0.6
- Database: MySQL 8 (primary + Solid Queue / Cache / Cable databases)
- Assets: Propshaft + cssbundling-rails / jsbundling-rails (esbuild + Dart Sass)
- Jobs: Solid Queue (via Puma plugin in production/staging)
- Cache / Cable: Solid Cache and Solid Cable (no Redis)
Note:
lsa_tdx_feedbackstill declares a Redis gem dependency, soredismay appear transitively inGemfile.lock, but the application no longer uses Redis for jobs, cache, or Action Cable.
- Clone the repository:
git clone https://github.com/your-repo/lsa-evaluate.git
cd lsa-evaluate- Install dependencies:
bundle install
yarn install- Set up the database:
rails db:create db:prepareThis creates the primary database plus queue, cache, and cable databases and loads their schemas.
- Build assets and run the server:
yarn build && yarn build:css
bin/devThis application uses SendGrid for email delivery in the production environment. Follow these steps to set it up:
- Create a SendGrid account if you don't have one already
- Generate an API key in the SendGrid dashboard
- Set the following environment variables in your production environment:
SENDGRID_USERNAME=apikey SENDGRID_API_KEY=your_sendgrid_api_key_here DOMAIN_NAME=yourdomain.com - Solid Queue runs inside Puma in production/staging and processes
deliver_latermailers asynchronously. Monitor jobs at/jobs(axis_mundi users).
Before deploying:
- Install Ruby 4.0.6 via asdf on the host.
- Create MySQL databases:
evaluate_db_prod_queue,evaluate_db_prod_cache,evaluate_db_prod_cable(and staging equivalents /QUEUE_DATABASE_URL,CACHE_DATABASE_URL,CABLE_DATABASE_URLif separate). - Run
rails db:prepare(or loaddb/queue_schema.rb,db/cache_schema.rb,db/cable_schema.rb) on those databases. - Stop and remove Sidekiq/Redis once in-flight Sidekiq jobs are drained.
- Restart Puma after deploy — Solid Queue is enabled via the Puma plugin.
This repository uses branch protection rules for staging and main branches.
Direct pushes are restricted and enforced by a pre-push hook.
Summary:
- Non-admins: Must open a Pull Request to contribute to protected branches.
- Admins: Can push directly if listed in
.git-hooks/admins.txt. - All pushes to protected branches run tests automatically, unless skipped.
- For details on hook installation, admin setup, and troubleshooting, see .git-hooks/README.md.
AppSignal is currently enabled only for the staging environment on Hatchbox.
Required Hatchbox environment variables:
APPSIGNAL_PUSH_API_KEY
APPSIGNAL_APP_NAME=LSAEvaluate
APPSIGNAL_APP_ENV=staging
APPSIGNAL_ACTIVE=trueProduction on MiServer does not currently have AppSignal enabled.