Testing instructions, background context, more in-depth details of the implementation, and anything else you'd like to call out or ask reviewers.
This PR customizes the default rails app boilerplate and adds opinionated changes to:
Code quality
rspec for testing
rubocop for linting
optimized docker build pipeline
Developer experience
consistent and reproducible dev workflows using a Makefile
a developer sandbox page to test frontend changes
database migration introspection
mock production that can be run locally
per-environment database seeding
Frontend configuration
sass stylesheets
USWDS, including custom form builder
breadcrumbs
flash
header
language toggle
sidebar layout
External integrations with AWS
auth using Cognito
storage using S3
notifications using SES
database using RDS with Postgresql IAM Auth
Auth
authn using devise
authz using pundit
user and user_role scaffolding
implemented flows:
create user
forgot password
update password
verify email
update email
add mfa using authenticator TOTP
remove mfa
Internationalization
support for translated routes
locale directory structure
Software architecture patterns
adapters pattern
services pattern
form objects pattern
Testing
Provide evidence that the code works as expected. Explain what was done for testing and the results of the test plan. Include screenshots, GIF demos, shell commands or output to help show the changes working as expected. ProTip: you can drag and drop or paste images into this textbox.
Test installation
Create a new directory: mkdir test-rails-template
Change to the project directory: cd test-rails-template
Ticket
Changes
Context for reviewers
This PR customizes the default rails app boilerplate and adds opinionated changes to:
user
anduser_role
scaffoldingTesting
Test installation
mkdir test-rails-template
cd test-rails-template
main
branch:main
have been installedgit init && git add -A . && git commit
Test updating
test-rails-template
, update to this branch:git diff
git add -A . && git commit
cd app-rails
make .env
.env
to configure the applicationTest application renaming
test-rails-template
(if you are inapp-rails
, runcd ..
), rename theapp-rails
to a custom project namemy-rails
:git diff
git add -A . && git commit
Test running the application native
cd my-rails
make init-native
make start-native
Ctrl-C
to stopmake clean-native
Test running the application in a container
cd my-rails
make init-container
make start-container
Ctrl-C
to stopmake clean-container