In previous assignments, you created and deployed a simple Hangperson game using the Ruby-based Sinatra framework, and in the subsequent assignment, you explored the differences between the Rails and Sinatra versions of that same app.
In this assignment you will create your first Rails app from scratch: a simple app called RottenPotatoes (inspired by the real web site RottenTomatoes) for cataloging movies. RottenPotatoes lets users interactively (via a Web browser) create database entries for new movies, view or modify the content of movie records (movie title, rating, description, and so on), and delete movie records. We provide some starter code you can copy and paste into specific files, but you will do most of the work. When the app is running, you'll deploy it on the public cloud.
In later assignments, you'll add features to the app, such as the ability to filter the list of movies, the ability to associate reviews with movies, and per-user login so each user can maintain their own ratings of movies.
After this assignment, you should know how to:
-
Create a new Rails app from scratch, including making necessary adjustments to the
Gemfile
(specifying which libraries the app relies on) and immediately placing the app under version control so you can keep track of changes -
Set up a database to store the Rails models, by writing and executing an initial migration describing the database's schema
-
Create a basic set of controller actions and views to support the CRUD actions (create, read, update, delete) on a resource in a Rails app, and specify HTTP routes that map to the controller actions
-
Run and interact with the app in your development environment, including using the debugger to interactively track down bugs and inspect application state, such as the parameters supplied to a controller action
-
Deploy the app to the public cloud, in this case using Heroku's Platform-as-a-Service (PaaS) facility