fs / Rails Base
Programming Languages
Projects that are alternatives of or similar to Rails Base
Rails Base
Rails Base is the base Rails application template used at Flatstack. It's based on Rails 6 and Ruby 2.7
Application Gems
- Sass for Sass/Scss stylesheets
- Zurb Foundation as CSS framework. For more information see documentation on using Foundation in Rails apps
- Foundation Icon Font for icons. Browse icon set examples
- Autoprefixer for writing CSS without vendor prefixes
- Slim for views
- Simple Form for forms
- Responders to DRY controllers
- Decent Exposure to DRY controllers
- Draper to decorate models for views
- Decent Decoration to extend Decent Exposure with Draper
- Interactors encapsulates application's business logic
- Pundit to encapsulates authorization logic
- Kaminari for pagination
- Devise for basic auth
- Rollbar for exception notification
- Google Analytics Rails for Google Analytics support
Development Gems
- Puma as Rails web server
- Letter Opener for opening mail in the browser instead of sending it
- Bullet for detecting N+1 queries and unused eager loading
- Rubocop and Rubocop-Rspec for reporting violations of the Ruby style guide
- Brakeman for checking application for common security vulnerabilities
- ByeBug as debugger
- Bundler Audit for scanning the Gemfile for insecure dependencies based on published CVEs
- Spring for fast Rails actions via pre-loading
- Web Console for better debugging via in-browser IRB consoles
- SCSS-Lint for reporting violations of SCSS coding conventions
-
Slim-Lint for reporting violations of Ruby style guide in
.slim
templates - Rails ERD for generating a diagram based on application's AR models
Testing Gems
- Capybara for integration testing
- Factory Bot for test data
- RSpec for unit testing
- Shoulda Matchers for common RSpec matchers
- Email Spec for common matchers for testing emails
Initializers
-
mailer.rb
- setup default hosts for mailer from configuration -
requires.rb
- automatically requires everything in lib/ & lib/extensions
Scripts
-
bin/setup
- setup required gems and migrate db if needed -
bin/quality
- runs rubocop, brakeman, rails_best_practices and bundle-audit for the app -
bin/test
- runs all tests and quality checks -
bin/server
- to run server locally
Getting Started
Prepare dependencies
Some gems have native extensions. You should have GCC installed on your development machine. Dependencies will be automatically installed via setup script.
-
phantomjs
- to run Javascript unit tests -
graphviz
- to generate Entity-Relationship Diagram -
node
- JavaScript runtime
Bootstrap application
-
Clone application as new project with original repository named "rails-base".
git clone git://github.com/fs/rails-base.git --origin rails-base [MY-NEW-PROJECT]
-
Create your new repo on GitHub and push master into it. Make sure master branch is tracking origin repo.
git remote add origin [email protected]:[MY-GITHUB-ACCOUNT]/[MY-NEW-PROJECT].git
git push -u origin master
- Run setup script
bin/setup
- Run test and quality suits to make sure all dependencies are satisfied and applications works correctly before making changes.
bin/test
- Run app
bin/server
- Update README
Do not forget to update application README.md
file with detailed information based on the
existing template.
mv doc/README_TEMPLATE.md README.md
# update README.md
git commit -am "Update README.md"
Deployment
Heroku
Out of the box Rails Base ready to be deployed to Heroku.com.
- Heroku Postgres add-on will be used for database.
- SendGrid add-on required to be able to send emails.
- NewRelic add-on could be used to monitor application performance.
- Rollbar add-on could be used to application errors.
heroku create --addons=heroku-postgresql,sendgrid,newrelic,rollbar --remote staging rails-base-example
heroku config:add HOST="rails-base-example.herokuapp.com" MAILER_SENDER_ADDRESS="[email protected]" NEW_RELIC_APP_NAME="Rails Base"
git push staging master
heroku run rake db:schema:load
heroku open
Custom Server
To be able to deploy to your custom server Cloud66.com recommended as a provisioning and deployment service.
Make sure to review and configure cloud66/manifest.yml
before deployment.
Credits
Rails Base is maintained by Timur Vafin. It was written by Flatstack with the help of our contributors.