ROR Course Introduction
Did you ever want to build a web application? Perhaps you even started down that path in a language like Java or C#, when you realized that there was so much “climbing the mountain” that you had to do? Or maybe you wondered how deploying web applications to the cloud works, but there was too much to set up just to get going. In this course, we will explore how to build web applications with the Ruby on Rails web application framework, which is geared towards rapid prototyping. Yes, that means building quickly! At the conclusion of this course, you will be able to build a meaningful web application and deploy it to the “cloud” using a Heroku PaaS (Platform as a Service). Best of all, it will almost feel effortless… Really!
“But wait”, you will say, “there is no way that we can build a useful application if there is no database involved. You need the data for an application to be useful.” Great point! But what if… instead of getting the data from the database, we get it from the internet by tapping into one of the web services out there that readily provide data needed by our application? “Ok, but that’s probably very complicated”, you will say. Take this course and you will be pleasantly surprised at just how easy it is!
Where other frameworks use extensive code generation from scratch, Rail framework uses Metaprogramming techniques to write programs. Ruby is one of the best languages for Metaprogramming, and Rails uses this capability well. Rails also use code generation but rely much more on Metaprogramming for the heavy lifting.
Course code: ROR10x
Course name: Ruby on Rails Developer
Number of Credits: N/A
Duration: 18 weeks
Week 1 - Ruby Foundation: Lesson 1 - Ruby introduction; Lesson 2 - Prepare the environment; Lesson 3 - Ruby basic; Lesson 4 - Ruby advanced; Lesson 5 - Using command line.
Week 2 - Rails high-level concepts: Lesson 1 - Rails introduction; Lesson 2 - Setup the first Rails application; Lesson 3 - Rails application directory structure; Lesson 4 - App routing; Lesson 5 – Exercise.
Week 3 - Basic Rails Components: Lesson 1 - Model: Active Records; Lesson 2 – Controller; Lesson 3 – View; Lesson 4 - Form Helpers; Lesson 5 - Rails Routing; Lesson 6 - Git your project.
Week 4 - Rails Components in Depth: Lesson 1 - Active Record Callbacks; Lesson 2 - Debugging Rails Applications; Lesson 3 - Using Rails for API-only Applications; Lesson 4 - Action Mailer Basics; Lesson 5 - Writing document for code.
Week 5 - Rails application design principles: Lesson 1 - Advanced View: Structuring Layouts; Lesson 2 - Advanced Data Modeling; Lesson 3 - Common OOP design patterns; Lesson 4 – Authentication; Lesson 5 - Auto review your code.
Week 7 - ReactJS and Rails: Lesson 1 - ReactJS introduction and installation; Lesson 2 - Basic concepts of React; Lesson 3 - Thinking in React; Lesson 4 - How to render React components on Rails views.
Week 8 - Unit Testing: Lesson 1 - Test framework: RSpec; Lesson 2 - Use RSpec; Lesson 3 - Mocking method calls in RSpec; Lesson 4 - Seeding test data: FactoryGirl; Lesson 5 - UI testing with Cucumber.
Week 9 - Rake tasks, Rails runner: Lesson 1 - Basic concepts about Rake; Lesson 2 - Write Rake tasks in Ruby on Rails; Lesson 3 - Rails runner.
Week 10 - Caching, Background jobs: Lesson 1 - Rails caching basic; Lesson 2 - Use Rails with Redis; Lesson 3 - Research about other caching mechanisms: Memcached; Lesson 4 - Active Job; Lesson 5 - Write background jobs with Resque; Lesson 6 - Research about other delay jobs: Sidekiq, Delayed::Job.
Week 11 - Putting things together: Lesson 1 - Team work and GIT version control; Lesson 2 - Development, Staging and Production Environment; Lesson 3 - Deploy a Rails App with Passenger, Capistrano; Lesson 4 - Heroku Deploying.
Week 12 - Some lose ends: Lesson 1 - Rails and ElasticSearch; Lesson 2 - Rails and NoSQL; Lesson 3 - Rails and Message Queue server: RabbitMQ; Lesson 4 - Rails streaming: ActionCable.
Week 13 - 18: Capstone Project
Student is required to know HTML, CSS, Basic programming, one type of Database before staring this course.
Knowing Website programming, OOP programming, MySQL, being familiar to Cloud system will help you learn this courses more efficiently.
Do Hai Bac
- Technical Leader at Evizi company
- 14 years experiences in software development
- The first Vietnamese translation for Ruby on Rails https://svn.redmine.org/redmine/trunk/config/locales/vi.yml
- Facebook: https://www.facebook.com/dohaibac
Learning sources (MOOC)
Below is the list of all free massive open online learning sources (MOOC) used for this course by FUNiX: CodeMonkeyCharlie, ElonCsProf, LinkedIn Learning Solutions, Milli Parker, Norm Krumpe, ProgrammingKnowledge, slidenerd.
All open learning sources used in FUNiX training program are public, constantly updated and freely used. FUNiX is always willing to receive and discuss any comments, suggestions and responses related to our learning sources via email firstname.lastname@example.org