Ruby On Rails Real Time Chat App: Telegram Web Features

Posted By: ELK1nG

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

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