Ruby on Rails 6: Learn 25+ gems and build a Startup MVP 2020
More
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.
Also, if you want to learn more great ruby on rails features, consider subscribing to this course.
P.S. I'm a Ruby on Rails Engineer and I built this course out of passion. I'm not a vice actor, so don't expect studio-level audio quality.
Requirements:
Modern browser and internet connection
No coding experience is required! We will start from very basics and take you to the advanced level
Basic knowledge of HTML, CSS and Bootstrap will be a plus, but it is not mandatory
- Anyone who wants to bring their web app ideas to life
- Anyone who wants to be a web app developer: This course will introduce you to many in-depth mechanics of Ruby on Rails 6
- Anyone who is already acquainted with Ruby on Rails and wants to learn new features
- Anyone who want to create his own e-learning platform
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
Watch Online Ruby on Rails 6: Learn 25+ gems and build a Startup MVP 2020
# | Title | Duration |
---|---|---|
1 | Preview of the final application | 11:22 |
2 | START HERE | 04:23 |
3 | create development environment, install ruby on rails 6, create app | 11:58 |
4 | push application to github | 03:58 |
5 | PRO TIP - ssh connection - push to github without re-entering password | 05:23 |
6 | hello world - generate a static page | 13:00 |
7 | connect heroku - run application in production | 07:03 |
8 | PRO TIP - delete changes, undo commits | 05:23 |
9 | AWS - no space left on device - add 20 gb storage | 03:12 |
10 | Install bootstrap with yarn and webpacker | 06:55 |
11 | Bootstrap basic usage | 04:47 |
12 | Install and use Fontawesome icons with yarn and webpacker | 05:34 |
13 | Responsive screen width | 01:08 |
14 | Create AWS Cloud9 environment, install Ruby on Rails 6 | 04:02 |
15 | Create a Ruby on Rails 6 application, configure PostgreSQL | 05:25 |
16 | First commit to Github | 01:21 |
17 | Hello World. Generating a static page | 01:44 |
18 | Push application to production on Heroku | 03:34 |
19 | FIX ISSUE: "AWS Cloud9 NO SPACE LEFT ON DEVICE" | 03:12 |
20 | gem haml-rails - more RoR-friendly way of editing HTML | 01:39 |
21 | (REVISED) Install Bootstrap with Yarn and Webpacker | 08:18 |
22 | gem font-awesome-sass - add cool icons for styling | 02:18 |
23 | gem simple_form - better way to work with forms | 00:51 |
24 | add a Courses table | 02:41 |
25 | action_text - rich text editor | 04:35 |
26 | gem faker and seeds.rb - add fake data to the app | 02:16 |
27 | gem devise for authentication (log in, log out) | 03:50 |
28 | course belong_to user - relationships | 04:28 |
29 | design for notification messages | 01:04 |
30 | adding a functional navbar | 02:21 |
31 | search field in navbar | 01:19 |
32 | styling courses and home index | 14:45 |
33 | gem friendly_id - show user friendly links | 06:14 |
34 | devise trackable (track user IP address, create users index page | 08:01 |
35 | devise confirmable in development pt1 | 06:22 |
36 | devise confirmable in development pt2 | 01:42 |
37 | sendgrid - send emails in production | 05:22 |
38 | Amazon SES - better way to send emails in production | 10:12 |
39 | add more fields to courses | 15:59 |
40 | gem ransack - level 1 - filter and search data in a table | 04:48 |
41 | gem ransack - level 2 - search and filter courses | 13:28 |
42 | gem ransack level 3 - search in navbar | 05:48 |
43 | gem public_activity - track all actions in the app | 08:20 |
44 | add a footer | 06:46 |
45 | promo - roles & authorization | 00:26 |
46 | gem rolify - add roles to users | 08:53 |
47 | gem rolify - edit user roles | 05:17 |
48 | gem rolify - using role based access | 02:22 |
49 | gem pundit - installation and example usecase | 04:21 |
50 | gem pundit - authorization for courses | 02:26 |
51 | gem pundit - only admin can edit other users | 02:41 |
52 | gem pundit - user can see links only to allowed actions | 02:40 |
53 | gem friendly_id for users, user show | 04:34 |
54 | check if user is online | 03:56 |
55 | add a Lessons table, friendly_id, styling | 11:21 |
56 | public_activity for Lessons, create lessons inside courses | 02:49 |
57 | action_text for Lessons, add breadcrumbs for lesson show | 02:52 |
58 | gem pundit - authorization for Lessons | 06:16 |
59 | nested resources. lessons in courses | 07:55 |
60 | gem pundit - authorization for Lessons create action | 04:11 |
61 | minor styling for edit and new views | 02:28 |
62 | production - tour around heroku | 02:14 |
63 | gem exception_notification - catch errors in production | 03:27 |
64 | design for courses and lessons | 09:22 |
65 | gem pagy for pagination | 07:39 |
66 | add dynamic title to page tabs | 08:13 |
67 | scaffold Enrollments. Basic validation and design | 15:18 |
68 | Button for user to Enroll to a Course | 21:33 |
69 | gem pundit for Enrollments | 03:58 |
70 | gem pundit - user can access his purchased Courses | 02:17 |
71 | work on Enrollment views | 16:40 |
72 | Button for user to Review a Course | 08:33 |
73 | gem pagy for Enrollments and Users | 03:40 |
74 | gem friendly_id for enrollments | 02:02 |
75 | gem ransack for enrollments index | 07:15 |
76 | Navigation for student, teacher, admin | 10:40 |
77 | Collections and Scopes + Ransack + Pagy for Courses and Enrollments | 18:26 |
78 | Counters in header | 05:21 |
79 | Calculate rating for courses | 10:59 |
80 | counter_cache basics (enrollments_count for Course) | 06:02 |
81 | add counter_cache across app | 12:48 |
82 | More course styling and validation | 09:10 |
83 | Courses index ransack sort by price, populararity, rating, newest | 03:09 |
84 | Dynamic & Personalized Homepage (Popular, New, Top Rated Courses) | 08:48 |
85 | Move logic from controller to model using scopes | 05:50 |
86 | UserCourse table - track if a user has seen a lesson. Migration and setup | 11:43 |
87 | Track User progress in a Course | 08:57 |
88 | Styling courses and lessons | 19:41 |
89 | Pluralization for course show | 01:43 |
90 | Validation for Destroy with dependent records (restrict_with_error, nullify, | 04:17 |
91 | Lesson show - navigation between lessons in a course | 06:24 |
92 | gem chartkick and groupdate - add charts | 12:46 |
93 | load charts without timeouts | 06:09 |
94 | namespace charts in routes, group by sum | 03:44 |
95 | count impressions with increment method | 05:45 |
96 | custom buttons to publish or approve a course | 21:02 |
97 | complex validation who can see a course show | 03:42 |
98 | gem public_activity - polymorphic links with nested resources | 08:44 |
99 | application_helper for conditional styling | 04:28 |
100 | gem rails-erd to generate relationship-diagrams automatically | 03:12 |
101 | better views for not logged in users | 03:52 |
102 | link_to courses with ransack search params | 04:03 |
103 | course-specific charts and analytics, more advanced grouping | 10:47 |
104 | update course_policy and view | 04:10 |
105 | promo - sort records | 00:18 |
106 | gem ranked_model - give lessons inside a course a number | 03:44 |
107 | link to previous and next lesson in lesson show | 03:08 |
108 | jquery-ui sortable - make lessons sortable and persist changes | 11:14 |
109 | promo - active_storage & action_text | 00:23 |
110 | credentials and secret keys PART 1 | 06:08 |
111 | gem aws-sdk-s3, configure aws s3 bucket storage, add avatar to courses | 16:52 |
112 | gem active_storage_validations. validates course avatar. display avatar in co | 10:11 |
113 | gem image_processing to fix action_text displaying images, S3 bucket CORS set | 04:08 |
114 | credentials and secret keys PART 2 - PRODUCTION | 01:42 |
115 | action_text attachment restrictions, download and display | 09:36 |
116 | action_text restrict attachments, more validations for course and lesson | 10:18 |
117 | video attachment and preview with active_storage and HTML5 | 07:15 |
118 | styling lessons, video validation | 06:53 |
119 | deleting attachments (video and video_thumbnail) | 06:51 |
120 | action_text - allow file upload, add video preview to blob | 04:35 |
121 | action_text - play audio with HTML5 | 02:30 |
122 | video.js player integration | 05:57 |
123 | simple_form for rich_text_area (actiontext) | 02:22 |
124 | action_text youtube embeds | 06:53 |
125 | promo - nested comments | 00:24 |
126 | nested resources - comments inside lessons | 26:30 |
127 | counter_cache for comments, method to delete comment | 16:51 |
128 | public_activity for comments | 04:59 |
129 | pundit authorization for destroying a comment | 03:11 |
130 | add counter_cache for user_lessons to lessons and users | 04:22 |
131 | promo - preparing for production | 00:23 |
132 | gem recaptcha with devise - no bot signups | 06:32 |
133 | add recaptcha keys to credentials | 02:30 |
134 | add google analytics | 07:10 |
135 | styling app, adding logo and thumbnail | 09:49 |
136 | downgrade jquery to 3.4.1 to make bootstrap navbar dropdown work on small screen | 01:35 |
137 | yarn remove video.js - remove library from our app | 02:28 |
138 | connecting a domain to our application in production | 04:57 |
139 | disable video download (disable rightclick on video) | 02:16 |
140 | privacy_policy and SEO tags | 03:40 |
141 | adding a licence to our github repository | 01:36 |
142 | beautify devise views | 12:04 |
143 | Add a sitemap for Google and Bing search | 05:38 |
144 | promo - social login | 00:31 |
145 | gem omniauth-google-oauth2 - log in with google | 11:20 |
146 | import omniauth user personal data | 08:48 |
147 | gem omniauth-github - log in with github | 04:15 |
148 | different credentials for different environments. Github | 05:53 |
149 | gem omniauth-facebook - log in with facebook | 10:09 |
150 | refactor omniauth (clean up code) | 04:44 |
151 | promo - select or create with selectize-js | 00:59 |
152 | selectize.js - course has many tags through course_tags | 15:33 |
153 | two ways to search courses by tags with ransack | 11:11 |
154 | link to current page with params (for searching tags) | 03:17 |
155 | selectize.js - select or create tag | 04:55 |
156 | admin can manage and delete tags | 15:23 |
157 | list similar courses in course show based on tags | 06:24 |
158 | promo - PDF generation | 00:37 |
159 | gem wicked_pdf - ability to generate PDF from HTML | 08:31 |
160 | enrollment completion certificate and styling | 07:20 |
161 | pdf.html - remove unused code, enrollments index - link to certificate | 05:06 |
162 | different pdf gem for development and production | 03:26 |
163 | styling pdf certificate of completion | 04:35 |
164 | certificate of completion only for completed courses | 04:56 |
165 | helper logic to view certificate of completion | 08:23 |
166 | promo - multistep forms | 00:19 |
167 | gem wicked for multistep forms | 20:41 |
168 | gem wicked - nest course_wizard inside courses | 05:45 |
169 | gem wicked - edit and update functionality | 08:11 |
170 | gem wicked - styling and authorization | 05:30 |
171 | layout for wizard steps, remove course edit action | 06:09 |
172 | styling wizard progress navigation, remove fields course form | 09:57 |
173 | email confirmation when a user enrolled to a course | 11:46 |
174 | email to teacher when a user enrolls to his course | 05:41 |
175 | user_mailer - send all admins emails when a new user registers | 05:50 |
176 | install gem cocoon. edit lessons in course form | 12:50 |
177 | payments - business logic for user income and expenses calculation | 20:23 |
178 | payments with stripe part 1 | 15:17 |
179 | payments with stripe part 2 | 10:19 |
180 | Upgrading to Rails EDGE and troubleshooting active_storage issues | 02:59 |
181 | downgrading Rails and fixing selectize issues | 03:35 |
182 | downgrading Rails and fixing active_storage issues | 02:40 |
183 | Update to rails 6.0.3 | 02:09 |
184 | renaming a column (short- to marketing- description) | 05:18 |
185 | gem public_activity for user | 05:57 |
186 | footer always on bottom | 03:09 |
187 | gem sitemap_generator, edit robots.txt | 08:41 |
188 | sitemaps working on heroku with AWS S3 public repo | 07:55 |
189 | Run the Corsego source code in development | 14:26 |
190 | Roadmap. Next steps. | 04:48 |
191 | Thank you | 00:30 |