-
Notifications
You must be signed in to change notification settings - Fork 0
rails checklist
This is a checklist for developers starting a new Rails application.
It’s easy to create a new Rails application using rails new myapp
or the starter apps from the Rails Apps repository.
But after that, what do you do? What decisions do you make before beginning development? What gems do experienced developers often add? What important items are often overlooked before deploying an app?
Daniel Kehoe compiled this checklist with input from numerous contributors. The article is a work in progress. Got a correction or addition? Please comment.
Follow @rails_apps on Twitter for updates and timely Rails tips.
Do I really need to do this with Rails? Whether to use Rails at all and instead use something lighter weight like Sinatra?
jQuery?
SQL or NoSQL?
AWS
Self-host? Heroku? Engine Yard? What host to use: heroku (quick and easy), engineyard, slicehost, etc.
RESTful? Multitenancy?
Authentication: OAuth or application specific (Devise)?
Caching?
Mac, Windows or Ubuntu?
Text editor or IDE
Example app or starter app?
add .rvmrc
modify .gitignore
jQuery, CoffeeScript
How to handle javascript in Rails 3: http://chadfowler.com/2011/2/9/h…
ERB or Haml or Slim
Markup language? rdiscount for Markdown? Textile?
What testing framework to use; rspec, shoulda, cucumber, etc
Cucumber
amberbit-config gem (avaible at GH)
What authentication gem to use; devise, authlogic, clearance
Which database to use; mysql, postgresql, nosql, etc
What to use for caching: memcached, redis, etc. How to handle file uploads; paperclip, dragonfly, amazon S3, etc Whether to use automated deployment like capistrano What monitoring software to use; monit, god, etc. What error handling software to use: hoptoad, exceptional, or a free solution What uptime monitoring tools to use; pingdom, nagios, siteuptime, etc Figuring out a good SEO strategy like how titles and slugs should be represented Helpdesk software like zendesk or getsatisfaction How modular your app is going to be: will it make heavy use of rack applicaitons What version of Ruby to use (1.8., 1.9) What implementation of Ruby to use (Matz, JRuby, etc.) Views haml to sass/coffee stack Tests capybara, factory_girl, spork, timecop Development guard-livereload, with guard, libnotify etc. active_reload for faster development with assets pipeline annotate if relational db pry Switch to haml(https://github.com/nex3/haml) or slim(https://github.com/stonean/slim) templates. Switch to using jQuery (pre-3.1) Switch to using Sass (pre-3.1) Setup CI 1. You can also use the script to setup the environment on your laptop: https://github.com/thoughtbot/la… 2. You can utilize rails app composer -https://github.com/RailsApps/rai… to setup pretty much everything you need for your project including even heroku to host it. 3. You can use capistrano to automate deployment in case you are not using heroku. Add a humans.txt along side robots.txt create rvm gemset, create .rvmrc, modify .gitignore gem ‘pg’ gem ‘thin’ gem ‘ruby-debug19’, :require => ‘ruby-debug’ gem ‘rspec-rails’ gem ‘factory_girl_rails’ gem ‘capybara’ I always want to set up Factory Girl under /fixtures, and setup Cucumber along Rspec. Sometimes I use shoulda too. Initialize the project as a git repository and link it to github. Set up the app to use PostgreSQL instead of SQLite. And last I can think of is that I often make an entry, from the beginning, to load .rb files form /lib automatically. login, openid, forget password, role permissions, html5, requirejs, jquery, test aws3, paperclip, resque, will_paginate, haml Add CSS framework (grids, text, forms) Add Cells Add Slim (www.slim-lang.com) Remove Test::Unit for RSpec Add application config settings (config.yml) Add Cucumber Add FactoryGirl Add Spork Add Guard (guard-rspec, guard-cucumber, guard-sass, guard-livereload, guard-spork) Add Git, Github space, + amend .gitignore Add Heroku (stage + production) spaces google_analytics helpers sitemap_controller mix of html5 boilerplate for rails with twitter bootstrap