جنگو و ریاکت - ساخت یک وبسایت املاک مبتنی بر لوکیشن
✅ سرفصل و جزئیات آموزش
آنچه یاد خواهید گرفت:
- اتصال ریاکت و جنگو
- ساخت API با جنگو Rest Framework
- نقشههای تعاملی با React-Leaflet
- ایجاد کوئریهای فضایی با Geodjango و PostGIS
- استقرار یک اپلیکیشن فولاستک با Digital Ocean و Namecheap
- مبانی ریاکت
- مبانی Material UI
- مبانی React-Leaflet
- احراز هویت بکاند با Djoser
- نصب Nginx و Gunicorn
- راهاندازی گواهی SSL
- ذخیرهسازی فایلهای رسانه با Digital Ocean Spaces
- Django storages و Boto 3
پیشنیازهای دوره
- باید با مبانی توسعه وب آشنا باشید: اچ تی ام ال، سی اس اس و جاوا اسکریپت
- همچنین باید پایتون را بلد باشید.
- آشنایی اولیه با جنگو هم مفید خواهد بود.
- تفکر منطقی
توضیحات دوره
در این دوره پروژهمحور، یک وبسایت املاک مبتنی بر لوکیشن میسازیم. این پروژه یک اپلیکیشن وب فولاستک خواهد بود که در آن جنگو بکاند را و ریاکت فرانتاند را قدرت میدهد.
فرانتاند را خیلی سریع با Material UI، کتابخانهای بسیار ساده و شهودی در ریاکت برای ساخت کامپوننتهای رابط کاربری، میسازیم. در طول دوره از تعداد زیادی کامپوننت Material UI استفاده میکنیم که بهراحتی آنها را استایلدهی خواهیم کرد.
سپس، API را با Django Rest Framework (DRF) میسازیم و با ریاکت به API درخواستها را ارسال میکنیم.
Leaflet یک کتابخانه جاوا اسکریپت برای ساخت نقشههای تعاملی است. با قرار دادن آگهیهای ملک روی نقشه، یک جنبه جغرافیایی به این پروژه اضافه میکنیم. این کار را با React-Leaflet انجام میدهیم که یک اتصال بین ریاکت و Leaflet فراهم میکند.
همچنین، پایگاه داده PostgreSQL را با افزودن افزونه PostGIS به آن از نظر فضایی هوشمند میکنیم. بنابراین، علاوه بر ایجاد کوئریهای معمولی در پایگاه داده، کوئریهای فضایی (اطلاعات هندسی مانند فاصله) هم ایجاد میکنیم.
همچنین احراز هویت کاربران را با کتابخانه Djoser پوشش میدهیم. به کاربران نهایی اجازه میدهیم از طریق فرانتاند آگهیهای ملک را اضافه، حذف یا بروزرسانی کنند. همچنین خطاهای سمت کلاینت و سمت سرور را در فرمها مدیریت خواهیم کرد.
پس از تکمیل وبسایت در ماشین محلی، آن را با Digital Ocean و Namecheap مستقر میکنیم. در زمان استقرار، کارهای زیر را انجام میدهیم:
- پروژه را در گیتهاب قرار میدهیم.
- برای بکاند و فرانتاند نام دامنه تهیه میکنیم.
- یک صندوق ایمیل در «private email» راهاندازی میکنیم.
- یک گواهی SSL را راهاندازی میکنیم.
- Nginx و Gunicorn را نصب و راهاندازی میکنیم.
- فایلهای رسانه را در فضای ابری با Digital Ocean Spaces ذخیره میکنیم.
ما از موارد زیر استفاده خواهیم کرد:
- ویندوز
- پایتون 3.9
- جنگو 4.0
- ریاکت 17 (برای ریاکت 18 بروزرسانی شده و کاملاً بدون مشکل کار میکند؛ برای جزئیات بیشتر، درسهای بخش جایزه را ببینید)
- Material UI 5
موضوعات تحت پوشش عبارتند از:
- مبانی ریاکت
- هوکهای ریاکت (useState ،useEffect ،useContext ،useReducer ،useRef و useMemo)
- مبانی Material UI
- استایلدهی با Material UI
- مبانی React-Leaflet
- هوکهای React-Leaflet (مثال: useMap)
- ساخت اندپوینتهای API با Django Rest Framework
- احراز هویت با Djoser
- سیگنالهای جنگو
- ایجاد کوئریهای فضایی با Geodjango و PostGIS
- محاسبه فاصلهها
- استقرار جنگو
- استقرار ریاکت
- ایجاد یک سرور راه دور
پس از تکمیل این دوره عمیق و پروژهمحور، خواهید دانست چگونه جنگو و ریاکت را به هم متصل کنید. همچنین یاد میگیرید چگونه از یک پایگاه داده آگاه به لوکیشن یا جغرافیایی بهطور کامل بهره ببرید.
این دوره برای چه کسانی مناسب است؟
- توسعهدهندگانی که میخواهند مهارتهای خود را به سطح بالاتری برسانند.
- دانشجویانی که میخواهند پروژههای واقعی بسازند.
- توسعهدهندگانی که میخواهند با نقشهها کار کنند.
- علاقهمندان به نقشه
جنگو و ریاکت - ساخت یک وبسایت املاک مبتنی بر لوکیشن
-
بررسی دوره 02:29
-
آنچه خواهیم ساخت 10:13
-
طرح کلی دوره 03:32
-
شروع کار با ریاکت 05:31
-
کامپوننتهای ریاکت 06:26
-
معرفی JSX 10:35
-
اطلاعات بیشتر درباره کامپوننتهای ریاکت 02:54
-
props در ریاکت 04:04
-
حلقهزنی در یک آرایه از داده 05:34
-
state (هوک useState) 06:00
-
مدیریت رویدادها 05:45
-
اطلاعات بیشتر درباره state 05:00
-
ناوبری با react-router-dom 11:16
-
کار با لینکها 03:08
-
نتیجهگیری بخش 00:29
-
مقدمه 02:04
-
شروع کار با Material UI 04:57
-
ویژگیهای کامپوننتهای MUI 03:53
-
کامپوننت تایپوگرافی 06:45
-
استایلدهی با Material UI 07:03
-
طرحبندی صفحه با Material UI 09:40
-
اطلاعات بیشتر درباره container grid 04:10
-
ساخت صفحه اصلی: مقدمه 01:12
-
ساخت صفحه اصلی: هدر 09:50
-
ساخت بقیه صفحه اصلی 07:49
-
سازماندهی مجدد کد 06:34
-
نتیجهگیری بخش 00:19
-
React-Leaflet چیست؟ 01:46
-
نصب React-Leaflet 08:15
-
تغییر طرحبندی صفحه «آگهیها» 03:46
-
نشانگر نقشه 05:56
-
پاپآپ نشانگر 03:38
-
ذخیره موقعیت نشانگر در state 04:46
-
نمایش آگهیها روی نقشه 08:58
-
نمایش آگهیها در کارتهای MUI 12:49
-
کشیدن و ایمپورت شکلها در React-Leaflet 06:35
-
مقدمه و راهاندازی محیط مجازی 02:53
-
نصب جنگو 02:21
-
راهاندازی مدل آگهی 09:58
-
افزودن فیلد لوکیشن به مدل آگهی 03:53
-
نصب GeoDjango 05:20
-
راهاندازی پایگاه داده مکانی (PostgreSQL و PostGIS) 03:44
-
راهاندازی مدل کاربر سفارشی 06:53
-
ایجاد آگهیهای ملک در پنل ادمین 17:17
-
ایجاد اندپوینت API برای آگهیهای ملک 09:48
-
مقدمه و راهاندازی Django Cors Headers 02:11
-
ارسال درخواست از فرانتاند به بکاند 04:09
-
معرفی هوک useEffect 08:08
-
ارسال درخواست با Axios و هوک useEffect 10:42
-
روش درست واکشی داده با ریاکت 10:30
-
افزودن فیلدهای تصویر به مدل آگهی 08:43
-
رندر تصاویر در ریاکت 04:38
-
مقدمه و نصب Djoser 05:22
-
ساخت صفحه ثبتنام 13:46
-
ساخت صفحه ورود 03:54
-
ثبتنام کاربر (بخش 1) 11:52
-
ثبتنام کاربر (بخش 2) 07:25
-
یک روش دیگر برای مدیریت state در ریاکت 17:17
-
استفاده از immer-reducer در فایل ثبتنام 09:20
-
ورود به حساب (بخش 1) 06:46
-
ورود به حساب (بخش 2) 06:14
-
رندر شرطی هدر (بخش 1) 19:35
-
رندر شرطی هدر (بخش 2) 10:02
-
خروج از حساب (بخش 1) 04:53
-
خروج از حساب (بخش 2) 10:41
-
مقدمه و بروزرسانی مدل آگهیها 05:50
-
ساخت صفحه «افزودن ملک» 18:32
-
قرار دادن نقشه در فرم 36:50
-
آپلود تصاویر 10:55
-
نهاییسازی فرم 15:51
-
ارسال درخواست برای افزودن آگهی ملک (بخش 1) 09:32
-
ارسال درخواست برای افزودن آگهی ملک (بخش 2) 04:41
-
تغییر صفحه «آگهیها» 13:53
-
مقدمه 00:45
-
ایجاد مدل پروفایل 11:48
-
استفاده از سیگنالهای جنگو برای ایجاد پروفایل برای هر کاربر 07:11
-
اعمال محدودیتها در صفحه «افزودن ملک» 19:53
-
ساخت صفحه پروفایل (بخش 1) 18:30
-
ساخت صفحه پروفایل (بخش 2) 17:44
-
ساخت صفحه پروفایل (بخش 3) 17:07
-
تغییر صفحه «آگهیها» 01:14
-
ساخت صفحه «آژانسها» 12:58
-
نمایش تعداد آگهیها برای هر کاربر 09:56
-
ساخت صفحه «جزئیات آژانس» 19:05
-
مقدمه و ایجاد کامپوننت 06:17
-
راهاندازی کامپوننت جزئیات آگهی 07:32
-
ساخت اسلایدر تصاویر 15:44
-
نمایش اطلاعات بیشتر درباره آگهی ملک 14:48
-
نمایش اطلاعات مربوط به فروشنده 06:01
-
نمایش نقاط مورد علاقه روی نقشه (بخش 1) 07:46
-
نمایش نقاط مورد علاقه روی نقشه (بخش 2) 08:23
-
نمایش نقاط مورد علاقه روی نقشه (بخش 3) 13:06
-
نمایش نقاط مورد علاقه روی نقشه (بخش 4) 04:10
-
حذف یک ملک از فرانتاند 07:25
-
بروزرسانی یک ملک از فرانتاند 17:44
-
مقدمه و بازخورد صفحه ورود 09:08
-
بازخورد صفحه ثبتنام 03:12
-
بازخورد صفحه «افزودن ملک» 03:26
-
بازخورد بروزرسانی پروفایل 03:03
-
بازخورد بروزرسانی آگهی 03:02
-
بازخورد حذف آگهی 02:54
-
بازخورد خروج کاربر 02:55
-
مقدمه و خطاها در فرم ورود 07:37
-
خطاهای سمت کلاینت در فرم ثبتنام (نام کاربری) 07:52
-
خطاهای سمت کلاینت در فرم ثبتنام (ایمیل) 03:56
-
خطاهای سمت کلاینت در فرم ثبتنام (رمز عبور) 02:58
-
خطاهای سمت کلاینت در فرم ثبتنام (تکرار رمز عبور) 03:47
-
خطاهای سرور در فرم ثبتنام (نام کاربری یا رمز عبور یکتا) 06:54
-
خطاهای سرور در فرم ثبتنام (اعتبارسنجی رمز عبور) 10:20
-
خطاها در فرم «افزودن ملک» 20:40
-
مقدمه 00:54
-
مقداردهی اولیه پروژه با گیت 03:10
-
ارسال پروژه بکاند به گیتهاب 02:03
-
راهاندازی سرور راه دور با Digital Ocean 05:47
-
ایجاد یک کاربر جدید در سرور راه دور 06:22
-
راهاندازی فایروال 01:01
-
راهاندازی جنگو در سرور راه دور 06:48
-
ایجاد فایل «تنظیمات» در سرور راه دور 09:43
-
اجرای مهاجرتها در سرور راه دور 05:25
-
راهاندازی Gunicorn 05:33
-
راهاندازی Nginx 04:33
-
راهاندازی دامنه برای بکاند 03:37
-
افزودن دامنه به سرور راه دور 02:26
-
راهاندازی دامنه برای فرانتاند 07:45
-
بروزرسانی URLها در درخواستها (بخش 1) 03:03
-
راهاندازی صندوق Private Email و گواهی SSL 15:15
-
بروزرسانی URLها در درخواستها (بخش 2) 05:38
-
Digital Ocean Spaces و Django storages 09:37
-
فشردهسازی تصاویر با Pillow 08:23
-
فیکس کردن مشکل رفرش one-click-app در Digital Ocean 02:02
-
بروزرسانی فرایند ثبتنام 18:46
-
پاکسازی کد 03:23
-
معرفی prop مربوط به SX در MUI (کاربردهای آن) 16:24
-
بروزرسانی دوره: تغییرات دوره (prop مربوط به SX) 04:20
-
polygonهای اختصاصی برای اپلیکیشن React-Leaflet خود دریافت کنید 15:27
مشخصات آموزش
جنگو و ریاکت - ساخت یک وبسایت املاک مبتنی بر لوکیشن
- تاریخ به روز رسانی: 1405/04/02
- سطح دوره:مقدماتی
- تعداد درس:135
- مدت زمان :17:43:09
- حجم :8.61GB
- زبان:دوبله زبان فارسی
- دوره آموزشی:AI Academy