Learn to Build Modern Web Apps with AngularJS and Ruby on Rails


The goal of this tutorial is to guide you through the creation of a Reddit/Hacker News clone using Rails 4 and AngularJS. By completing this tutorial, you will gain a basic understanding of Rails and AngularJS, using Rails to build a JSON REST API that interacts with an AngularJS frontend.


This course assumes knowledge of programming and at least basic knowledge of JavaScript and Ruby, and you should be comfortable with basic web application concepts including REST and CRUD. Before you begin, you will also need to have Node.js and Rails already installed. We'll need Node.js and npm in order to use Bower to manage our front-end dependencies. Follow these installation instructions in order to install Node.js. Installation instructions for Rails can be found here. Rails ships with sqlite3 by default so follow these instructions to install sqlite if you don't already have it on your system.

Install Node.js
Install Rails
Install sqlite

Recommendations for Completing this Tutorial

Throughout the course of this tutorial, links to additional concepts and information will be included. You can use these links as supplementary material which can help you gain insight into the stack and its various components. As always, if you have any questions Google and Stackoverflow are your best bet. If you're unsure about something specific to this tutorial, feel free to drop us a line at hello@thinkster.io

We at Thinkster are firm believers in actually writing code. Therefore we strongly encourage you to type out all the code instead of copy+pasting it.

Project Specifications

Before beginning work on any project, it's usually a good idea to know what you're building. Below is a basic list of things we want our users to be able to do:

  • Create new posts
  • View all posts ordered by upvotes
  • Add comments about a given post
  • View comments for a given post
  • Upvote posts and comments
  • Create a user authentication system using Devise

I finished! On to the next chapter