(Coming soon!)
This application requires:
- ruby 3.2.1
- nodejs 20.12.1
- yarn 1.22.22
- postgres
These can be installed with various package managers (such as asdf or rbenv).
To install gem dependencies, ensure you have bundler installed - which can usually be accomplished with gem install bundler if you have Ruby installed. With bundler installed, run bundle install in the repository directory.
If you run into issues related to the pg gem, see the instructions in config/database.yml.
Make a copy of the .env.example file and name it .env, then fill in the variables with your configuration information.
Setting a POSTGRES_PASSWORD is required.
The GMAIL_USERNAME and GMAIL_APP_PASSWORD are used for sending email notifications and calendar invitations, which is configured to only be used in a production environment. For development and testing purposes, these can safely be left as placeholders.
The AWS_ACCESS_KEY, AWS_SECRET_KEY, AWS_REGION, and S3_BUCKET_NAME are used for ActiveStorage in a production environment for document upload/download, and can also be left as placeholders for development and testing.
To create the development and test databases, run bundle exec rails db:create.
After creating the databases, run the migrations with bundle exec rails db:migrate.
For development, this application comes with a seeds.rb file that can be used for creating dummy data by running bundle exec rails db:seed. This creates a facilitator account (username: [email protected], password: password) and an admin account (username: [email protected], username: password), as well as workshops, participants, and other example objects.
This application uses RSpec for automated testing. This can be run with bundle exec rspec, and will be run as a Github action when a pull request is opened to the main branch.
The containerized version of this application uses:
- Postgres
- Sidekiq
- Nginx
- Redis
- Application docker image
These can be built or downloaded using Docker Compose by running docker-compose build (or docker compose build depending on your docker compose verison).
The docker configuration is designed for a production environment, and requires a CA certificate and key to be generated and placed in nginx/certs/, named as nginx/certs/key.pem and nginx/certs/certificate.pem.
All settings in .env should also be completed.
The application should then be launchable using docker-compose up.