Ruby on Rails 6 Learn 25 gems and build a Startup MVP 2022

Code-Along & build an advanced e-learning platform. Biggest, Most complete Ruby on Rails 6 course. Always updated.
Ruby on Rails 6 Learn 25 gems and build a Startup MVP 2022
File Size :
14.49 GB
Total length :
20h 45m



Yaroslav Shmarov


Last update

Last updated 2/2022



Ruby on Rails 6 Learn 25 gems and build a Startup MVP 2022

What you’ll learn

How to build an online learning platform with Ruby on Rails
How to build a Udemy Clone
Ruby on Rails
Yarn and Webpacker
gem simple_form
gem faker
gem devise
gem friendly_id
gem ransack
gem public_activity
gem rolify
gem pundit
gem exception_notification
gem haml-rails
gem pagy
gem chartkick
gem groupdate
gem ranked-model
gem aws-sdk-s3
gem active_storage_validations
gem image_processing
gem recaptcha
gem omniauth-google-oauth2
gem wicked
gem wicked_pdf
Rails 6 active_storage
gem rails-erd
AWS Cloud9
google analytics
google recaptcha
gem stripe
Rails 6 scopes
Rails 6 counter_cache
Rails 6 callbacks
Rails 6 ActionText
Rails 6 dependent: restrict_with_error
Rails 6 helpers
Rails 6 ActionMailer
Rails 6 Credentials
selectize js
jquery-ui sortable

Ruby on Rails 6 Learn 25 gems and build a Startup MVP 2022


Modern browser and internet connection
A basic understanding of programming would be helpful, Basic knowledge of Ruby and Rails will be a plus
No paid software required


I’m proud to say that this is the most feature-rich Ruby-on-Rails-6 course on the internet.The course contains 200 lectures and 20 hours of video content.It is a result of my 6 years of Software Engineering experience and 6 months of course writing.Through the years of being a software developer I’ve learnt a lot by trial, error, and research.You don’t have to spend all the time I did!In this course I’ve summed up the best practices of using different gems and features.You will be able to learn it all by practice!As well we will learn to troubleshoot different issues in development and production.In this course you will:Learn to build your own advanced online learning platform step-by-step, feature-by-feature (like a Udemy or Skillshare)get access to the source code of the final applicationgain the broad knowledge and skill needed to create basically any web application you can think ofget acquainted with all the modern technologies needed to find a Full Stack Ruby on Rails Developer job.As a beginner, you will learn the whole process of developing an application with multiple features.As an experienced developer, you will master features that you didn’t have a lot of experience with.Here are a few topics that we will cover in the course:Learn 25+ most popular Ruby on Rails gems:simple_form – industry-standard way to create formsfaker – create fake datafriendly_id – create pretty URLsransack – search and filter datapublic_activity – track all actions in the applicationpagy – the best gem for paginationdevise – authentication (users can log in)rolify – assign users different rolespundit – authorization (users can perform different actions)haml-rails – industry-standard markup languagechartkick – beautiful chartsgroupdate – group data by periodsexception_notifications – error messages in productionrails-erd – generate an Entity Relationship Diagramranked-model – order items in a listaws-sdk-s3 – store files on AWS S3active_storage_validations – validate attachmentsimage_processing – display and manage imagesrecaptcha – no bots will sign upwicked_pdf – style and generate PDF documentswicked – wizard for step-by-step formsomniauth-google-oauth2 – sign in with googleomniauth-facebook – sign in with facebookomniauth-github – sign in with githubcocoon – nested formsstripe – accept paymentsLearn to use Yarn & Webpacker – the core new feature of Rails 6: bootstrapfontawesomecocooninstall videoJSchartkickjquery-uitrixLearn Ruby on Rails features:action_textactive_storageaction_mailersecret credentialscounter_cachescopesapplication_helper methodsadding custom buttonsconditional validationcallbackspluralizationincrement methoddependent restrict_with_erroradvanced nested resourcesuse helper methodsbuttons for custom actionsLearn supporting technologies:AWS Cloud9 cloud IDEAWS S3 file storagePostgreSQL databaseGit and GithubHerokuSendgridGoogle AnalyticsGoogle reCaptchaGoogle oAuth APIGoogle & Bing WebmasterFacebook oAuth APIGithub oAuth APIStripeAs you see, this is a fast-paced Code-Along course covering A LOT of topicsP.S.If you value your time and DON’T want to spend hours learning how a gem works, consider enrolling to this course.The course DOES NOT cover the very basics of what Ruby and Rails are. So, some previous knowledge would be helpful. I’m a professional Ruby on Rails Engineer and I built this course out of passion for sharing knowledge. I’m not a native speaker and not a vice actor, so don’t expect studio-level audio quality ;)Looking forward to seeing you inside!


Section 1: Introduction and Setup

Lecture 1 Preview of the final application

Lecture 2 START HERE


Section 2: (2021 update) Install Ruby on Rails 6, configure application

Lecture 4 create development environment, install ruby on rails 6, create app

Lecture 5 push application to github

Lecture 6 TEXT: push application to github

Lecture 7 PRO TIP – ssh connection – push to github without re-entering password

Lecture 8 hello world – generate a static page

Lecture 9 connect heroku – run application in production

Lecture 10 PRO TIP – delete changes, undo commits

Lecture 11 TEXT: PRO TIP – delete changes, undo commits

Lecture 12 AWS – no space left on device – add 20 gb storage

Lecture 13 Install bootstrap with yarn and webpacker

Lecture 14 Bootstrap basic usage

Lecture 15 Install and use Fontawesome icons with yarn and webpacker

Lecture 16 Responsive screen width

Section 3: Building the MVP (minimum viable product)

Lecture 17 gem haml-rails – more RoR-friendly way of editing HTML

Lecture 18 gem simple_form – better way to work with forms

Lecture 19 TEXT: gem simple_form – better way to work with forms

Lecture 20 add a Courses table

Lecture 21 TEXT: add a Courses table

Lecture 22 action_text – rich text editor

Lecture 23 TEXT: action_text – rich text editor

Lecture 24 gem faker and seeds.rb – add fake data to the app

Lecture 25 TEXT: gem faker and seeds.rb – add fake data to the app

Lecture 26 gem devise for authentication (log in, log out)

Lecture 27 course belong_to user – relationships

Lecture 28 design for notification messages

Lecture 29 adding a functional navbar

Lecture 30 search field in navbar

Lecture 31 styling courses and home index

Lecture 32 gem friendly_id – show user friendly links

Lecture 33 gem friendly_id – show user friendly links

Lecture 34 devise trackable (track user IP address, create users index page

Lecture 35 devise trackable (track user IP address, create users index page)

Lecture 36 devise confirmable in development pt1

Lecture 37 devise confirmable in development pt2

Lecture 38 sendgrid – send emails in production

Lecture 39 sendgrid – send emails in production

Lecture 40 Amazon SES – better way to send emails in production

Lecture 41 add more fields to courses

Lecture 42 gem ransack – level 1 – filter and search data in a table

Lecture 43 gem ransack – level 2 – search and filter courses

Lecture 44 gem ransack level 3 – search in navbar

Lecture 45 gem ransack – level 3 – ransack search in navbar

Lecture 46 gem public_activity – track all actions in the app

Lecture 47 add a footer

Section 4: Roles and Authorization

Lecture 48 promo – roles & authorization

Lecture 49 gem rolify – add roles to users

Lecture 50 gem rolify – edit user roles

Lecture 51 gem rolify – using role based access

Lecture 52 gem pundit – installation and example usecase

Lecture 53 gem pundit – authorization for courses

Lecture 54 gem pundit – only admin can edit other users

Lecture 55 gem pundit – user can see links only to allowed actions

Section 5: Building the core functionality of the e-learning platform

Lecture 56 gem friendly_id for users, user show

Lecture 57 check if user is online

Lecture 58 add a Lessons table, friendly_id, styling

Lecture 59 public_activity for Lessons, create lessons inside courses

Lecture 60 action_text for Lessons, add breadcrumbs for lesson show

Lecture 61 gem pundit – authorization for Lessons

Lecture 62 nested resources. lessons in courses

Lecture 63 gem pundit – authorization for Lessons create action

Lecture 64 minor styling for edit and new views

Lecture 65 production – tour around heroku

Lecture 66 gem exception_notification – catch errors in production

Lecture 67 design for courses and lessons

Lecture 68 gem pagy for pagination

Lecture 69 add dynamic title to page tabs

Lecture 70 scaffold Enrollments. Basic validation and design

Lecture 71 Button for user to Enroll to a Course

Lecture 72 gem pundit for Enrollments

Lecture 73 gem pundit – user can access his purchased Courses

Lecture 74 work on Enrollment views

Lecture 75 Button for user to Review a Course

Lecture 76 gem pagy for Enrollments and Users

Lecture 77 gem friendly_id for enrollments

Lecture 78 gem ransack for enrollments index

Lecture 79 Navigation for student, teacher, admin

Lecture 80 Collections and Scopes + Ransack + Pagy for Courses and Enrollments

Lecture 81 Counters in header

Lecture 82 Calculate rating for courses

Lecture 83 counter_cache basics (enrollments_count for Course)

Lecture 84 add counter_cache across app

Lecture 85 More course styling and validation

Lecture 86 Courses index ransack sort by price, populararity, rating, newest

Lecture 87 Dynamic & Personalized Homepage (Popular, New, Top Rated Courses)

Lecture 88 Move logic from controller to model using scopes

Lecture 89 UserCourse table – track if a user has seen a lesson. Migration and setup

Lecture 90 Track User progress in a Course

Lecture 91 Styling courses and lessons

Lecture 92 Pluralization for course show

Lecture 93 Validation for Destroy with dependent records (restrict_with_error, nullify,

Lecture 94 Lesson show – navigation between lessons in a course

Lecture 95 gem chartkick and groupdate – add charts

Lecture 96 load charts without timeouts

Lecture 97 namespace charts in routes, group by sum

Lecture 98 count impressions with increment method

Lecture 99 custom buttons to publish or approve a course

Lecture 100 complex validation who can see a course show

Lecture 101 gem public_activity – polymorphic links with nested resources

Lecture 102 application_helper for conditional styling

Lecture 103 gem rails-erd to generate relationship-diagrams automatically

Lecture 104 better views for not logged in users

Lecture 105 link_to courses with ransack search params

Lecture 106 course-specific charts and analytics, more advanced grouping

Lecture 107 update course_policy and view

Section 6: Sorting records with drag and drop

Lecture 108 promo – sort records

Lecture 109 gem ranked_model – give lessons inside a course a number

Lecture 110 link to previous and next lesson in lesson show

Lecture 111 jquery-ui sortable – make lessons sortable and persist changes

Section 7: Active Storage and Action Text

Lecture 112 promo – active_storage & action_text

Lecture 113 credentials and secret keys PART 1

Lecture 114 gem aws-sdk-s3, configure aws s3 bucket storage, add avatar to courses

Lecture 115 gem active_storage_validations. validates course avatar. display avatar in co

Lecture 116 gem image_processing to fix action_text displaying images, S3 bucket CORS set

Lecture 117 credentials and secret keys PART 2 – PRODUCTION

Lecture 118 action_text attachment restrictions, download and display

Lecture 119 action_text restrict attachments, more validations for course and lesson

Lecture 120 video attachment and preview with active_storage and HTML5

Lecture 121 styling lessons, video validation

Lecture 122 deleting attachments (video and video_thumbnail)

Lecture 123 action_text – allow file upload, add video preview to blob

Lecture 124 action_text – play audio with HTML5

Lecture 125 video.js player integration

Lecture 126 simple_form for rich_text_area (actiontext)

Lecture 127 action_text youtube embeds

Section 8: Integrating Comments with Nested Routes

Lecture 128 promo – nested comments

Lecture 129 nested resources – comments inside lessons

Lecture 130 counter_cache for comments, method to delete comment

Lecture 131 public_activity for comments

Lecture 132 pundit authorization for destroying a comment

Lecture 133 add counter_cache for user_lessons to lessons and users

Section 9: Preparing the app for production

Lecture 134 promo – preparing for production

Lecture 135 gem recaptcha with devise – no bot signups

Lecture 136 add recaptcha keys to credentials

Lecture 137 add google analytics

Lecture 138 styling app, adding logo and thumbnail

Lecture 139 downgrade jquery to 3.4.1 to make bootstrap navbar dropdown work on small screen

Lecture 140 yarn remove video.js – remove library from our app

Lecture 141 connecting a domain to our application in production

Lecture 142 disable video download (disable rightclick on video)

Lecture 143 privacy_policy and SEO tags

Lecture 144 adding a licence to our github repository

Lecture 145 beautify devise views

Lecture 146 Add a sitemap for Google and Bing search

Section 10: API: Log in with google, github, facebook (omniauth)

Lecture 147 promo – social login

Lecture 148 gem omniauth-google-oauth2 – log in with google

Lecture 149 June 2021 Update – Fix Omniauth 2.0 Errors

Lecture 150 Fix omniauth “Not found. Authentication passthru” error (Omniauth 2.0)

Lecture 151 import omniauth user personal data

Lecture 152 gem omniauth-github – log in with github

Lecture 153 different credentials for different environments. Github

Lecture 154 gem omniauth-facebook – log in with facebook

Lecture 155 refactor omniauth (clean up code)

Section 11: PRO FEATURE: Select or Create Tags with selectize js

Lecture 156 promo – select or create with selectize-js

Lecture 157 selectize.js – course has many tags through course_tags

Lecture 158 two ways to search courses by tags with ransack

Lecture 159 link to current page with params (for searching tags)

Lecture 160 selectize.js – select or create tag

Lecture 161 admin can manage and delete tags

Lecture 162 list similar courses in course show based on tags

Section 12: PRO FEATURE: PDF Certificate of Completion with wicked_pdf

Lecture 163 promo – PDF generation

Lecture 164 gem wicked_pdf – ability to generate PDF from HTML

Lecture 165 enrollment completion certificate and styling

Lecture 166 pdf.html – remove unused code, enrollments index – link to certificate

Lecture 167 different pdf gem for development and production

Lecture 168 styling pdf certificate of completion

Lecture 169 certificate of completion only for completed courses

Lecture 170 helper logic to view certificate of completion

Section 13: PRO FEATURE: Multistep forms with gem WICKED

Lecture 171 promo – multistep forms

Lecture 172 gem wicked for multistep forms

Lecture 173 gem wicked – nest course_wizard inside courses

Lecture 174 gem wicked – edit and update functionality

Lecture 175 gem wicked – styling and authorization

Lecture 176 layout for wizard steps, remove course edit action

Lecture 177 styling wizard progress navigation, remove fields course form

Section 14: PRO FEATURE: ActionMailer – send outbound emails

Lecture 178 email confirmation when a user enrolled to a course

Lecture 179 email to teacher when a user enrolls to his course

Lecture 180 user_mailer – send all admins emails when a new user registers

Lecture 181 gem letter opener – preview emails in development environment

Section 15: PRO FEATURE: gem cocoon – one form to edit and create multiple lessons

Lecture 182 install gem cocoon. edit lessons in course form

Section 16: Stripe Payments, working with money, business logic

Lecture 183 payments – business logic for user income and expenses calculation

Lecture 184 payments with stripe part 1

Lecture 185 payments with stripe part 2

Section 17: Fixes and Adjustments

Lecture 186 Upgrading to Rails EDGE and troubleshooting active_storage issues

Lecture 187 downgrading Rails and fixing selectize issues

Lecture 188 downgrading Rails and fixing active_storage issues

Lecture 189 Update to rails 6.0.3

Lecture 190 renaming a column (short- to marketing- description)

Lecture 191 gem public_activity for user

Lecture 192 footer always on bottom

Lecture 193 gem sitemap_generator, edit robots.txt

Lecture 194 sitemaps working on heroku with AWS S3 public repo

Lecture 195 TEXT: force SSL in production

Lecture 196 Run the Corsego source code in development

Lecture 197 Devise invitable – send invitation emails to users to join the app

Section 18: Thank you and next steps

Lecture 198 Roadmap. Next steps.

Lecture 199 Thank you

If you want to create your own e-learning platform for selling content online,If you want to learn how to build professional grade Ruby on Rails applications,If you want to start your own startup by building your own websites and web apps.,If you want to be a web app developer: This course will introduce you to many in-depth mechanics of Ruby on Rails,If you are already acquainted with Ruby on Rails and wants to deepen your knowledge

Course Information:

Udemy | English | 20h 45m | 14.49 GB
Created by: Yaroslav Shmarov

You Can See More Courses in the IT & Software >> Greetings from

New Courses

Scroll to Top