Welcome. This is a tutorial to help you learn the fundamentals of Ruby on Rails. You are about to start on a journey to create a Rails-based webapp similar to Slack, Discord, and other chat applications. There are various sections and it is recommended that you work in groups of 2.
- Ruby, Bundler, and Ruby version managers
- Models
- Views
- Controllers
- Routes
- Testing with Minitest
- Background Jobs and Sidekiq
- Mailers
- ActionCable
- User Authentication with Devise
- ActiveStorage
- ActiveText
- And more!
- View Components
- Rails Concerns
- JSON API and Serializers
- Markdown Rendering with Commonmarker and Rendering with HTML Pipeline
It is recommended to follow these sections in order. You may skip sections if you wish, but each section will include Action Items that you will need to complete. These will be denoted at the end of each section in an "Action Items" header.
- Introduction: Ruby, Bundler, RubyGems, and rbenv
- Starting with Rails
- Navigating your Rails App
- Project Introduction
- Data Model (Part 1)
- User Authentication
- Data Model (Part 2)
- Add Primer
- Application Layouts (Part 1)
- Application Layouts (Part 2) and a Joins Table
- Forms and Validations
- Improve Existing Views
- Implement leaving a Channel: Soft Deletion (Part 1)
- Implement leaving a Channel: Controllers and Routing (Part 2)
- Nested Routes
- ActiveText and Messages (Part 1)
- Messages: Views (Part 2)
- Adding Tests (Part 1)
- Adding Tests (Part 2)
- Adding Tests (Part 3)
- Adding Tests (Part 4)
- TODO: Better Views
- TODO: Counter Caches and SQL Optimizations
- TODO: Profile Page
- TODO: ActionCable - Live Updating
- TODO: Notifications via ActionCable
- TODO: Notifications via Email
- TODO: View Components
- TODO: Background Jobs