All Projects → fs → Rails Base

fs / Rails Base

Skeleton for new Rails based projects.

Programming Languages

ruby
36898 projects - #4 most used programming language

Projects that are alternatives of or similar to Rails Base

Php Ddd Skeleton
🐘🚀 PHP DDD Skeleton: Bootstrap your new projects or be inspired by this example project
Stars: ✭ 152 (-5.59%)
Mutual labels:  skeleton
Hound
Automated code review for GitHub pull requests.
Stars: ✭ 1,904 (+1082.61%)
Mutual labels:  rails
Expertiza
Expertiza is a web application through which students can submit and peer-review learning objects (articles, code, web sites, etc). The Expertiza project is supported by the National Science Foundation.
Stars: ✭ 160 (-0.62%)
Mutual labels:  rails
Timber Ruby
🌲 Great Ruby logging made easy.
Stars: ✭ 154 (-4.35%)
Mutual labels:  rails
Snpr
The sources of the openSNP website
Stars: ✭ 155 (-3.73%)
Mutual labels:  rails
Draftsman
Ruby gem that lets you create draft versions of your database records.
Stars: ✭ 159 (-1.24%)
Mutual labels:  rails
Spina
Spina CMS
Stars: ✭ 1,926 (+1096.27%)
Mutual labels:  rails
Ruby Bookmarks
Ruby and Ruby on Rails bookmarks collection
Stars: ✭ 1,972 (+1124.84%)
Mutual labels:  rails
Responders
A set of Rails responders to dry up your application
Stars: ✭ 1,925 (+1095.65%)
Mutual labels:  rails
Graphql Rails Blog
Blog App built with Rails 5, React and GraphQL
Stars: ✭ 160 (-0.62%)
Mutual labels:  rails
Express Typescript Boilerplate
A delightful way to building a RESTful API with NodeJs & TypeScript by @w3tecch
Stars: ✭ 2,293 (+1324.22%)
Mutual labels:  skeleton
Spoon
Our simple Laravel boilerplate
Stars: ✭ 156 (-3.11%)
Mutual labels:  skeleton
X Editable Rails
Edit fields easily with X-Editable helper
Stars: ✭ 159 (-1.24%)
Mutual labels:  rails
Ordinare
Ordinare sorts gems in your Gemfile alphabetically
Stars: ✭ 153 (-4.97%)
Mutual labels:  rails
Yaaf
Easing the form object pattern in Rails applications
Stars: ✭ 161 (+0%)
Mutual labels:  rails
Dotfiles
📍 My dotfiles for macOS using Fish/Zsh, Neovim, and Tmux
Stars: ✭ 151 (-6.21%)
Mutual labels:  rails
Paperclip Meta
Adds width, height, and size to paperclip images.
Stars: ✭ 157 (-2.48%)
Mutual labels:  rails
Authie
👮‍♂️ Improve user session security in Ruby on Rails applications with database session storage
Stars: ✭ 161 (+0%)
Mutual labels:  rails
Rubanok
Parameters-based transformation DSL
Stars: ✭ 161 (+0%)
Mutual labels:  rails
Api guard
JWT authentication solution for Rails APIs
Stars: ✭ 159 (-1.24%)
Mutual labels:  rails

Rails Base

Build Status

Rails Base is the base Rails application template used at Flatstack. It's based on Rails 6 and Ruby 2.7

Application Gems

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

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

  1. 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]
    
  2. 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
  1. Run setup script
bin/setup
  1. Run test and quality suits to make sure all dependencies are satisfied and applications works correctly before making changes.
bin/test
  1. Run app
bin/server
  1. 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.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].