راهنما: این فایل نقشه راه کامل اپلیکیشن Ninja Trips است.
هر بار که میخواهید اپ را بهبود دهید، از همین لیست استفاده کنید.
✅ = تکمیل شده | 🔲 = هنوز انجام نشده
- مدل
Tripبا پشتیبانی کامل چندزبانه (titleEn/titleFa, descriptionEn/descriptionFa) - مدل
User(نام، ایمیل، آواتار) - مدل
BookingباtoMap()/fromMap()برای ذخیرهسازی - 🔲 مدل
Review(امتیاز، متن، تاریخ، نام کاربر) - 🔲 مدل
Notification(عنوان، متن، تاریخ، خوانده شده؟)
-
AppProvider— تم، زبان، علاقهمندیها، رزروها، پروفایل، تنظیمات - ذخیرهسازی با
SharedPreferences(تم، زبان، علاقهمندیها، رزروها، واحد پول، نوتیفیکیشن) - متدهای
toggleFavorite(),addBooking(),cancelBooking() - متدهای
updateProfile(),setCurrency(),setNotifications() - 🔲
ReviewProvider— مدیریت نظرات کاربران - 🔲
AuthProvider— سیستم ورود/ثبت نام واقعی (Firebase Auth یا local) - 🔲 اضافه کردن
NotificationProviderبرای اعلانهای درون برنامهای
-
trip_data.dart— ۸ سفر با اطلاعات دوزبانه واکنشی - 🔲 اضافه کردن حداقل ۱۵ سفر جدید با تصاویر واقعی
- 🔲 دستهبندی "تاریخی" (Historical) با سفرهای مرتبط
- 🔲 اضافه کردن سفرهای ایرانی (اصفهان، شیراز، مشهد، کیش، …)
- 🔲 جدا کردن دادهها به فایلهای JSON یا یک backend واقعی
- لیست سفرهای محبوب (افقی)
- فیلتر بر اساس دستهبندی
- Grid نمایش همه سفرها
- کارت خوشآمد با نام کاربر
- 🔲 دکمه "See All" در Popular Trips با صفحه مجزا
- 🔲 بنر تبلیغاتی چرخشی (Carousel Banner) برای سفرهای ویژه
- 🔲 بخش "Recently Viewed" برای سفرهای اخیراً مشاهده شده
- 🔲 Pull-to-Refresh برای بارگذاری مجدد
- جستجوی زنده با فیلتر روی عنوان، مکان، دستهبندی، توضیحات
- دکمه پاک کردن جستجو (X)
- نمایش تعداد نتایج
- حالت "هیچ نتیجهای یافت نشد"
- 🔲 فیلتر پیشرفته (محدوده قیمت، امتیاز، مدت سفر)
- 🔲 ذخیره تاریخچه جستجوهای اخیر
- 🔲 پیشنهادهای جستجو (Suggestions) هنگام تایپ
- نمایش واقعی از provider (نه hardcode)
- حذف از علاقهمندی با یک کلیک
- حالت خالی با پیام راهنما
- رفتن به جزئیات سفر
- 🔲 مرتبسازی (بر اساس قیمت، امتیاز، نام)
- 🔲 اشتراکگذاری سفر (Share)
- تصویر hero با SliverAppBar + گرادیان
- دکمه علاقهمندی (قلب) در AppBar
- نمایش دستهبندی، امتیاز، مدت سفر
- نمایش ویژگیها با آیکون تیک
- دکمه "Book Now" که صفحه رزرو را باز میکند
- بج "Popular"
- 🔲 بخش نظرات/امتیازدهی کاربران
- 🔲 عکسهای گالری (چندین عکس)
- 🔲 اشتراکگذاری سفر
- 🔲 نقشه موقعیت مکانی (google_maps_flutter)
- 🔲 سفرهای مشابه (Similar Trips)
- فرم کامل با نام، ایمیل، تاریخ سفر، تعداد مسافران
- Date Picker برای انتخاب تاریخ
- محاسبه قیمت کل به صورت لحظهای
- خلاصه سفر در بالای صفحه
- Validation فرم
- دیالوگ تأیید موفق
- 🔲 انتخاب نوع اتاق / کابین
- 🔲 انتخاب بیمه سفر
- 🔲 درگاه پرداخت (payment gateway)
- 🔲 ارسال تأیید رزرو به ایمیل
- لیست همه رزروها با جزئیات
- نمایش وضعیت (تأیید شده، لغو شده، در انتظار)
- امکان لغو رزرو با تأیید
- 🔲 دانلود بلیط به صورت PDF
- 🔲 اشتراکگذاری اطلاعات رزرو
- نمایش نام و ایمیل از provider
- آمار واقعی (تعداد رزرو، علاقهمندیها)
- دکمه ویرایش پروفایل
- منوی کامل با آیکونها
- دکمه خروج با تأیید
- لینک به علاقهمندیها، رزروها، تنظیمات، مرکز کمک
- 🔲 آپلود عکس پروفایل
- 🔲 نمایش تعداد کشورهای بازدید شده
- 🔲 بجهای دستاورد (Achievements)
- 🔲 تاریخچه سفرهای گذشته
- ویرایش نام و ایمیل
- ذخیره در provider و SharedPreferences
- Validation فرم
- 🔲 ویرایش شماره تلفن
- 🔲 ویرایش تاریخ تولد
- 🔲 آپلود و کراپ عکس پروفایل
- تغییر تم (روشن/تاریک/سیستم) با ذخیرهسازی
- تغییر زبان (فارسی/انگلیسی) با ذخیرهسازی
- تنظیم نوتیفیکیشن با ذخیرهسازی
- انتخاب واحد پول (USD, EUR, GBP, IRR, AED)
- لینکهای قوانین، حریم خصوصی، مرکز کمک
- 🔲 صفحه کامل "درباره ما"
- 🔲 صفحه "قوانین و مقررات" با متن کامل
- 🔲 صفحه "حریم خصوصی" با متن کامل
- 🔲 تنظیم اندازه فونت (دسترسیپذیری)
- 🔲 صفحه ورود/ثبتنام (Sign In / Sign Up)
- 🔲 ورود با گوگل
- 🔲 ورود با شماره تلفن (OTP)
- 🔲 فراموشی رمز عبور
- 🔲 مدل Review با نام کاربر، امتیاز، متن، تاریخ
- 🔲 ReviewProvider برای مدیریت نظرات
- 🔲 صفحه نوشتن نظر پس از سفر
- 🔲 نمایش نظرات در صفحه جزئیات
- 🔲 امتیاز کلی از میانگین نظرات
- 🔲 صفحه اعلانها (NotificationsScreen)
- 🔲 اعلان هنگام تأیید رزرو
- 🔲 اعلان یادآوری قبل از سفر
- 🔲 push notifications با firebase_messaging
- 🔲 اضافه کردن پکیج google_maps_flutter
- 🔲 نمایش موقعیت مقصد در صفحه جزئیات
- 🔲 صفحه نقشه با همه مقاصد
- 🔲 اتصال به Firebase Firestore
- 🔲 مدیریت دیتا از cloud به جای local
- 🔲 آپلود تصاویر به Firebase Storage
- 🔲 API برای قیمتهای لحظهای
- 🔲 سیستم پرداخت (Stripe / Zarinpal)
- 🔲 انیمیشن hero برای عکس کارت→جزئیات
- 🔲 انیمیشن fade-in هنگام لود صفحه
- 🔲 انیمیشن دکمه علاقهمندی (قلب)
- 🔲 Skeleton loading هنگام بارگذاری
- 🔲 صفحات Onboarding (۳-۴ اسلاید) برای کاربران جدید
- 🔲 Splash Screen با لوگو
- 🔲 کشیدن به پایین برای رفرش (Pull-to-Refresh)
- 🔲 بارگذاری lazy برای لیستهای بزرگ
- 🔲 حالت آفلاین با cache محلی
- 🔲 پشتیبانی از RTL کامل برای زبان فارسی
- 🔲 اضافه کردن فونت فارسی (Vazirmatn) برای حالت RTL
- 🔲 اضافه کردن فونت انگلیسی (Poppins)
- 🔲 Unit Tests برای Provider ها
- 🔲 Widget Tests برای صفحات اصلی
- 🔲 Integration Tests (end-to-end)
- 🔲 تنظیم CI/CD با GitHub Actions
- 🔲 انتشار در Google Play Store
- 🔲 انتشار در Apple App Store
- 🔲 Crashlytics برای ردیابی خطاها
- 🔲 Analytics برای تحلیل رفتار کاربر
dependencies:
# UI
cached_network_image: ^3.3.1 # بارگذاری تصاویر از اینترنت
shimmer: ^3.0.0 # skeleton loading
smooth_page_indicator: ^1.1.0 # indicator برای onboarding
lottie: ^3.1.0 # انیمیشنهای Lottie
flutter_svg: ^2.0.10 # آیکونهای SVG
# State & Data
go_router: ^13.2.0 # routing پیشرفته
flutter_bloc: ^8.1.5 # جایگزین provider برای state پیچیده
hive_flutter: ^1.1.0 # database محلی سریعتر
# Auth & Backend
firebase_core: ^3.3.0
firebase_auth: ^5.1.4
cloud_firestore: ^5.2.1
firebase_storage: ^12.1.2
firebase_messaging: ^15.0.3
# Maps
google_maps_flutter: ^2.6.1
geolocator: ^12.0.0
# Utils
image_picker: ^1.1.2 # انتخاب عکس
pdf: ^3.11.1 # تولید PDF بلیط
share_plus: ^10.0.0 # اشتراکگذاری
url_launcher: ^6.3.0 # باز کردن لینک
intl: ^0.19.0 # فرمت تاریخ/ارز
# Payment
# stripe_payment یا zarinpal_paymentآخرین بهروزرسانی: ۲۰ آوریل ۲۰۲۶