Ruby On Rails Real Time Chat App: Telegram Web Features
Published 8/2025
MP4 | Video: h264, 1920x1080 | Audio: AAC, 44.1 KHz
Language: English | Size: 2.32 GB | Duration: 6h 33m
Published 8/2025
MP4 | Video: h264, 1920x1080 | Audio: AAC, 44.1 KHz
Language: English | Size: 2.32 GB | Duration: 6h 33m
Master Rails: Real-Time Chat App with Group Chats, Online Status, Unread Notifications, PostgreSQL + Redis as Fast DB!
What you'll learn
Develop a fully functional real-time chat system with Ruby on Rails
Integrate Stimulus JS with Rails for smooth and interactive front-end experiences
Use Redis not just for pub/sub, but also for efficient storage and retrieval of unread notification data
Create and work with various types of associations, including polymorphic relationships, for flexible and reusable data structures
Create custom rules and roles for group functionality
Build group access protection mechanisms for users who are not members of the group — enforced on both server and client sides
Create background jobs to asynchronously broadcast the real-time Turbo Stream updates
Use WebSocket lifecycle hooks in Rails Channels to handle real-time online/offline status updates
Leverage Active Storage to manage various types of attachments and user avatars
Use ActionCable and WebSockets for real-time communication
Create a notification system that includes the latest messages and unread notification counts
Learn how to use Devise for authentication and customize its controllers to fit a real-time chat app
Requirements
Basic knowledges of Ruby on Rails, such as Model-View-Controller (MVC) design pattern, RESTFUL API's requests, basic knowledges of javascript.
Description
Unlock the full potential of Ruby on Rails 8 by building a powerful, real-time chat application inspired by the Telegram Web app.In this fast-paced, practical course, you'll create private and group chat rooms with features like live messaging, user presence, unread notifications, and file attachments. You'll also manage authentication, user roles, and permissions — all in real time.We’ll use modern Rails tools and technologies, including:Devise for authenticationActionCable & WebSockets for bi-directional, live communicationRedis for real-time unread notification counts as the database and as the Pub/Sub broker for all data updatesStimulus JS for dynamic frontend behaviorActive Storage for uploading avatars and sharing filesPolymorphic associations and other advanced ActiveRecord patternsRails Channels and WebSocket lifecycle hooks to track user online/offline status in real time.You’ll also learn how to:Build real-time group membership and role systemsSecure Group Page from Unauthorized Visits on Server and Client Side in Real TimeDisplay last messages and unread message counts — instantlyThroughout the course, we’ll explain complex backend logic using visual diagrams and schemas to make everything clear and digestible.This course is compact and efficient — just around 6 hours — carefully designed to save your time and deliver only the most relevant, high-impact knowledge. Each lecture builds directly on the last, so it's important to follow in sequence for a smooth learning experience.Who is this course for?This course is perfect for Rails developers with basic knowledge of MVC, routing, and RESTful APIs, who want to go beyond CRUD and build something dynamic and production-ready. Familiarity with JavaScript will also help, as we’ll use Stimulus JS for frontend interactions.If you’ve always wanted to build a real-time app with Rails — this is your blueprint.F.A.QQ: Will I receive support during the course?A: Due to having over 50,000 students across multiple platforms and a full-time job, the instructor isn’t able to provide one-on-one assistance. Q: Is this course kept up to date?A: Absolutely. The course is currently updated and fully compatible with Django 5.0.Q: Do I get lifetime access after purchasing?A: Yes. Once you purchase the course, you’ll have lifetime access, and it will remain available on Udemy.
Overview
Section 1: Basic Setup
Lecture 1 Introduction. What we're going to Build.
Lecture 2 Realtime Chat App – Setup Instructions
Lecture 3 Create a New Rails App with PostgreSQL, TailwindCSS & Devise Gem
Lecture 4 Create a Home Page with Devise Authentication
Lecture 5 Pages Structure and Model Associations Overview
Lecture 6 Create the Contact Model as a Polymorphic Model
Lecture 7 Create Rooms and Conversants
Lecture 8 Create Group and GroupUser Models. Set Associations
Lecture 9 Additional Associations to the User Model: added_users and added_groups
Lecture 10 Set Redis as the pub/sub server for ActionCable
Lecture 11 Set Active Storage locally
Lecture 12 Devise: Login for All Pages Except Home & Set current_user
Section 2: Contacts Page
Lecture 13 Contacts Page Structure
Lecture 14 Add Name Field to the Users Table. Add Avatar. Change Devise signup/edit Forms
Lecture 15 Create Contacts Controller. Set the Routes
Lecture 16 Check the changes. Start the server
Lecture 17 Create Contacts Page View
Lecture 18 Create User and Avatar Partials
Lecture 19 Helper Functions for the Avatar Partial
Lecture 20 Create 3 Users and Groups via seeds. Check Contacts Page. Users_path Helper
Lecture 21 Create Navigation Partial
Lecture 22 Create Flash Partial
Lecture 23 Create Group Partial
Lecture 24 Create Avatar Controller and Routes. Use Turbo Stream to Remove Avatar
Lecture 25 Add styling to the Devise pages
Lecture 26 Update Rails to 8.0.1
Lecture 27 Search Block Part 1. Create Search Stimulus Controller. Form_search Partial
Lecture 28 Search Part 2. Routes & Search Controller. Models Functions. Found_users Partial
Section 3: User Page & Messaging System
Lecture 29 User Page: Features & Interactions
Lecture 30 User Page Structure
Lecture 31 Create Show Users Page and the Users Controller
Lecture 32 Create Top Area and Add/Remove Contact Button to the User Page
Lecture 33 Real-Time Messaging. How ActionCable and Redis Keep Everyone in Sync
Lecture 34 Create Message Resource as Polymorphic
Lecture 35 Add Message Associations to User, Room, and Group Models
Lecture 36 Messages Routes: Rails' Routing System for Polymorphic Associations
Lecture 37 Create Action in the Messages Controller and Update the frontend UI in real time
Lecture 38 Destroy Action in the Messages Controller Update the frontend UI in real time
Lecture 39 Create Message Partial
Lecture 40 Create a “New Message Form” Partial – used for submitting messages
Lecture 41 Create a Chat Room for One-on-One User Conversations
Lecture 42 Prevent duplicate entries for the Conversant Model
Lecture 43 Finalizing Frontend Broadcasting on the User Page
Lecture 44 Check the broadcasting in Redis Insight
Lecture 45 Clearing Input after Message Post
Lecture 46 Auto-Scrolling Messages in the Chat Area
Lecture 47 Auto-Scrolling Messages. User-Friendly Impovement
Lecture 48 Realtime Contact List Sync When One User Adds or Removes Another
Section 4: Group Page Structure
Lecture 49 Group Page: Features & Interactions
Lecture 50 User Roles in the Group
Lecture 51 Refactoring View Pages: Reusing Common Left Part in Contacts and User Pages
Lecture 52 Group Page Basic Structure. Create Group Page & Groups Controller
Lecture 53 Group Page Breakdown: Blocks & Partials
Lecture 54 Group Page Layout: Deepening the Structure and Creating Messaging Functionality
Lecture 55 Create chat_header Partial
Lecture 56 Add Content to the Sidebar
Lecture 57 Create _avatar_big Partial
Lecture 58 Create group_user Partial
Section 5: Real-Time Group Membership & Access Permissions
Lecture 59 Add/Remove Group Users in the realtime chat. Presentation of Concept
Lecture 60 Create Functionality. Add Users to the Group. Routes and Actions
Lecture 61 Create add_users Form
Lecture 62 Finish the action update_users
Lecture 63 Create Functionality Remove Users from the Group. GroupsController actions.
Lecture 64 Finish the Remove Users Functionality. Create remove_users Page.
Lecture 65 Refactoring GroupsController
Lecture 66 Javascript Controller to close the modal window
Lecture 67 Jobs and background processing. Turbo-Streams for Real-Time Updates.
Lecture 68 Group Access Control — Concept & Final Version Overview
Lecture 69 Create Group Protection Mechanism: Server-side
Lecture 70 Create Group Protection Mechanism: Client-Side
Lecture 71 Tweak the Message Partial
Lecture 72 Sidebar Toggle Button Functionality
Section 6: Managing Groups & User Profiles in Real-Time
Lecture 73 Create/Edit/Remove Group. Final Version Overwiew
Lecture 74 Introduction: Kebab Menus with the Links: Add, Edit & Delete Group
Lecture 75 Building a Kebab Menu with Partial and Stimulus Controller for Toggle Action
Lecture 76 Add Group Workflow
Lecture 77 Introduction: Create views for the Groups Actions.
Lecture 78 Implementation: Create Views Files: new, edit, _form
Lecture 79 Actions New and Create in the groups_controller
Lecture 80 Complete Create Group. Add admin to the Group Users + Broadcast changes
Lecture 81 Actions Edit, Update and Destroy in the groups_controller. Delete Broadcast Job
Lecture 82 Add Avatar to the Group. Create avatars_controller for the Group
Lecture 83 Create GroupUpdateJob to bradcast the group updates in real-time
Lecture 84 Broadcast User's Profile Update in real-time
Section 7: Notification System in Real-Time: Unread Count + Last Message Preview
Lecture 85 Introduction: Unread Notifications + Last Message Preview in Real-Time
Lecture 86 Create Last Message Preview
Lecture 87 Explanation: Create the Real-Time Functionality for the Last Message Preview
Lecture 88 Implementation: Real-Time Last Message Preview with LastMessageJob
Lecture 89 Introduction: Real-Time Unread Notification Count Workflow
Lecture 90 Redis Setup: Install Pond for Counter Management
Lecture 91 Implementation Workflow: Adding Unread Notification Counts in Real-Time
Lecture 92 Introduction Workflow: Delete Unreal Notification Count after Message delete.
Lecture 93 Implementation: Delete Unread Notifications in Real Time on Message Deletion
Lecture 94 Fetch Unread Notification Counts on Page Load
Lecture 95 Implementation. Cleaning Redis When Notifications Are Read on Page Load
Lecture 96 Implementation. Mark Notification as Read in Real-Time
Section 8: Attachments
Lecture 97 Attachments – Part 1: Uploading Multiple Files
Lecture 98 Attachments – Part 2: Creating Preview Thumbnails and Icons for Selected Files
Section 9: Online/Offline User Mode
Lecture 99 Online/Offline Mode: Goal Preview, Backend Workflow, View & User Model Setup
Lecture 100 Change the Mode After Sign In & Sign Out. Backend Implementation
Lecture 101 Online/Offline Mode with Inactivity Tracking. Frontend Implementation
Section 10: Additional Features
Lecture 102 Realtime updates both Users’ Contact Lists after one adds the other
Section 11: Mobile View
Lecture 103 Mobile View: Demonstration
Lecture 104 Mobile View: Contacts Page Implementation and Device Detection
Lecture 105 Mobile View: Implementation for the User Page (Private Room)
Lecture 106 Mobile View: Implementation for the Group Page. Slide Stimulus JS
Section 12: Resources
Lecture 107 Media Attributions
Ruby on Rails developers with basic knowledge who want to deepen their core backend skills, better understand database relationships, and master modern real-time application development