A Social Network in Rails: 5-minute setup with RVM and Railsbricks


This post is part of an ongoing feature about creating a social network in Rails.

Here we'll set up the Rails app for our photo social network, codenamed Piccy.
No fumbling around with different ruby version managers and complex Rails setups: RVM + Railsbricks, done in 5 minutes:

Install rvm following the instructions on its website:
$ gpg --keyserver hkp://keys.gnupg.net --recv-keys D39DC0E3
$ \curl -sSL https://get.rvm.io | bash -s stable
$ rvm install 2.2.0

Install the railsbricks gem and bootstrap the app. We're using most of the default settings, shaping it up to be deployed in Heroku (+ Postgres):
$ gem install railsbricks
$ rbricks -n
*                           *
*     RailsBricks 3.1.2     *
*    www.railsbricks.net    *
*                           *
*     using Rails 4.2.0     *
*                           *

- Do you want me to help you along the way by giving you tips?
1. Sure, help me make the right choices (default)

1. Your Rails App Name

- What do you want to name your app?
App name: piccy

2. Your Development Environment

- Which version of Ruby do you want to use?
3. 2.2.0 (default)

- How do you usually install new gems?
1. gem install name_of_gem (default)

- How do you usually run rake tasks?
1. rake some_task (default)

- Which database engine do you want to use for development?
2. PostgreSQL

- Your database server hostname?
Hostname: localhost

- What is the database port number?
Port: 5432

- What is the development database name?
Database name: piccy_development

- What is your database username?
Database username: your_username

- What is your database user password?
tip: leave blank for none
Database user password:

- Create a local Git repository?
1. Yes (default)

- Add a remote Git repository?
2. No (default)

3. About Your App

- Create an authentication scheme? (Devise)
1. Yes (default)

- How will users sign in?
1. With a username (default)

- Allow new users to sign up?
1. Yes, they can click on a 'sign up' button (default)

- Create test users?
1. No, only create my Admin account (default)

- Create Post resources?
2. No (default)

- Create a Contact form?
2. No (default)

- Use Google Analytics?
1. Yes (default)

- What is your Google Analytics tracking ID?

- Configure email settings?
2. No

4. Your App UI (Bootstrap 3)

- Which UI scheme do you want to use for the content area?
1. Light (default)

- Which UI scheme do you want to use for the navbar?
2. Dark (default)

- Which UI scheme do you want to use for the footer?
2. Dark (default)

- What primary color do you want to use?
Primary color: #673ab7

- Which font family and fallback options do you want to use as the main one for
the UI?
1. Open Sans, Helvetica, Arial, sans-serif (default)

5. Your Production Settings

- Do you want to set up some production settings already?
1. Yes (default)

- Where will you host your app?
1. Heroku (default)

- What will be the URL of your app?
URL: www.piccy.com

- Do you want to use Unicorn in production?
1. Yes (default)

6. Summary

- I am ready! Generate piccy now?
1. Do it! (default)


----> Piccy created successfully!

Run 'rails server' within piccy to start it.

We just got:
  • A full-fledged authentication with a User model, 
  • An Admin section for all our management needs
  • A nice starting UI that can be themed later
  • Lots of other features we'll tackle later on
And we haven't written a single line of code yet :)