Ruby on Rails 6: Learn 25+ gems and build a Startup MVP 2020

Ruby on Rails 6: Learn 25+ gems and build a Startup MVP 2020
Ruby on Rails 6: Learn 25+ gems and build a Startup MVP 2020

English | MP4 | AVC 1280×720 | AAC 44KHz 2ch | 18.5 Hours | 8.71 GB
eLearning | Skill level: All Levels


Code-Along & Learn Ruby on Rails, Master 25+ gems, Build an online learning platform like Skillshare or unofficial Udemy

In this course you will learn to build your own e-learning platform (like an Udemy, Skillshare clone) while learning 25+ gems and multiple Rails features!

In this course you will:

  • gain the broad knowledge and skill needed to create basically any web application you can think of.
  • get acquainted with all the modern technologies needed to find a Ruby on Rails Developer job.
  • create your own online learning platform that you will be able to monetize as you wish.
  • be granted access to the source code of the application that we will be building.

I’m proud to say that this is the most feature-rich Ruby-on-Rails-6 course on the internet

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.

We are going to build an online learning platform, step-by-step, feature-by-feature!

As a beginner you will learn the whole process of developing an application with multiple features.

As a more experienced developer, you will master features that you didn’t have a big experience with.

As well, you will have access to the source code of the demo application.

This way, you will be able to launch your own e-learning platform at any time!

Here are a few topics that we will cover in the course:

Learn 25+ most popular Ruby on Rails gems:

  • gem bootstrap and gem jquery-rails
  • gem font-awesome-saas – library of pretty icons
  • gem simple_form – better way to create forms
  • gem faker – create fake data
  • gem friendly_id – create pretty URLs
  • gem ransack – search and filter data
  • gem public_activity – track all actions in the application
  • gem pagy – the best gem for pagination
  • gem devise – authentication (users can log in)
  • gem rolify – assign users different roles
  • gem pundit – authorization (users can perform different actions)
  • gem chartkick – beautiful charts
  • gem groupdate – group data by periods
  • gem exception_notifications – error messages in production
  • gem rails-erd – generate an Entity Relationship Diagram
  • gem ranked-model – order items in a list
  • gem aws-sdk-s3 – store files on AWS S3
  • gem active_storage_validations – validate attachments
  • gem image_processing – display and manage images
  • gem recaptcha – no bots will sign up
  • gem wicked_pdf – design PDF Certificates of Completion for students
  • gem wicked – wizard for step-by-step forms
  • gem omniauth-google-oauth2 – sign in with google
  • gem omniauth-facebook – sign in with facebook
  • gem omniauth-github – sign in with github
  • gem cocoon – nested forms

& more

Learn Ruby on Rails features:

  • work with yarn and webpacker
  • action_text
  • active_storage
  • action_mailer
  • secret credentials
  • counter_cache
  • scopes
  • application_helper, “case” and “when” methods
  • adding custom buttons
  • conditional validation
  • callbacks
  • pluralization
  • increment method
  • dependent restrict_with_error
  • advanced nested resources
  • buttons for custom actions

& more

Learn supporting technologies:

  • AWS C9 – cloud IDE
  • AWS S3 – store files in production
  • PostgreSQL database
  • Github
  • Heroku
  • SendGrid
  • Google Analytics
  • Google reCaptcha
  • Google oAuth API
  • Google & Bing Webmaster
  • Facebook oAuth API
  • Github oAuth API
  • Stripe

Learn javascript packages:

  • Yarn & Webpacker in Rails 6
  • Jquery-ui sortable
  • Bootstrap
  • VideoJS
  • Chartkick
  • Selectize

If you value your time and DON’T want to spend hours learning how a gem works, consider getting this course.

By the end of the course you will feel capable of building any Web application Ruby on Rails web application.

You may learn the skills needed to find a job, or build the application of your dreams.

As well, you will build you own, complete application for creating and selling courses that you will be able to monetize.

What you’ll learn

  • How to build an online learning platform on Ruby on Rails 6
  • How to use Ruby on Rails 6 features
  • How to build a Web Application
  • Ruby on Rails 6
  • gem bootstrap – for styling
  • gem font-awesome-sass – for nice icons
  • gem simple_form
  • gem faker – populate the database with fake data
  • gem devise – authentication (log in / sign up)
  • gem friendly_id – set up custom URLs
  • gem ransack – search and filter
  • gem public_activity – track all user actions
  • gem rolify – give user roles
  • gem pundit – authorize user to perform an action
  • gem exception_notification – get error emails from production
  • gem haml-rails
  • gem pagy – the modern pagination library
  • gem chartkick – charts
  • gem groupdate – group by day, month, year
  • gem ranked-model – give records in a list a number
  • gem aws-sdk-s3 – store files on Amazon storage
  • gem active_storage_validations – validate files
  • gem image_processing – display saved images
  • gem recaptcha – on bot sign ups
  • gem omniauth-google-oauth2 – log in with google
  • gem wicked – multistep forms
  • gem wicked_pdf – create PDF inside your app
  • Rails 6 active_storage – store files online
  • gem rails-erd – generate UML diagrams
  • Rails 6 action_text – rich text editing
  • Rails 6 credentials – keep your passwords secret
  • selectize js – start typing to select or create an item
  • jquery-ui sortable – sort records in a list
  • AWS Cloud9 – the best online IDE
  • AWS S3 – store files on Amazon
  • AWS IAM – access data stored on Amazon
  • google analytics – track app visitors
  • google recaptcha – no bot sign ups
  • Rails 6 scopes
  • Rails 6 counter_cache
  • Rails 6 callbacks
  • Rails 6 dependent: restrict_with_error
  • Rails 6 helpers
  • yarn
  • webpacker
  • Udemy Clone
  • e-learning platform
  • Rails 6 action_mailer – send emails from your application
+ Table of Contents

Introduction and Setup
1 Preview of the application
2 Hello World. Generating a static page
3 TEXT Hello World. Generating a static page
4 Push application to production on Heroku
5 TEXT Push application to production on Heroku
6 Bonus free up space on AWS Cloud9
7 TEXT Bonus free up space on AWS Cloud9
8 IMPORTANT How to make the most out of the course and access the files
9 Future development plans
10 Create AWS Cloud9 environment, install Ruby on Rails 6
11 TEXT Create AWS Cloud9 environment, install Ruby on Rails 6
12 Create app, configure PostgreSQL
13 TEXT Create app, configure PostgreSQL
14 First commit to Github
15 TEXT First commit to Github

Building the MVP (minimum viable product)
16 gem haml-rails – more RoR-friendly way of editing HTML
17 TEXT add a Courses table
18 action text – rich text editor
19 TEXT action text – rich text editor
20 gem faker and seeds.rb – add fake data to the app
21 TEXT gem faker and seeds.rb – add fake data to the app
22 gem devise for authorization (log in, log out)
23 TEXT gem devise for authorization (log in, log out)
24 course belong to user – relationships
25 design for notification messages
26 adding a functional navbar
27 TEXT gem haml-rails – more RoR-friendly way of editing HTML
28 search field in navbar
29 styling courses and home index
30 gem friendly id – show user friendly links
31 devise trackable (track user IP address, create users index page
32 devise confirmable in development pt1
33 devise confirmable in development pt2
34 sendgrid – send emails in production
35 add more fields to courses
36 gem ransack – filter and search data in a table
37 gem ransack level 2 – search & filter Courses
38 gem bootstrap for styling the app
39 gem ransack level 3 – search in navbar
40 gem public activity – track all actions in the app
41 add a footer
42 TEXT gem bootstrap for styling the app
43 gem font-awesome-sass – add cool icons for styling
44 TEXT gem font-awesome-sass – add cool icons for styling
45 gem simple form – better way to work with forms
46 TEXT gem simple form – better way to work with forms
47 add a Courses table

Roles and Authorization
48 promo – roles & authorization
49 gem rolify – add roles to users
50 gem rolify – edit user roles
51 gem rolify – using role based access
52 gem pundit – installation and example usecase
53 gem pundit – authorization for courses
54 gem pundit – only admin can edit other users
55 gem pundit – user can see links only to allowed actions

Building the core functionality of the e-learning platform
56 gem friendly id for users, user show
57 production – tour around heroku
58 gem exception notification – catch errors in production
59 design for courses and lessons
60 gem pagy for pagination
61 add dynamic title to page tabs
62 scaffold Enrollments. Basic validation and design
63 Button for user to Enroll to a Course
64 gem pundit for Enrollments
65 gem pundit – user can access his purchased Courses
66 work on Enrollment views
67 check if user is online
68 Button for user to Review a Course
69 gem pagy for Enrollments and Users
70 gem friendly id for enrollments
71 gem ransack for enrollments index
72 Navigation for student, teacher, admin
73 Collections and Scopes + Ransack + Pagy for Courses and Enrollments
74 Counters in header
75 Calculate rating for courses
76 counter cache basics (enrollments count for Course)
77 add counter cache across app
78 add a Lessons table, friendly id, styling
79 More course styling and validation
80 Courses index ransack sort by price, populararity, rating, newest
81 Dynamic & Personalized Homepage (Popular, New, Top Rated Courses)
82 Move logic from controller to model using scopes
83 UserCourse table – track if a user has seen a lesson. Migration and setup
84 Track User progress in a Course
85 Styling courses and lessons
86 Pluralization for course show
87 Validation for Destroy with dependent records (restrict with error, nullify,
88 Lesson show – navigation between lessons in a course
89 public activity for Lessons, create lessons inside courses
90 gem chartkick and groupdate – add charts
91 load charts without timeouts
92 namespace charts in routes, group by sum
93 count impressions with increment method
94 custom buttons to publish or approve a course
95 complex validation who can see a course show
96 fix nested polymorphic link issue in activity, activity styling
97 application helper for conditional styling
98 gem rails-erd to generate relationship-diagrams automatically
99 better views for not logged in users
100 action text for Lessons, add breadcrumbs for lesson show
101 link to courses with ransack search params
102 course-specific charts and analytics, more advanced grouping
103 update course policy and view
104 gem pundit – authorization for Lessons
105 nested resources. lessons in courses
106 gem pundit – authorization for Lessons create action
107 minor styling for edit and new views

Sorting records with drag and drop
108 promo – sort records
109 gem ranked model – give lessons inside a course a number
110 link to previous and next lesson in lesson show
111 jquery-ui sortable – make lessons sortable and persist changes

Active Storage and Action Text
112 promo – active storage & action text
113 credentials and secret keys PART 2 – PRODUCTION
114 action text attachment restrictions, download and display
115 TEXT action text attachment restrictions, download and display
116 action text restrict attachments, more validations for course and lesson
117 TEXT action text restrict attachments, more validations for course and lesson
118 video attachment and preview with active storage and HTML5
119 TEXT video attachment and preview with active storage and HTML5
120 styling lessons, video validation
121 styling lessons, video validation
122 deleting attachments (video and video thumbnail)
123 credentials and secret keys PART 1
124 TEXT deleting attachments (video and video thumbnail)
125 action text – allow file upload, add video preview to blob
126 TEXT action text – allow file upload, add video preview to blob
127 action text – play audio with HTML5
128 TEXT action text – play audio with HTML5
129 video.js player integration
130 TEXT video.js player integration
131 simple form for rich text area (actiontext)
132 TEXT simple form for rich text area (actiontext)
133 action text youtube embeds
134 TEXT credentials and secret keys PART 1
135 TEXT action text youtube embeds
136 gem aws-sdk-s3, configure aws s3 bucket storage, add avatar to courses
137 TEXT gem aws-sdk-s3, configure aws s3 bucket storage, add avatar to course
138 gem active storage validations. validates course avatar. display avatar in co
139 TEXT gem active storage validations. validates course avatar. display avatar in
140 gem image processing to fix action text displaying images, S3 bucket CORS set
141 TEXT gem image processing to fix action text displaying images, S3 bucket CORS

Integrating nested comments
142 promo – nested comments
143 nested resources – comments inside lessons
144 counter cache for comments, method to delete comment
145 public activity for comments
146 pundit authorization for destroying a comment
147 add counter cache for user lessons to lessons and users

Preparing the app for production
148 promo – preparing for production
149 privacy policy and SEO tags
150 adding a licence to our github repository
151 beautify devise views
152 Add a sitemap for Google and Bing search
153 gem recaptcha with devise – no bot signups
154 add recaptcha keys to credentials
155 add google analytics
156 styling app, adding logo and thumbnail
157 downgrade jquery to 3.4.1 to make bootstrap navbar dropdown work on small screen
158 yarn remove video.js – remove library from our app
159 connecting a domain to our application in production
160 disable video download (disable rightclick on video)

API Log in with google, github, facebook (omniauth)
161 promo – social login
162 gem omniauth-google-oauth2 – log in with google
163 import omniauth user personal data
164 gem omniauth-github – log in with github
165 different credentials for different environments. Github
166 gem omniauth-facebook – log in with facebook

PRO FEATURE Select or Create Tags with selectize js
167 promo – select or create with selectize-js
168 selectize.js – course has many tags through course tags
169 two ways to search courses by tags with ransack
170 link to current page with params (for searching tags)
171 selectize.js – select or create tag
172 admin can manage and delete tags
173 list similar courses in course show based on tags

PRO FEATURE PDF Certificate of Completion with wicked pdf
174 promo – PDF generation
175 gem wicked pdf – ability to generate PDF from HTML
176 enrollment completion certificate and styling
177 pdf.html – remove unused code, enrollments index – link to certificate
178 different pdf gem for development and production
179 styling pdf certificate of completion
180 certificate of completion only for completed courses
181 helper logic to view certificate of completion

PRO FEATURE Multistep forms with gem WICKED
182 promo – multistep forms
183 gem wicked for multistep forms
184 gem wicked – nest course wizard inside courses
185 gem wicked – edit and update functionality
186 gem wicked – styling and authorization
187 layout for wizard steps, remove course edit action
188 styling wizard progress navigation, remove fields course form

PRO FEATURE ActionMailer – send outbound emails
189 email confirmation when a user enrolled to a course
190 email to teacher when a user enrolls to his course
191 user mailer – send all admins emails when a new user registers

PRO FEATURE gem cocoon – one form to edit and create multiple lessons
192 install gem cocoon. edit lessons in course form

Payments, working with money, business logic
193 payments – business logic for user income and expenses calculation
194 TEXT payments – business logic for user income and expenses calculation
195 payments with stripe part 1
196 TEXT payments with stripe part 1
197 payments with stripe part 2
198 TEXT payments with stripe part 2

Fixes and Adjustments
199 Upgrading to Rails EDGE and troubleshooting active storage issues
200 downgrading Rails and fixing selectize issues
201 downgrading Rails and fixing active storage issues
202 Update to rails 6.0.3
203 gem public activity for user

Thank you and next steps
204 Roadmap. Next steps.
205 Thank you