This is a template repository for a Ruby on Rails application.
See navapbc/platform
for other template repos.
- U.S. Web Design System (USWDS) for themeable styling and a set of common components
- Custom USWDS form builder
- Integration with AWS services, including:
- Database integration with AWS RDS Postgresql using UUIDs
- Active Storage configuration with AWS S3
- Action Mailer configuration with AWS SES
- Authentication with devise and AWS Cognito
- Internationalization (i18n)
- Authorization using pundit
- Linting and code formatting using rubocop
- Testing using rspec
![CleanShot 2024-05-22 at 16 35 53@2x](https://private-user-images.githubusercontent.com/67701/332988630-fb291a98-7dfa-429e-91e2-30beacf58b9e.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjQ0MTI4MjYsIm5iZiI6MTcyNDQxMjUyNiwicGF0aCI6Ii82NzcwMS8zMzI5ODg2MzAtZmIyOTFhOTgtN2RmYS00MjllLTkxZTItMzBiZWFjZjU4YjllLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA4MjMlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwODIzVDExMjg0NlomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTU3ZmY4MGIyMGYxYjhjOGZiYWE0YzliODAwMjBhYTRkNmYzYTBlMzI0YjgxNWIyNmI1N2Y2ODQ3NTg2MDA2ZDQmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.cZvwRGsn-xIRyAIdm9Ftg2ercR_soWVI45yX24dv0rE)
├── .github # GitHub workflows and repo templates
├── docs # Project docs and decision records
├── app-rails # Web application
├── template-only-bin # Scripts for managing this template; not copied into your project
├── template-only-docs # Documentation for this template; not copied into your project
To get started using the template application on your project:
-
Run the download and install script in your project's root directory.
curl https://raw.githubusercontent.com/navapbc/template-application-rails/main/template-only-bin/download-and-install-template | bash -s
This script will:
- Clone the template repository
- Copy the template files into your project directory
- Ignore any files specific to the template repository, like this README.
You can optionally pass in a branch, commit hash, or release that you want to install. For example:
curl https://raw.githubusercontent.com/navapbc/template-application-rails/main/template-only-bin/download-and-install-template | bash -s -- <commit_hash>
-
Follow the steps in
app-rails/README.md
to set up the application locally. -
Optional, if using the Platform infrastructure template: Follow the steps in the
template-infra
README to set up the various pieces of your infrastructure.
If you have previously installed this template and would like to update your project to use a newer version of this application:
-
Run the update script in your project's root directory and pass in the branch, commit hash, or release that you want to update to, followed by the name of your application directory (e.g.
app-rails
).curl https://raw.githubusercontent.com/navapbc/template-application-rails/main/template-only-bin/update-template | bash -s -- <commit_hash> <app_name>
This script will:
- Clone the template repository
- Copy the template files into your project directory
- Ignore any files specific to the template repository, like this README.
git diff
.