MERN Stack یک روش توسعه نرم افزار است. در این روش، با استفاده از تکنولوژیهای MongoDB ،Express ،React و Node یک نرم افزار را توسعه میدهیم. تکنولوژیهای استفاده شده در MERN براساس زبان برنامه نویسی جاوااسکریپت هستند و برای توسعه برنامههای پیشرفته وب استفاده میشوند. میتوان گفت درک زبان برنامه نویسی جاوااسکریپت، اصلیترین پیشنیاز برای یادگیری توسعه نرم افزار با MERN است. همین موضوع باعث شده است تا MERN بسیار محبوب شود و در حال پیشرفت باشد. کسانی که در این زمینه متخصص هستند توسعه دهنده Full Stack جاوااسکریپت به شمار میآیند.
قطعا هر چه قدر دانش قبلی شما برای تکنولوژیهای مربوط به MERN بیشتر باشد، درک مفاهیم این دوره سادهتر خواهد بود. ما برای درک درست مفاهیم برنامه نویسی و زبان جاوااسکریپت، دوره جامع و پیشرفته جاوااسکریپت فرانت کست را پیشنهاد میکنیم. در طول دوره با نگاهی دقیقتر مفاهیم مربوط به Node ،React و MongoDB را از ابتدا بررسی خواهیم کرد.
توسعه دهنده Full Stack وب جزء مشاغلی به شمار میآید که در حال حاضر بسیار مورد توجه شرکتهای مختلف قرار گرفته است. کسانی که توسعه دهنده Full Stack جاوااسکریپت هستند هم در بخش فرانتاند و هم در بخش بکاند تخصصهای لازم را دارند. از این رو، لازم نیست تا تیم چند نفره متشکل از متخصصین مختلف تشکیل شود تا یک پروژه انجام شود. به همین دلیل، تقاضای بیشتری برای متخصصین Full Stack وجود دارد.
مزیت دیگر این است که امکان دور کاری برای بسیاری از شرکتهای خوب داخلی و خارجی فراهم شده است. همین موضوع کمک میکند تا تعداد موقعیتهای شغلی بیشتر شود و محدودیتهای مکانی اهمیتی نداشته باشد. همچنین توسعه دهندگان Full Stack وب میتوانند به صورت برنامه نویس فریلنسر، نسبت به انجام پروژههای مختلف اقدام کنند و از درآمدهای بسیار خوب بهرهمند شوند.
درک مفاهیم برنامه نویسی با انجام تمرینهای متعدد به شکل دقیقتری انجام میگیرد. از این رو، در فرانت کست همه دورهها را به شکل پروژه محور طراحی شدهاند. در طول دوره جامع MERN Stack با چالشهای متعدد رو به رو خواهیم شد، تمرینهای زیادی را باهم انجام خواهیم داد و در نهایت یک پروژه اصلی و واقعی خواهیم داشت. همچنین براساس بازخوردهایی که از دانشجویان دریافت میکنیم، پروژههای مختلف را بصورت رایگان به دوره اضافه خواهیم کرد.
هدف ما در فرانت کست این است که دانشجویان به سادهترین زبان ممکن برنامه نویسی را یاد بگیرند. از این رو دوره جامع MERN Stack به شکل قدم به قدم طراحی شده است و آموزش مفاهیم از سادهترین و پایهایترین مفاهیم شروع شده و تا قسمتهای پیشرفتهتر ادامه پیدا میکند.
پس از اتمام این دوره شما تمامی مفاهیم تخصصی لازم برای این که به یک توسعه دهنده Full Stack جاوااسکریپت تبدیل شوید را یاد میگیرید و میتوانید به راحتی وارد بازار کار شوید. به همین دلیل سرمایه گذاری روی یادگیری مفاهیم MERN میتواند یک انتخاب بسیار منطقی و درست باشد.
مسعود صدری مدرس و توسعه دهنده نرم افزار، فارغ التحصیل از رشته مهندسی نرمافزار، برنامه نویسی را از سال ۱۳۹۱ به شکل حرفهای شروع کرده است. او در سالهایی که در حوزه برنامه نویسی حرفهای فعالیت داشته، با شرکت های نرم افزاری و تیمهای استارتاپی همکاری داشته و بیشتر بر روی فریلنسیگ تمرکز کرده است. او سالها به عنوان برنامه نویس فریلنسر مشغول به کار بوده و همین امر باعث شده تا نیازهای بازار کار را به خوبی بشناسد و تجربههای زیادی در این زمینه کسب کند.
مسعود صدری تدریس را از سال ۱۳۹۴ به شکل حرفهای، با آموزشگاه مجتمع فنی تهران شروع کرده و همیشه جزء یکی از برترین مدرسان برنامه نویسی بوده است. سپس تصمیم به برگزاری دورههای برنامه نویسی در دانشکده مهندسی برق و کامپیوتر دانشگاه تبریز گرفته که مورد استقبال بسیار خوب دانشجویان قرار گرفت. فعالیتهای او در دانشگاه تبریز، به عنوان مدرس دانشگاه ادامه داشته و اکنون تدریس کارگاههای مبانی برنامه سازی و برنامه سازی پیشرفته را برعهده دارد. نهایتا از سال ۱۳۹۷ تدریس آنلاین هم به لیست فعالیتهای آموزشی او اضافه شده است.
تمام تلاش مسعود صدری این است که نیازهای بازار کار را بصورت دقیق تحلیل کند و براساس روند پیشرفت محبوبیت یک تکنولوژی و نیازهای بازار کار جامعترین و بهروزترین سرفصلها را برای تکنولوژیهای مختلف آماده کند تا افرادی که به این حوزه علاقمند هستند بتوانند مطالب را به بهترین و سادهترین زبان ممکن یاد بگیرند و بطور مستقیم وارد بازار کار شوند.
یکی از موضوعات بسیار مهم در فرانت کست پشتیبانی دورهها میباشد که برعهده مدرس دوره است. مدرس به عنوان یک منتور از ابتدای مسیر قدم به قدم، تا زمانی که دانشجو تمامی مطالب را بصورت کامل یاد بگیرد، همراه اوست. ما بر این باور هستیم که هیچ شخصی بهتر از مدرس دوره نمیتواند پاسخگوی سوالات دانشجویان باشد. از این رو، در فرانت کست مدرس خود را موظف میداند تا در تمامی روزهای هفته، به جز روزهای تعطیل، سوالات دانشجویان را بررسی کند. این ارتباط مستقیم از طریق شماره واتساپ ۰۹۳۵۵۴۹۱۴۸۱ و یا اکانت اینستاگرام @masoodsadri انجام میگیرد.
یکی از موضوعات بسیار مهم در فرانت کست پشتیبانی دورهها میباشد که برعهده مدرس دوره است. مدرس به عنوان یک منتور از ابتدای مسیر قدم به قدم، تا زمانی که دانشجو تمامی مطالب را بصورت کامل یاد بگیرد، همراه اوست. ما بر این باور هستیم که هیچ شخصی بهتر از مدرس دوره نمیتواند پاسخگوی سوالات دانشجویان باشد. از این رو، در فرانت کست مدرس خود را موظف میداند تا در تمامی روزهای هفته، به جز روزهای تعطیل، سوالات دانشجویان را بررسی کند. برای پشتیبانی و دریافت مشاوره میتوانید از راههای ارتباطی نوشته شده در وبسایت استفاده کنید.
معرفی دوره. بررسی MERN Stack
۱. مسیر یادگیری و سرفصلهای دوره
۲. یادگیری دقیقتر مفاهیم
۳. معماری نرم افزاری MERN
۴. نصب و بررسی ساختار بسته Create React App
۵. درک بهتر دستورات JSX
۶. کامپوننتها در ReactJS
۷. استفاده از کامپوننتهای متعدد
۸. بررسی Props در ReactJS
۹. نمایش آیتمهای داینامیک در کامپوننت
۱۰. مدیریت Eventها
۱۱. ارتباط کامپوننتهای Parent و Child
۱۲. مدیریت State با تابع useState
۱۳. درک بهتر State در ReactJS
۱۴. دریافت اطلاعات از کاربر
۱۵. استفاده از React Router در پروژه اصلی
۱۶. توسعه کامپوننتها و صفحات مربوط به کاربران
۱۷. توسعه کامپوننت یک کاربر
۱۸. ایجاد لینک یکتا برای صفحه هر کاربر
۱۹. کامپوننت Navigation
۲۰. کامپوننت NavLink در React Router
۲۱. توسعه کامپوننتها و صفحات مربوط به پستها
۲۲. توسعه کامپوننت یک پست
۲۳. مقادیر متغیر در آدرس صفحات
۲۴. المنتهای داینامیک برای فرم
۲۵. توسعه کامپوننت Button
۲۶. استفاده از useReducer برای مدیریت Stateها
۲۷. بررسی روشهای اعتبارسنجی
۲۸. استفاده از توابع اعتبارسنجی در فرم اضافه کردن پست
۲۹. اضافه کردن Inputهای متعدد
۳۰. اعتبارسنجی فرم و مدیریت Stateها
۳۱. تکمیل فرم اضافه کردن پست
۳۲. استفاده از Custom Hook برای فرمها
۳۳. توسعه صفحه ورود کاربر
۳۴. اضافه کردن فرم عضویت
۳۵. توسعه Stateهای فرم عضویت
۳۶. بررسی Context در ReactJS
۳۷. استفاده از Context برای احراز هویت کاربر
۳۸. تعیین سطح دسترسی برای Routeها
۳۹. تکمیل قسمت احراز هویت کاربر در فرانتاند
۴۰. بررسی قسمت فرانتاند پروژه اصلی – مشاهده ویدیو
۴۱. بررسی و استفاده از NodeJS
۴۲. کار با فایلها در NodeJS
۴۳. استفاده از http برای راه اندازی سرور
۴۴. نصب و راه اندازی چهارچوب Express
۴۵. نصب Nodemon و بررسی مسیرهای نرم افزار
۴۶. اضافه کردن Routeهای اصلی
۴۷. توسعه Routeهای داینامیک برای یک پست
۴۸. توسعه Routeهای داینامیک برای پستهای یک کاربر
۴۹. بررسی پیغامهای خطا
۵۰. توسعه Model برای مدیریت خطا
۵۱. افزودن توابع Controller
۵۲. بررسی و استفاده از Body Parser
۵۳. ارسال درخواستهای POST
۵۴. استفاده از Postman برای کار با APIها
۵۵. مدیریت خطا برای Routeها
۵۶. توسعه تابع حذف پست
۵۷. افزودن Routeهای قسمت کاربران
۵۸. توسعه تابع عضویت کاربر
۵۹. توسعه تابع ورود کاربر
۶۰. اعتبارسنجی فرم افزودن پست
۶۱. اعتبار سنجی قسمت عضویت کاربر
۶۲. بررسی قسمت APIهای بکاند پروژه اصلی
۶۳. بررسی پایگاه دادههای NoSQL و SQL
۶۴. نصب و راه اندازی MongoDB
۶۵. اتصال بکاند به پایگاه داده
۶۶. افزودن آیتم به پایگاه داده
۶۷. دریافت اطلاعات از پایگاه داده
۶۸. بررسی و نصب Mongoose
۶۹. درک بهتر Model و ساختار دادهها
۷۰. توسعه یک آیتم بر اساس Model
۷۱. افزودن اطلاعات با استفاده از Mongoose
۷۲. دریافت اطلاعات با استفاده از Mongoose
۷۳. اتصال بکاند پروژه اصلی به پایگاه داده
۷۴. توسعه Schema برای پستها
۷۵. ذخیره پست در پایگاه داده
۷۶. دریافت پست از پایگاه داده
۷۷. دریافت پستهای کاربر از پایگاه داده
۷۸. حذف یک پست از پایگاه داده
۷۹. توسعه Schema برای کاربر
۸۰. توسعه قسمت عضویت کاربر
۸۱. توسعه قسمت ورود کاربر
۸۲. دریافت مشخصات کاربران از پایگاه داده
۸۳. بررسی ارتباط Modelهای کاربر و پست
۸۴. ذخیره پستهای یک کاربر
۸۵. حذف پستهای یک کاربر
۸۶. بررسی بکاند پروژه اصلی
۸۷. ارسال درخواست POST از فرانتاند
۸۸. بررسی خطا CORS
۸۹. مدیریت خطا در فرانتاند
۹۰. ارسال درخواست ورود کاربر
۹۱. دریافت و نمایش تمام کاربران
۹۲. توسعه Custom Hook برای درخواستهای HTTP
۹۳. مدیریت درخواستهای HTTP
۹۴. استفاده از Custom Hook
۹۵. نمایش کاربران با استفاده از Custom Hook
۹۶. افزودن پست
۹۷. استفاده از useHistory برای Redirect کاربر
۹۸. نمایش پستها بر اساس ID کاربر
۹۹. حذف پست
۱۰۰. توسعه لینک پستهای کاربر
۱۰۱. توسعه کامپوننت آپلود تصویر
۱۰۲. استفاده از کامپوننت آپلود تصویر
۱۰۳. استفاده از Multer برای آپلود فایل در بکاند
۱۰۴. فیلتر کردن فایلها در بکاند
۱۰۵. ارسال فایل از فرانتاند به بکاند
۱۰۶. دریافت و ایجاد آدرس فایل در بکاند
۱۰۷. نمایش فایل در فرانتاند
۱۰۸. افزودن آپلود فایل به قسمت اضافه کردن پست
۱۰۹. بررسی نحوه کار قسمت احراز هویت
۱۱۰. استفاده از الگوریتم Hash برای رمزهای عبور
۱۱۱. ورود کاربر با استفاده از رمزهای Hash شده
۱۱۲. توسعه Token در بکاند
۱۱۳. استفاده از Token برای تعیین سطوح دسترسی
۱۱۴. استفاده از Token در قسمت فرانتاند
۱۱۵. حذف پست با استفاده از Token
۱۱۶. ذخیره Token در Local Storage
۱۱۷. استفاده از Local Storage برای Auto Login
۱۱۸. بررسی پروژه دوره جامع MERN Stack – مشاهده ویدیو
دیدگاهها:
brefigh
شهریور 12, 1401 در 5:35 ب.ظ
سلام
وقت بخیر
آخرین به روز رسانی ۲۰ خرداد ۱۳۹۹ هست؟
اگر بله، با توجه به تغییرات زیاد، کاش به روز رسانی انجام بشه
مسعود صدری
شهریور 12, 1401 در 7:17 ب.ظ
سلام
وقت شما هم بخیر.
بله. برنامهای برای به روز رسانی این دوره نداریم.
البته تنها تغییر به روز رسانی React Router بوده که به آموزش جامع React اضافه کردیم.
sajjadr7373
شهریور 10, 1401 در 9:33 ب.ظ
دوره خوب و مفیدی بود و به شکل ساده و روان توضیح دادین.
فقط کاشکی در آخر api های بک اند رو از حالت localhost خارج میکردین. نشون میدادین چطوری به api واقعی تبدیلش کنیم.
مسعود صدری
شهریور 10, 1401 در 11:43 ب.ظ
سلام
خیلی ممنونم.
Mehdi
تیر 6, 1401 در 4:51 ب.ظ
سلام استاد صدری عزیز.
روزتون بخیر.
استاد میشه مبحث سوکت نویسی رو هم تحت عنوان یک آپدیت به دوره اضافه کنید؟!
مسعود صدری
تیر 6, 1401 در 6:03 ب.ظ
سلام
وقتتون بخیر.
فعلا برنامهای برای به روز رسانی این دوره نداریم، احتما مباحث Socket رو به دوره جامع Node اضافه میکنیم.
محمود گیلک
اردیبهشت 26, 1401 در 9:15 ب.ظ
برای این دوره، باید nodejs رو بلد باشیم؟
مسعود صدری
اردیبهشت 26, 1401 در 11:45 ب.ظ
سلام
نه نیازی نیست، مفاهیم Node رو از ابتدا مرور میکنیم.
yusef7884
اردیبهشت 3, 1401 در 11:37 ق.ظ
جناب صدری واقعا دوره مفیدی بود برای من . روش تدریس شما به نظر من بهترینه . به سادترین شکل ممکن مطالب رو به دانشجو انتقال میدید. این ارزش کار شما رو خاص جلو میده . قدردان شما هستم . برای آینده پیش رو چند تا پیشنهاد دارم که براتون حتما میفرستم . سپاس بیکران شهنازی
مسعود صدری
اردیبهشت 3, 1401 در 11:42 ق.ظ
سلام
خیلی ممنونم از لطفتون. قطعا برای من باعث افتخاره.
منتظر پیشنهادهای شما هستم.
مهدی عندلیب
اسفند 16, 1400 در 12:23 ب.ظ
سلام استاد میخواستم بدونم ایا امکانش هست که در اپدیت جدید به این شکل باشه که کاربران بیان یک محتوایی وارد کنند مثلا مشخصات یک کتاب مثلا نام/مولف/عکس/ویدیو/نویسنده/ و ……
بعد زمانی که ارسال میکنند به ادمین پیامک/ایمیل ارسال شود و بعد در سایت به صورت داینامیک بشینه و کاربران دیگه ببینند که این کتاب توسط چه کسی ارسال شده است و بتوانند لایک کنند/کامنت بزارند و بتونیم دسته بندی کتاب هارو داشته باشیم….
فکر کنم با این کار کلی محتوا جدید میتونیم یاد بگیریم
با تشکر از شما
مسعود صدری
اسفند 16, 1400 در 4:30 ب.ظ
سلام
ممنونم برای پیشنهادتون.
لطفا در نظر داشته باشید که پروژه یک دوره تا هر اندازه میتونه پیچیده بشه.
اما هدف اصلی ما این هست که مطالب رو به شکلی بررسی کنیم که دانشجو بعد از اتمام دوره قادر باشه پروژههایی با موضوعات متنوع رو پیاده سازی کنه.
mostafa
دی 26, 1400 در 1:40 ب.ظ
سلام من میخواستم برای این دوره ثبت نام کنم ولی دیدم همین سایت فرانت کست رو با ورد پرس ساختید میخواستم بپرسم چرا از react استفاده نکردید؟
ممنون
مسعود صدری
دی 26, 1400 در 3:41 ب.ظ
سلام
تمرکز من در فرانت کست روی ساختن محتوای آموزشی برنامه نویسی هست.
برای این موضوع باید از پلتفرمی استفاده کرد که به بهترین و سادهترین شکل محتوا رو در اختیار دانشجوها قرار بدیم.
اگر این پلتفرم رو به صورت یک سیستم اختصاصی پیاده سازی کنیم، نیاز به نگهداری و توسعه داره و باعث میشه نتونیم همه زمان رو به ساختن محتوا اختصاص بدیم.
در صورتی که استفاده از وردپرس کمترین زمان رو میگیره و کمک میکنه تا تمرکز ما برای کار اصلیمون بمونه.
پیشنهادم به شما این هست که اگر تصمیم دارید یک تکنولوژی رو یاد بگیرید، برای دلیل یادگیری اون تحقیق کنید.
همین طور برای ثبت نام برای یک دوره بهتر هست سرفصلها، نحوه تدریس و رزومه مدرس رو بررسی کنید.
باز هم اگر سوالی بود در خدمتم.
مهدی حسنی
آذر 25, 1400 در 10:26 ب.ظ
من همچنان منتظر اپدیت بزرگ این دوره هستم
قدیمی شده نسبتن
مفاهیمی جدیدتر میشه اورد و پروژه های نسبتن چالش برانگیز تر
مسعود صدری
آذر 25, 1400 در 11:07 ب.ظ
سلام
به روز رسانی این دوره در برنامه امسالم نیست و احتمالا سال بعد انجام میشه.
البته مفاهیم تغییری نداشتن و به روز رسانی رو با یک پروژه خواهیم داشت.
کاربر
شهریور 24, 1400 در 8:07 ب.ظ
سلام وقتتون بخیر
توی این دوره باید این ۴ مهارت رو حتما بلد باشیم بیایم دوره رو شروع کنیم یا اینکه حین دوره تمامی موارد تدریس میشه؟
مسعود صدری
شهریور 24, 1400 در 10:40 ب.ظ
سلام
بله همه موارد از ابتدا تدریس میشن.
هدف اصلی درک بهتر چالشهای مربوط به توسعه و استفاده از API هست.
A.Mrd
تیر 18, 1400 در 9:34 ب.ظ
و میشه لطف کنید و روی این دوره هم تخفیف بذارید؟
مسعود صدری
تیر 19, 1400 در 5:53 ق.ظ
فعلا برای دورهها تخفیف نداریم.
A.Mrd
تیر 18, 1400 در 9:31 ب.ظ
سلام جناب صدری وقتتون بخیر.
ممنون بابت آموزشهای فوق العادتون.
من آموزش های جاوااسکریپت و ریاکت شما رو دیدم و خیلی به جاوااسکریپت علاقه مند شدم. الان میخوام یک فول استک جاوااسکریپت بشم. به نظر شما این دوره ی MERN رو تهیه کنم یا Node.js؟ میخوام به اکثر مفاهیم node هم مثل ریاکت مسلط بشم.
مسعود صدری
تیر 19, 1400 در 5:53 ق.ظ
سلام
خیلی ممنونم.
خوشحالم که دورهها براتون مفید بودن.
اگر تصمیم دارید مفاهیم Node.js رو مسلط بشید، دوره جامع Node.js رو پیشنهاد میکنم بهتون.
این دوره در حال بازتولید هست و با آخرین به روز رسانی Node.js پیش میریم. همین طور تمرکز زیادی روی چالشهای برنامه نویسی داریم.
دوره جامع MERN Stack برای دوستانی مناسب هست که تصمیم دارند ارتباط React و Node رو بهتر درک کنند و به مفاهیم مربوط به API مسلط بشن.
محمد
تیر 12, 1400 در 10:04 ق.ظ
سلام، استاد عزیز هنوز پروژه اصلی رو اضافه نکردید؟؟
مسعود صدری
تیر 12, 1400 در 12:49 ب.ظ
سلام
این دوره یک پروژه اصلی داره که دموی اون رو در قسمت ۱۱۸ میتونید ببیند.
منظورتون از پروژه اصلی دقیقا چی هست؟