Hi and welcome to the Professional Rails Code Along Course, where I will walk through how to build a real world Ruby on Rails project that I was hired by a client to develop. My name is Jordan Hudgens, and I'll be your instructor for the course. I've built many different Ruby on Rails applications throughout the past few years for companies such as Eventbrite and Quip and one of my passions is helping individuals learn how to code.
After completing this course you will be able to build a production Rails project from scratch. But there are a million courses that will help you do that. What makes this course different is that you'll learn how to build a Rails application like a professional developer. I took a completely different approach to creating this course. I don't edit any mistakes and I filmed the entire set of videos in real time so you can watch my exact process when I am tasked with building a real world application. I made this decision so that you can get a transparent view into what it takes to become a pro developer, and also so you can see how I work through challenges, all in real time.
One of the most critical requirements for a professional Rails developer is a strong knowledge of testing. With that in mind, every feature that we build in the course will be created with the test driven development process. Some of the key features you'll learn how to implement are:
This course is not for the faint of heart. The ideal student for this project is someone who has already taken a basic Rails course and wants to take their skill to the professional level.
Each lesson comes paired with the source code implemented at that stage so that you can follow along and compare your code with the codebase for the application. And beyond that you can also use the source code to extend it and build your own production applications.
Please feel free to review the course curriculum and I look forward to going through the material with you on your development journey!
By combining a large number of Rails components, this is the final application that we'll build out during this course. This will include:
In this video I walk through the planning stages for the application, this is a 'white board' type session where I plan out the models that I'll use, the data flow, and user stories. I also walk through how the database tables will relate to each other.
This video walks through how to create the initial application, including setting up the database and running the app generator.
In this guide we'll push our project to GitHub to implement source version control for the application.
In order to follow Ruby on Rails best practices, in this guide we'll install and configure the RSpec and Capybara testing framework libraries.
In this video we'll create an end-to-end integration test using Capybara to build a homepage.
Learn how to use Devise to give users the ability to log in and logout of the application, including all of the necessary security mechanisms such as encrypting the password.
Walk through how to integrate the advanced Rails tool of Single Table Inheritance (STI) to extend the functionality of the User class and follow best practices.
Learn how to integrate unit tests to implement validations for the User model to ensure data integrity for the user creation process.
This video will walk through how to use the Ruby on Rails resource generator for building out the Post component.
Learn how to use BDD with RSpec and Capybara to build an index feature for posts.
Walk through the process for building a seeds file to fill the application with sample data.
This guide walks through how to use BDD to build out the ability to create posts and implement basic CRUD functionality.
Walk through the BDD process of Red, Green, Refactor and refactor the ability to create posts to follow Rails best practices.
Learn how to create a connection between users and posts so that they can be created and called.
Learn how to implement the Twitter Bootstrap HTML/CSS framework to give a set of foundational styles to the application.
Build out the initial application layout, including working with the master template file and incorporating basic class components from Bootstrap.
Learn how to build view helper methods to follow Rails best practices and encapsulate custom user interface behavior that can be shared across resources.
Utilize Capybara to build an end to end test that builds out the list of posts.
Learn how to work with partials in order to follow Rails best practices and clean up the view code.
Walk through how to create a custom method that generates the user's full name.
Learn how to install FactoryGirls to generate test data for the RSpec automated tests.
Learn how to refactor the current tests to use factories instead of manually creating database records. This helps to remove duplicate code and speeds up the test suite.
Build in the ability to edit posts via behavior driven development with RSpec.
Implement a button on the template for creating new overtime posts.
Integrate the ability to delete posts, including adding the delete functionality to the user interface.
Implement Bootstrap styles for customizing the look and feel of forms, including working with the grid layout and form style options.
Build out the ability to implement growl styled notifications in a Rails application.
Build the additional code for integrating growl notifications to include form validations.
Learn how to customize the sign in form view template to include Bootstrap form elements.
Learn how to remove the registration functionality from Devise to ensure that only admins have the ability to create users accounts.
Learn how to install the Administrate gem to implement an Admin dashboard where administrators can create new user accounts.
Learn how to customize the Administrate gem so that only the form elements needed are available.
Learn how to select the database items that are available for searching via the Administrate dashboard.
Customize the permission structure so that only admin users are able to access the admin dashboard.
Jordan Hudgens is the CTO and Founder of DevCamp where he leads instruction and curriculum development for all of the DevCamp and Bottega code schools around the US.
As a developer for over the past decade, Jordan has traveled the world building applications and training individuals on a wide variety of topics, including: Ruby development, big data analysis, and software engineering.
Jordan focuses on project driven education, as opposed to theory based development. This style of teaching is conducive to learning how to build real world products that adhere to industry best practices.
Additionally Jordan has published multiple books on programming and computer science, along with developing training curriculum for Learn.co, devCamp, and AppDev on the topics of Ruby on Rails, Java, AngularJS, NoSQL, API development, and algorithms.