In this project we will focus on build a simple rails app that has three data models (Movie, Album, Book). We will be focusing on rails request cycle comprehension and introducing testing to our rails applications. To maximize the focus on comprehension, students will implement features based off of an existing website (http://media-ranker.herokuapp.com).
You will be required to submit a single pull request at the end of this week, rather than pull requests after each wave.
By the end of the project you should be able to:
- Implement tests in a rails application
- Use built-in model validators
- Describe the rails request cycle in detail in your own words
Before you start writing any code:
- Explore the existing Media Ranker site to become familiar with the necessary functionality
- If desired, create a Trello board to manage tasks
- If desired, create an ERD diagram for the models (pen & paper first)
Once you've explored the existing Media Ranker site, this project:
- requires an individual branch and fork
- will need to be isolated into a gemset called 'MediaRanker'
- create the necessary files for RVM to recognize a gemset
- Use better_errors for debugging purposes
- requires you to create a Rails application
- conform to Rails conventions on naming and inflection
- by using
rails new .
you will create a new rails app inside of the fork folder instead of creating a new folder for your rails app
You shall submit a pull request with a meaningful pull request description once you are done with the baseline which shall be merged before moving onto implementing the requirements. Your description should contain either a Trello board URL or a verbal plan for how you are going to approach tackling the functionality required for this application. Do not push any additional code until your baseline PR has been merged
Take your time to understand how the code is being executed during the request cycle. Use the skill check questions to drive your exploration. Work with your classmates to describe the flow of a specific request to any of the routes in your route file. You should be able to do this for all of the routes in your application.
You must mimic ALL of the pages and ALL of the links and buttons on each of the pages located at http://media-ranker.herokuapp.com.
Each data model needs to have standard RESTful (index, show, edit, update, new, create, destroy) routes.
Your rails application must have 90% code coverage across models and controllers. Use TDD practices to develop new functionality, and add tests for functionality that has already been added in Wave 1.
Style will come in Wave 3!