Edify is a tool for leaders in the Church of Jesus Christ of Latter-day Saints. It keeps track of speakers at Sacrament meetings and makes it easier to determine which members may be appropriate to invite to speak.
This application requires:
- Ruby 3.4
- Rails 7.1
Learn more about Installing Rails.
Instructions follow for setting up a local development environment in MacOS.
-
Clone the repository to your local machine by forking the repo
-
Install Homebrew.
Ruby
Ruby is installed by default on all MacOS systems, but it lives in the root directory and probably won't be the correct version to run Edify. Nearly all Ruby developers use a Ruby environment manager like rbenv, rvm, or asdf. Instructions for installing rbenv follow, but feel free to use one of the other tools if you wish.
-
$ brew update
-
$ brew install rbenv
-
$ cd
into your localedify
directory -
$ rbenv init
For any questions around setting up rbenv see https://github.com/rbenv/rbenv -
$ rbenv local
to see the Ruby version Edify is currently using -
$ rbenv install <current ruby version>
-
$ rbenv rehash
then restart the terminal session
Postgres
Edify uses Postgres, so you'll need to install it if you haven't already.
$ brew install postgres
$ brew services start postgres
VIPS
Edify defaults to the Rails 7 standard of using vips
for image processing. If you want to be able to test image
uploads locally, you will need to install it.
$ brew install vips
Javascript Runtime + Yarn
- Node can be installed using homebrew, but it takes a long time and may cause dependency conflicts in your local environment. Instead, install Node.js by downloading the package installer from nodejs.org
- Install Yarn with homebrew
$ brew install yarn
Rails and Gems
Setup the app by running the setup script:
$ ./bin/setup
$ ./bin/dev
to start the servers in your dev environment- Type
localhost:3000
in a browser
Test Users
After you setup/seed your database, you should have several test users:
| Role | Email | Password | Unit |
| ----- | ---------------------- | -------- | --------------- |
| admin | [email protected] | password | [none] |
| bishopric | [email protected] | password | Sunny Hills |
| clerk | [email protected] | password | Sunny Hills |
| music | [email protected] | password | Sunny Hills |
| program | [email protected] | password | Sunny Hills |
| user | [email protected] | password | Pleasant Forest |
| user | [email protected] | password | Pleasant Forest |
| [none] | [email protected] | password | [none] |
| [none] | [email protected] | password | [none] |
You will also have at least two test units (wards). Most test users belongs to a test unit, but some are as yet unassigned.
Credentials
Edify uses the Rails Credentials feature for storing
credentials. Credentials are stored in the config/credentials.yml.enc
file, which can be decrypted using a master key
stored in the config/master.key
file on your local machine. The config/master.key
file is not checked into the
repository. Contact a member of the development team if you need access to the Rails master key.
Contact Mark Oveson or Evan Child for further information.
Continuous Integration
Edify uses Github Actions for CI/CD. When you push a branch, pipeline will run and should pass before merging to master.
Pipeline consists of:
- Specs
- Rubocop (linter)
- Brakeman (security checks)
- Bundle Audit (dependency vulnerability checker)
Still having issues setting up your local environment? Create an issue and we will try to help!
We love Issues but we love Pull Requests more! If you want to change something or add something feel free to do so. If you don't have enough time or skills start an issue. Below are some loose guidelines for contributing.
Writing code for something is the fastest way to get feedback. It doesn't matter if the code is a work in progress or just a spike of an idea we'd love to see it. Testing is critical to our long-term success, so code submissions must include tests covering all critical logic. ❤️
Be detailed. They only person who knows the bug you are experiencing or feature that you want is you! So please be as
detailed as possible. Include labels like bug
or enhancement
and you know the saying a picture is worth a thousand
words. So if you can grab a screenshot or gif of the behavior even better!
Edify got a boost from Jumpstart, an open-source project that provides authentication, notifications, and administrator tools out of the box for new Rails apps.
Copyright (c) 2022-2024 by Mark Oveson. See license for details.