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 | 19.5 Hours | 9.11 GB

Code-Along & learn to create real software: Build an advanced, feature-rich e-learning platform from start to finish!

In this course you will learn to build your own e-learning platform (like a Udemy or 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.
  • get 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.

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 an experienced developer, you will master features that you didn’t have a lot of 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 – industry-standard 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 haml-rails – industry-standard markup language
  • 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 – style and generate PDF documents
  • 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
  • gem stripe – accept payments
  • & more

Learn Ruby on Rails features:

  • work with yarn and webpacker – the core new feature of Rails 6
  • action_text
  • active_storage
  • action_mailer
  • secret credentials
  • counter_cache
  • scopes
  • application_helper 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
  • & more

Learn javascript packages:

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

So, in this course you will learn to build a complete application for creating and selling courses that you will even be able to monetize.

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

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

What you’ll learn

  • How to build an online learning platform with Ruby on Rails 6
  • How to build a Udemy Clone
  • Ruby on Rails 6
  • yarn and webpacker
  • gem bootstrap
  • gem font-awesome-sass
  • 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
  • AWS S3
  • AWS IAM
  • 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
Table of Contents

Introduction and Setup
1 Preview of the final application
2 START HERE

Install Ruby on Rails 6 configure application
3 Create AWS Cloud9 environment install Ruby on Rails 6
4 TEXT Create AWS Cloud9 environment install Ruby on Rails 6
5 Create app configure PostgreSQL
6 TEXT Create app configure PostgreSQL
7 First commit to Github
8 TEXT First commit to Github
9 Hello World. Generating a static page
10 TEXT Hello World. Generating a static page
11 Push application to production on Heroku
12 TEXT Push application to production on Heroku

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

Roles and Authorization
61 promo – roles authorization
62 gem rolify – add roles to users
63 TEXT gem rolify – add roles to users
64 gem rolify – edit user roles
65 TEXT gem rolify – edit user roles
66 gem rolify – using role based access
67 TEXT gem rolify – using role-based access
68 gem pundit – installation and example usecase
69 TEXT gem pundit – role-based access (authorization) done right use case
70 gem pundit – authorization for courses
71 TEXT gem pundit – authorization for courses
72 gem pundit – only admin can edit other users
73 TEXT gem pundit – only admin can edit other users
74 gem pundit – user can see links only to allowed actions
75 TEXT gem pundit – user can see links only to allowed actions

Building the core functionality of the e-learning platform
76 gem friendly id for users user show
77 TEXT gem friendly id for users user show view
78 check if user is online
79 TEXT check if user is online
80 add a Lessons table friendly id styling
81 TEXT add a Lessons table gem friendly id design lessons
82 public activity for Lessons create lessons inside courses
83 TEXT gem public activity for Lessons create Lessons inside Courses
84 action text for Lessons add breadcrumbs for lesson show
85 gem pundit – authorization for Lessons
86 gem pundit – authorization for Lessons
87 nested resources. lessons in courses
88 TEXT nested resources – lessons inside courses
89 gem pundit – authorization for Lessons create action
90 TEXT gem pundit – authorization for Lessons create action
91 minor styling for edit and new views
92 TEXT minor styling for edit and new views
93 production – tour around heroku
94 gem exception notification – catch errors in production
95 TEXT gem exception notification – catch errors in production
96 design for courses and lessons
97 TEXT design for courses and lessons
98 gem pagy for pagination
99 TEXT gem pagy for pagination
100 add dynamic title to page tabs
101 TEXT add dynamic title to page tabs
102 scaffold Enrollments. Basic validation and design
103 scaffold Enrollments. Basic validation and design
104 Button for user to Enroll to a Course
105 TEXT Button for user to Enroll to a Course
106 gem pundit for Enrollments
107 TEXT gem pundit for Enrollments
108 gem pundit – user can access his purchased Courses
109 TEXT gem pundit – user can access his purchased Courses
110 work on Enrollment views
111 TEXT Work on enrollment views
112 Button for user to Review a Course
113 TEXT Button for user to Review a Course
114 gem pagy for Enrollments and Users
115 TEXT gem pagy for Enrollments and Users
116 gem friendly id for enrollments
117 TEXT gem friendly id for Enrollments
118 gem ransack for enrollments index
119 TEXT gem ransack for enrollments index
120 Navigation for student teacher admin
121 TEXT Navigation for student teacher admin
122 Collections and Scopes Ransack Pagy for Courses and Enrollments
123 TEXT Collections and Scopes Ransack Pagy for Courses and Enrollments
124 Counters in header
125 TEXT Counters in header
126 Calculate rating for courses
127 TEXT Calculate rating for courses
128 counter cache basics (enrollments count for Course)
129 TEXT counter cache – automatically count associated records
130 add counter cache across app
131 TEXT add counter cache across app
132 More course styling and validation
133 TEXT More Course styling and validation
134 Courses index ransack sort by price populararity rating newest
135 TEXT Courses index ransack sort by price populararity rating newest
136 Dynamic Personalized Homepage (Popular New Top Rated Courses)
137 TEXT Dynamic Personalized Homepage (Popular New Top Rated Courses)
138 Move logic from controller to model using scopes
139 TEXT Move logic from controller to model using scopes
140 UserCourse table – track if a user has seen a lesson. Migration and setup
141 TEXT UserCourse table – track if a user has seen a lesson. Migration and setup
142 Track User progress in a Course
143 TEXT Track User progress in a Course
144 Styling courses and lessons
145 TEXT Styling courses and lessons
146 Pluralization for course show
147 TEXT Pluralization for course show
148 Validation for Destroy with dependent records (restrict with error nullify
149 TEXT Validation for Destroy with dependent records (restrict with errornullify
150 Lesson show – navigation between lessons in a course
151 TEXT Lesson show – navigation between lessons in a course
152 gem chartkick and groupdate – add charts
153 TEXT gem chartkick and groupdate – add charts
154 load charts without timeouts
155 TEXT load charts without timeouts
156 namespace charts in routes group by sum
157 TEXT namespace charts in routes group by sum
158 count impressions with increment method
159 TEXT count impressions with increment method
160 custom buttons to publish or approve a course
161 TEXT custom buttons to publish or approve a course
162 complex validation who can see a course show
163 TEXT complex validation who can see a course show
164 gem public activity – polymorphic links with nested resources
165 TEXT gem public activity – polymorphic links with nested resources
166 application helper for conditional styling
167 TEXT application helper for conditional styling
168 gem rails-erd to generate relationship-diagrams automatically
169 TEXT gem rails-erd to generate relationship-diagrams automatically
170 better views for not logged in users
171 TEXT better views for not logged in users
172 link to courses with ransack search params
173 TEXT link to courses with ransack search params
174 course-specific charts and analytics more advanced grouping
175 TEXT course-specific charts and analytics more advanced grouping
176 update course policy and view
177 TEXT update course policy and view

Sorting records with drag and drop
178 promo – sort records
179 gem ranked model – give lessons inside a course a number
180 TEXT gem ranked model – give lessons inside a course a number
181 link to previous and next lesson in lesson show
182 TEXT link to previous and next lesson in lesson show
183 jquery-ui sortable – make lessons sortable and persist changes
184 TEXT jquery-ui sortable – make lessons sortable and persist changes

Active Storage and Action Text
185 promo – active storage action text
186 credentials and secret keys PART 1
187 TEXT credentials and secret keys PART 1
188 gem aws-sdk-s3 configure aws s3 bucket storage add avatar to courses
189 TEXT gem aws-sdk-s3 configure aws s3 bucket storage add avatar to courses
190 gem active storage validations. validates course avatar. display avatar in co
191 TEXT gem active storage validations. validates course avatar
192 gem image processing to fix action text displaying images S3 bucket CORS set
193 TEXT gem image processing (action text images) S3 CORS settings
194 credentials and secret keys PART 2 – PRODUCTION
195 action text attachment restrictions download and display
196 TEXT action text attachment restrictions download and display
197 action text restrict attachments more validations for course and lesson
198 TEXT action text restrict attachments more validations for course and lesson
199 video attachment and preview with active storage and HTML5
200 TEXT video attachment and preview with active storage and HTML5
201 styling lessons video validation
202 TEXT styling lessons video validation
203 deleting attachments (video and video thumbnail)
204 TEXT deleting attachments (video and video thumbnail)
205 action text – allow file upload add video preview to blob
206 TEXT action text – allow file upload add video preview to blob
207 action text – play audio with HTML5
208 TEXT action text – play audio with HTML5
209 video.js player integration
210 TEXT video.js player integration
211 simple form for rich text area (actiontext)
212 TEXT simple form for rich text area (actiontext)
213 action text youtube embeds
214 TEXT action text youtube embeds

Integrating Comments with Nested Routes
215 promo – nested comments
216 nested resources – comments inside lessons
217 TEXT nested resources – comments inside lessons
218 counter cache for comments method to delete comment
219 TEXT counter cache for comments method to delete comment
220 public activity for comments
221 TEXT public activity for comments
222 pundit authorization for destroying a comment
223 TEXT pundit authorization for destroying a comment
224 add counter cache for user lessons to lessons and users
225 TEXT add counter cache for user lessons to lessons and users

Preparing the app for production
226 promo – preparing for production
227 gem recaptcha with devise – no bot signups
228 TEXT gem recaptcha with devise – no bot signups
229 add recaptcha keys to credentials
230 TEXT add recaptcha keys to credentials
231 add google analytics
232 TEXT add google analytics
233 styling app adding logo and thumbnail
234 TEXT styling app adding logo and thumbnail
235 downgrade jquery to 3.4.1 to make bootstrap navbar dropdown work on small screen
236 TEXT downgrade jquery to 3.4.1 to make bootstrap dropdown work on small screens
237 yarn remove video.js – remove library from our app
238 TEXT yarn remove video.js – remove library from our app
239 connecting a domain to our application in production
240 disable video download (disable rightclick on video)
241 TEXT disable video download (disable rightclick on video)
242 privacy policy and SEO tags
243 TEXT privacy policy and SEO tags
244 adding a licence to our github repository
245 TEXT adding a licence to our github repository
246 beautify devise views
247 TEXT beautify devise views
248 Add a sitemap for Google and Bing search
249 TEXT Add a sitemap for Google and Bing search

API Log in with google github facebook (omniauth)
250 promo – social login
251 gem omniauth-google-oauth2 – log in with google
252 TEXT gem omniauth-google-oauth2 – log in with google
253 import omniauth user personal data
254 TEXT import omniauth user personal data
255 gem omniauth-github – log in with github
256 TEXT gem omniauth-github – log in with github
257 different credentials for different environments. Github
258 TEXT different credentials for different environments. Github
259 gem omniauth-facebook – log in with facebook
260 TEXT log in with facebook
261 refactor omniauth (clean up code)
262 TEXT refactor omniauth (clean up code)

PRO FEATURE Select or Create Tags with selectize js
263 promo – select or create with selectize-js
264 selectize.js – course has many tags through course tags
265 TEXT selectize.js – course has many tags through course tags
266 two ways to search courses by tags with ransack
267 TEXT two ways to search courses by tags with ransack
268 link to current page with params (for searching tags)
269 TEXT link to current page with params (for searching tags)
270 selectize.js – select or create tag
271 TEXT selectize.js – select or create tag
272 admin can manage and delete tags
273 TEXT admin can manage and delete tags
274 list similar courses in course show based on tags
275 TEXT list similar courses in course show based on tags

PRO FEATURE PDF Certificate of Completion with wicked pdf
276 promo – PDF generation
277 gem wicked pdf – ability to generate PDF from HTML
278 TEXT gem wicked pdf – ability to generate PDF from HTML
279 enrollment completion certificate and styling
280 TEXT enrollment completion certificate and styling
281 pdf.html – remove unused code enrollments index – link to certificate
282 TEXT pdf.html – remove unused code enrollments index – link to certificate
283 different pdf gem for development and production
284 TEXT different pdf gem for development and production
285 styling pdf certificate of completion
286 TEXT styling pdf certificate of completion
287 certificate of completion only for completed courses
288 TEXT certificate of completion only for completed courses
289 helper logic to view certificate of completion
290 TEXT helper logic to view certificate of completion

PRO FEATURE Multistep forms with gem WICKED
291 promo – multistep forms
292 gem wicked for multistep forms
293 TEXT gem wicked for multistep forms
294 gem wicked – nest course wizard inside courses
295 TEXT gem wicked – nest course wizard inside courses
296 gem wicked – edit and update functionality
297 TEXT gem wicked – edit and update functionality
298 gem wicked – styling and authorization
299 TEXT gem wicked – styling and authorization
300 layout for wizard steps remove course edit action
301 TEXT layout for wizard steps remove course edit action
302 styling wizard progress navigation remove fields course form
303 TEXT styling wizard progress navigation remove fields course form

PRO FEATURE ActionMailer – send outbound emails
304 email confirmation when a user enrolled to a course
305 TEXT email confirmation when a user enrolled to a course
306 email to teacher when a user enrolls to his course
307 TEXT email to teacher when a user enrolls to his course
308 user mailer – send all admins emails when a new user registers
309 TEXT user mailer – send all admins emails when a new user registers

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

Stripe Payments working with money business logic
312 payments – business logic for user income and expenses calculation
313 TEXT payments – business logic for user income and expences
314 payments with stripe part 1
315 TEXT stripe payments part 1
316 payments with stripe part 2
317 TEXT stripe payments part 2

Fixes and Adjustments
318 Upgrading to Rails EDGE and troubleshooting active storage issues
319 TEXT upgrading Rails and troubleshooting active storage issues
320 downgrading Rails and fixing selectize issues
321 TEXT downgrading Rails and fixing selectize issues
322 downgrading Rails and fixing active storage issues
323 TEXT downgrading Rails and fixing active storage issues
324 Update to rails 6.0.3
325 TEXT Update to rails 6.0.3
326 renaming a column (short- to marketing- description)
327 TEXT renaming a column (short- to marketing- description)
328 gem public activity for user
329 TEXT gem public activity for user
330 footer always on bottom
331 TEXT footer always on bottom
332 gem sitemap generator edit robots.txt
333 TEXT gem sitemap generator edit robots.txt
334 sitemaps working on heroku with AWS S3 public repo
335 TEXT sitemaps working on heroku with AWS S3 public repo
336 TEXT force SSL in production
337 Run the Corsego source code in development

Thank you and next steps
338 Roadmap. Next steps
339 Thank you