آنچه یاد خواهید گرفت:
ساخت اپلیکیشن غذای React Native
ساخت Rest Api با Node.js
ساخت اپلیکیشن با Expo
پیادهسازی نقشه گوگل با توضیحات کامل
پیش نیازهای دوره
دانش اولیه برنامهنویسی CSS
توضیحات دوره
اپلیکیشن سفارش غذای Foodly که بر پایه React Native ساخته شده، دارای یک بکاند پویا است که با Node.js و Express طراحی شده و اصول محکم برای عملکردهای با کارایی بالا فراهم میکند. از MongoDB برای مدیریت بهینه دادهها استفاده شده و Firebase Admin به طور یکپارچه برای بهبود قابلیتهای مدیریت بکاند ادغام شده است.
نکته: این آموزش تنها بخش فرانتاند کاربر را پوشش میدهد. API بکاند ارائه شده است، اما ما هیچ پنل ادمینی را پوشش نمیدهیم.
فرانتاند که با آخرین نسخه React Native و Expo توسعه یافته، دارای یک رابط کاربری شیک و مدرن است. Google Maps APIs با مهارت برای سرویسهای مبتنی بر مکان مانند مسیرها، مسیریابی و ژئوکدینگ (تبدیل آدرس به مختصات) پیادهسازی شدهاند که موقعیتیابی دقیق کاربران و رستورانها را تضمین میکند. این دقت در موقعیتیابی جغرافیایی، امکان ارائه پیشنهادات شخصیسازی شده و قیمتگذاری دقیق برای تحویل را فراهم میآورد. علاوه بر این، از ماتریس فاصله برای محاسبه دقیق هزینههای تحویل، مسافتها و تخمین زمان استفاده میشود که تجربه کاربری روان و کارآمدی را در اپلیکیشن سفارش غذای ما تضمین میکند.
ویژگیهای اصلی اپلیکیشن
دریافت کلید API گوگل
اتصال Context Providers به اپلیکیشن
دریافت موقعیت مکانی کاربر با expo-location و دسترسی به دادهها با هوک useContext
ایجاد هدر صفحه اصلی
ژئوکدینگ معکوس مختصات برای دریافت موقعیت مکانی و تابع زمان
لیست دستهبندیها با استفاده از Flatlist و کامپوننت Image
لیست انتخاب رستوران با استفاده از Flatlist و کامپوننت Text
کامپوننت عنوانِ قابل استفاده مجدد
پیشنهادات رستورانهای نزدیک
پیشنهادات غذاهای جدید و کامپوننت سریعترینها در نزدیکی شما
Stack Navigator برای بخش غذا
توضیح در مورد پاس دادن دیتا به یک صفحه در داخل یک استک
ایجاد دکمهها، کامپوننتهای متنی و استایلدهی صفحه غذا
لیست تگهای غذا با Flatlist و لیست افزودنیهای خوب با BounceCheckBox
شمارنده برای افزایش تعداد
توابع سبد خرید و سفارشات و آمادهسازی دادهها
مدیریت افزودنیها و افزایش قیمت بر اساس تغییرات در افزودنیها
استفاده از TabView در React Native
تصویر، دکمهها و رتبهبندی صفحه رستوران با استفاده از پکیج رتبهبندی
صفحه رتبهبندی رستوران
زمان تحویل، هزینه و مسافت با استفاده از ماتریس فاصله گوگل
پاس دادن دیتا به صفحه داخل TabView با استفاده از هوک useContext
نقشه گوگل و اتصال اپلیکیشن به نقشههای بومی
دریافت مسیرها با استفاده از Google Direction API
نمایش چندخطیها و نشانگرها روی نقشه
منوی غذای رستوران
صفحه ورود و پاس دادن دیتا به Login Context
تعداد آیتمهای سبد خرید پایدار با استفاده از CartCount Context
کامپوننت غذای دستهبندی
بررسی سیستم بکاند
احراز هویت و مدیریت دسترسی
ادغام با Firebase Admin: پیادهسازی سرویسهای بکاند با استفاده از Firebase Admin SDK برای مدیریت کاربران، نقشها و دسترسیها
احراز هویت مبتنی بر نقش: تعریف چهار نقش مجزا: ادمین، فروشنده، مشتری و راننده
میانافزار پیشرفته: ایجاد توابع میانافزار برای تأیید نقشهای کاربری و اعمال کنترل دسترسی برای مسیرهای حفاظتشده
مدیریت کاربران
ثبتنام و پروفایلها: امکان ثبتنام برای نقشهای مختلف کاربری، که هر کدام مجموعهای منحصربهفرد از فیلدهای داده و قوانین اعتبارسنجی دارند.
پیادهسازی توکنهای وب JSON (JWT) برای احراز هویت امن و مبتنی بر توکن.
استفاده از تکنیکهای رمزنگاری رمز عبور (مانند bcrypt) برای تضمین امنیت اطلاعات کاربری.
عملیات CRUD کاربران: امکان افزودن، بهروزرسانی و بازیابی اطلاعات کاربران
مدیریت آدرس: ارائه قابلیت برای کاربران جهت افزودن، بروزرسانی و بازیابی آدرسها
پیادهسازی منطق برای نگهداری یک آدرس پیشفرض برای هر کاربر، با قابلیت تغییر تنظیمات پیشفرض
ویژگیهای مخصوص فروشندگان
ثبتنام فروشنده: راهاندازی فرآیند ثبتنام برای فروشندگان، شامل جمعآوری اطلاعات لازم و اعتبارسنجی
میانافزار فروشنده: اطمینان از اینکه تنها فروشندگان میتوانند به مسیرهای مدیریت رستوران و آیتمهای غذایی خود دسترسی داشته باشند.
مدیریت غذا: توسعه اندپوینتها برای فروشندگان جهت آپلود و مدیریت آیتمهای غذایی خود
پیشنهادات و محتوای پویا
پیشنهادات رستوران مبتنی بر مکان: ایجاد اندپوینتهایی که رستورانها را بر اساس موقعیت فعلی مشتریان به آنها پیشنهاد میدهند.
پیشنهادات غذای پویا: توسعه الگوریتمهایی برای پیشنهاد آیتمهای غذایی به کاربران بر اساس موقعیت مکانی آنها
زمان آمادهسازی و تحویل: معرفی منطقی برای پیشنهاد غذاهایی که میتوانند در کوتاهترین زمان ممکن آماده و تحویل داده شوند، با در نظر گرفتن موقعیت مکانی کاربر
سبد خرید و پردازش سفارش
مدیریت سبد خرید: امکان افزودن و حذف آیتمها از سبد خرید توسط کاربران
امکان تنظیم تعداد آیتمهای سبد خرید توسط کاربران
بروزرسانی و بازگرداندن تعداد آیتمهای سبد خرید هر زمان که تغییری در آن ایجاد شود.
ایجاد و مدیریت سفارش: ارائه قابلیت برای کاربران جهت ایجاد سفارش و سفارشیسازی آن با افزودنیها
بروزرسانی سفارشات بر اساس وضعیت پرداخت و تحویل
دستهبندیها و پیشنهادات
مدیریت دستهبندی: امکان افزودن، بروزرسانی و حذف دستهبندیهای غذا توسط ادمین
پیشنهادات دستهبندی: استفاده از پایپلاینهای تجمیع برای ارائه پیشنهادات تصادفی دستهبندی به کاربران
قابلیتهای مخصوص رانندگان
ثبتنام و محدودیتهای راننده: ایجاد فرآیند ثبتنام برای رانندگان و اطمینان از اینکه میانافزار، دسترسی آنها را به وظایف مرتبط با راننده محدود میکند.
این دوره برای چه کسانی مناسب است؟
برای افراد مبتدی