🔔 با توجه به بهبود نسبی اینترنت، آمادهسازی دورهها آغاز شده است. به دلیل تداوم برخی اختلالات، بارگذاری دورهها ممکن است با کمی تأخیر انجام شود. مدت اشتراکهای تهیهشده محفوظ است.
لطفا جهت اطلاع از آخرین دوره ها و اخبار سایت در
کانال تلگرام
عضو شوید.
آموزش ساخت اپلیکیشن مشابه واتساپ با تماس ویدیویی با استفاده از MERN stack و Socket.IO
- آخرین آپدیت
دانلود Build WhatsApp clone w video calls Mern stack socket io
نکته:
ممکن هست محتوای این صفحه بروز نباشد ولی دانلود دوره آخرین آپدیت می باشد.
نمونه ویدیوها:
توضیحات دوره:
آموزش ساخت کلون واتساپ با React، Node، MongoDB و WebRTC
یک برنامه پیام رسان واتساپ کلون با قابلیت تماس ویدیویی با استفاده از MERN stack، Socket IO و WebRTC بسازید. یک برنامه وب تمام عیار مانند یک حرفه ای خلق کنید.
آنچه در این دوره خواهید آموخت:
تسلط بر React js و تمام رازها و ترفندهای آن برای توسعه Frontend و Backend
تسلط بر سیستم احراز هویت کامل، آشنایی با Access Token و Refresh Token
استفاده از Redux Toolkit با Redux Persist برای مدیریت حرفه ای State
کار با MongoDB و اضافه، ویرایش، حذف و جستجو مانند یک متخصص
نحوه استفاده از Cloudinary برای ذخیره تصاویر به روشی نوین، آپلود، جستجو و فیلتر کردن
اعتبارسنجی فرم های پیشرفته با React-hook-form و Zod
ایجاد Route های محافظت شده و ایمن سازی برنامه
کار با useState، useReducer، useEffect، useRef، useCallback و Event Listeners
پیش نیازها:
آشنایی اولیه با React js
آشنایی نسبی با توسعه وب
به دوره نهایی ساخت یک برنامه وب WhatsApp Clone با استفاده از MERN stack، Socket IO و WebRTC خوش آمدید! در این دوره جامع و حرفه ای، یاد خواهید گرفت که چگونه یک پلتفرم پیام رسان با ویژگی های غنی ایجاد کنید که با بهترین ها رقابت کند.
پیام رسانی Real-time در قلب هر برنامه چت عالی است، و دوره ما به شما آموزش می دهد که چگونه این ویژگی ضروری را پیاده سازی کنید و بتوانید به راحتی و با عملکرد بسیار زیاد با سایر کاربران Real-time ارتباط برقرار کنید. همچنین یاد خواهید گرفت که چگونه تماس های ویدیویی را در برنامه خود ادغام کنید، به کاربران این امکان را می دهد که به راحتی و با تمام اجزای زنگ و صداهای فانتزی با یکدیگر چهره به چهره ارتباط برقرار کنند.
با نمایش وضعیت آنلاین دوستان و همکاران خود در ارتباط باشید، بنابراین می دانید که چه کسی واقعاً آنلاین است یا نه و Real-time خواهید فهمید، و برنامه خود را با فعال کردن امکان ارسال فایل های انواع مختلف توسط کاربران، همه کاره تر کنید. در مورد تصاویر، فیلم ها، فایل های rar/zip، pdf/doc و غیره صحبت می کنم... دوره ما شما را در فرآیند ایجاد چت های گروهی راهنمایی می کند، بنابراین کاربران می توانند با چندین نفر به طور همزمان همکاری و به اشتراک گذاری ایده ها، از جمله برخی از ویژگی های دیگری که گروه ها ارائه می دهند.
با پیاده سازی نشانگر تایپ، تجربه کاربری را بهبود بخشید، که به کاربران امکان می دهد ببینند چه کسی در حال تایپ پیام است. با گنجاندن طیف گسترده ای از ایموجی ها برای ابراز وجود کاربران، کمی سرگرمی و شخصیت به برنامه خود اضافه کنید.
با یک عملکرد جستجوی پیشرفته، یافتن پیام ها یا مخاطبین خاص را برای کاربران آسان کنید. و البته، هیچ برنامه وب مدرنی بدون یک سیستم احراز هویت قوی کامل نخواهد بود. دوره ما همه چیزهایی را که باید در مورد ایجاد فرآیندهای ورود و ثبت نام ایمن بدانید، پوشش می دهد، و همچنین آپلود تصاویر در فضای ابری را نیز شامل می شود.
با ثبت نام در این دوره، می توانید مطمئن باشید که از بهترین ها یاد می گیرید. ما تضمین می کنیم که این یک ساخت بسیار حرفه ای است که شما را به تمام مهارت های مورد نیاز برای ایجاد یک برنامه وب WhatsApp Clone برجسته مجهز می کند. این فرصت باورنکردنی را از دست ندهید - امروز ثبت نام کنید!
سرفصل ها و درس ها
مقدمه
Introduction
مقدمه
Introduction
لینکهای کد منبع
Source code links
راهاندازی بکاند
Setup backend
بیایید بکاند خود را راهاندازی کنیم
Let's setup our backend
بیایید یک برنامه اکسپرس اولیه ایجاد کنیم
Let's create a basic express app
ارسال کد منبع به گیتهاب
Push source code to github
کراس اِنو (Cross-env)
Cross-env
بیایید چند میانافزار (کارکرد، امنیت و سرعت) اضافه کنیم
Let's add some middlwares (Functionality, Security and Speed)
اضافه کردن یک لاگر سفارشی با وینستون به جای console.log
Add a custom logger with winston instead of console.log
مدیریت خطاهای uncaughtException، unhandledRejection و بستن سیگنال SIGTERM
Handling uncaughtException, unhandledRejection errors and SIGTERM signal closing
مدیریت خطاهای http
Handling http errors
راهاندازی روتها، اصلاح درخواستها و اضافه کردن کنترلرها
Setup routes, trim requests and add controllers
ایجاد یک کلاستر Mongodb
Create a Mongodb cluster
اتصال به Mongodb، مدیریت خطاهای اتصال و حالت دیباگ
Connect to Mngodb, handle connection errors and debug mode
راهاندازی فرانتاند
Setup frontend
ایجاد برنامه react
Create react app
راهاندازی tailwind css، توضیح متغیرها، کلاسهای سفارشی حالت تاریک و غیره...
Setup tailwind css, explain variables, dark mode custom classes etc...
راهاندازی react router dom
Setup react router dom
راهاندازی فروشگاه Redux Toolkit و توضیح نحوه ارسال اکشنها
Setup redux toolkit store and explain how dispatch actions
استفاده از Redux Persist برای احیای مجدد مقادیر خاص (هوشمندانه)
Use redux persist to rehydrate only certain values (smart)
احراز هویت - بکاند
Authentication - backend
ایجاد مدل کاربر
Creating the user model
ثبت نام کاربر با اعتبار سنجی
Register a user with validation
استفاده از Bcrypt برای هش کردن رمز عبور در زمان ذخیره در مدل کاربر
Using Bcrypt to hash password on presave in user model
تولید توکنهای دسترسی و رفرش، ذخیره توکن رفرش در کوکیها در سرور
Generate access and refresh tokens, store refresh token in cookies in the server
توابع ورود و خروج
Login and logout functions
تولید یک توکن دسترسی جدید با استفاده از توکن رفرش
Generate a new access token using refresh token
توضیح دقیق میانافزار Auth
Auth middleware explained in details
احراز هویت - فرانتاند
Authentication - Frontend
بیایید صفحه ثبت نام و ورود و اجزای فرم آن را راهاندازی کنیم
Let's setup the register and login page and it's form components
اضافه کردن و توضیح react hook form و استفاده از آن با yup
Adding and explaining react hook form and use it with yup
ایجاد ورودیهای سفارشی با اعتبار سنجی
Create custom inputs with validation
تکمیل نشانهگذاری و استایلهای فرم ثبت نام
Finishing sign up form markup and styles
ارسال اکشن ثبت نام با AsyncThunk و مدیریت وضعیت، خطا
Submit register action with AsyncThunk and handling status, error
مدیریت تصویر، مدیریت خطاها در تغییر
Handling picture , handling errors on change
آپلود تصویر به cloudinary
Upload image to cloudinary
کار بر روی ورود
Working on the login
مسیرهای محافظت شده
Protected routes
مکالمات - بکاند
Conversations - backend
مدل مکالمه
Conversation model
باز کردن یا ایجاد یک مکالمه 1
Open or create a conversation 1
باز کردن یا ایجاد یک مکالمه 2
Open or create a conversation 2
دریافت مکالمات کاربر
Get user conversations
پیامها - بکاند
Messages - backend
ایجاد مدل و روتهای پیام
Create message model and routes
ارسال یک پیام
Send a message
دریافت پیامهای مکالمه
Get conversation messages
راهاندازی صفحه اصلی، نوار کناری: مکالمات و جستجو
Home setup, Sidebar : conversations and search
طرحبندی صفحه اصلی، سربرگ نوار کناری
Home layout, Sidebar header
ایجاد یک اتصال socket.io امن بین فرانتاند و بکاند
Establish a secure socket.io connection between frontend and backend
توضیح socket.io با مثال، ایجاد یک متن socket سراسری برای استفاده در هر کجا
Explaining socket.io by example, create a global socket context to use anywhere
پیوستن کاربر و پیوستن به مکالمه
Join user and join conversation
ارسال و دریافت پیامها به صورت بلادرنگ 1 + رفع یک اشتباه بزرگ که مرتکب شدم
Send and receive messages realtime 1 + fixing a huge mistake i made
ارسال و دریافت پیامها به صورت بلادرنگ (بهروزرسانی پیامها و مکالمات)
Send and receive messages realtime (update messages and conversations)
وضعیت آنلاین
Online status
در حال تایپ...
Typing...
ارسال فایلها
Sending files
کامپوننت پیوست عکس و مدیریت تصاویر
Photo attachment component and handling images
کامپوننت پیوست سند و مدیریت اسناد، فیلمها، فایلهای صوتی
Document attachment component and handling documents, videos, audio files
راهاندازی پیشنمایش فایلها
Preview files setup
سربرگ پیشنمایش فایلها
Preview files -header
پیشنمایش فایل
File preview
ورودی پیام
Message input
فهرست تمام تصاویر کوچک فایلها
List all files thumbnails
اضافه کردن فایلهای دیگر
Add other files
آپلود فایلها به cloudinary و ارسال پیام
Upload files to cloudinary and send message
لودر و حذف فایلها
loader and remove files
ارسال پیشنمایش فایلهای ویدیویی
Send video files preview
فهرست فایلها با پیام: تصویر و ویدیو
List files with message : image and video
فهرست فایلها با پیام: بقیه موارد
List files with message : all the rest
تماسهای ویدیویی
Video calls
در حال زنگ خوردن
Ringing
سربرگ تماس
Call header
محدوده تماس
call area
رابط کاربری اکشنهای تماس
Call actions ui
رابط کاربری ویدیوهای تماس
call videos ui
جریان ویدیو و دریافت شناسه سوکت
video stream and get socket id
تماس با کاربر و دریافت زنگ خوردن
Call user and receive ringing
رفع مشکلات کامپوننت دریافت زنگ خوردن
Fixing receive ringing component issues
تماس با یک کاربر و پاسخ دادن به تماس
Call a user and answer the call
تغییر وضعیت ویدیو و صدای زنگ
toggle video and ringing sound
پایان دادن به تماس
End call
شمارنده زمان تماس
call time counter
چتهای گروهی
Group chats
ایجاد گروه: بیایید شروع کنیم
Create group : lets start
جستجو و انتخاب چند کاربر
Search and select multiple users
مدیریت کننده جستجو و استایلهای سفارشی
Search handler and custom styles
ایجاد یک گروه: منطق بکاند و ارسال درخواست
Create a group : backend logic and send request
رفع کنترلر چت گروهی باز و فرانتاند
fixing the open group chat controller ad frontend
تصاویر شرکتکنندگان گروه
Group participants pictures
نمایش نظرات