24 KiB
24 KiB
📋 Backlog & Technical Implementation Tasks (Canina Project)
این سند شامل شکست کامل، دقیق و مهندسی شده تمام درخواستهای ۱۰ گانه کاربر به تاسکهای اجرایی تکی (Atomic Tasks) در بخشهای Frontend (User Site & Admin Panel)، Backend (Prisma & NestJS/Express) و Database میباشد.
📍 بخش ۱: فرم تماس با ما & مدیریت اطلاعات تماس و نمایندگی
- TASK-1.1 [DB & Backend]: ایجاد مدل/جدول
ContactSubmissionدر schema.prisma شامل فیلدهایnamephoneemailsubjectmessagestatus(PENDING, IN_PROGRESS, RESOLVED)adminNotesوcreatedAt. - TASK-1.2 [Backend]: پیادهسازی API ثبت فرم تماس
POST /api/contactبه همراه اعتبارسنجی فیلدها و ثبت در دیتابیس. - TASK-1.3 [Backend & SMS]: ارسال SMS تایید ثبت به کاربر (الگوی ثبت پیام) + ارسال SMS اطلاعرسانی به مدیر سیستم جهت پیگیری سریع.
- TASK-1.4 [DB & Backend]: ایجاد مدل/جدول
ContactInfoدر دیتابیس برای ذخیرهسازی داینامیک اطلاعات دفتر مرکزی، تلفنها، ایمیل، ساعات کاری و آدرس با قابلیت ویرایش تایتلها و آیکونها. - TASK-1.5 [Admin Panel]: ساخت صفحه لیست پیامهای تماس با ما در پنل ادمین (مشاهده جزئیات، تغییر وضعیت پیگیری و درج یادداشت ادمین).
- TASK-1.6 [Admin Panel]: مدیریت کامل اطلاعات تماس و نمایندگی در پنل ادمین (ویرایش آدرس، تلفن، ایمیل، ساعات پاسخگویی، آیکونها و متون راهنما).
- TASK-1.7 [Frontend Site]: متصل کردن فرم تماس با ما در سایت اصلی به API و فراخوانی داینامیک اطلاعات تماس دفتر مرکزی از دیتابیس.
📍 بخش ۲: ارتقا و بهبودهای گسترده پنل ادمین (Admin Panel Enhancements)
📤 اپلود مالتیمدیا و سئو (Media, Attachments & SEO)
- TASK-2.1 [Admin Panel UI]: اضافه کردن قابلیت Drag & Drop به تمامی بخشهای آپلود تصویر و فایل در پنل ادمین.
- TASK-2.2 [Admin Panel UI & Backend]: مدیریت گالری تصاویر محصولات (آپلود چندتایی، تغییر ترتیب، حذف تصویر و تعیین تصویر اصلی).
- TASK-2.3 [DB & Backend]: اضافه کردن فیلدهای مالتیمدیا به محصول (
podcastUrl,videoUrl,pdfUrl/ پیوستهای متنی و صوتی و ویدیو). - TASK-2.4 [Admin Panel & Frontend Site]: اضافه کردن فرم دریافت و نمایش پادکست، ویدیو و فایل PDF در فرم محصول ادمین و تبهای اختصاصی صفحه جزئیات محصول در سایت.
- TASK-2.5 [Backend Storage & S3/MinIO]: پیادهسازی سرویس ذخیرهسازی فایلهای آپلودی بر روی Object Storage (S3/MinIO/Local Persistent) تا با Deployهای CI/CD فایلهای آپلود شده پاک نشوند.
- TASK-2.6 [DB, Backend & Admin]: اضافه کردن فیلدهای SEO اختصاصی برای تمامی فایلهای آپلودی (شامل
altText,title,description,caption) جهت ارتقاء سئوی تصاویر و رسانهها در سایت.
💰 اصلاح منطق قیمتگذاری (Price Logic Cleanup)
- TASK-2.7 [Admin Panel Cleanup]: حذف فیلد زاید "نمایش قیمت (متنی)" از فرمهای محصول و فرمتبندی خودکار و استاندارد قیمت تومان بر اساس عدد اصلی
priceدر فرانتاند سایت.
🎨 استانداردسازی کامپوننتها و UI پنل ادمین
- TASK-2.8 [Admin Panel UI]: بازطراحی و استانداردسازی دکمههای پنل ادمین (دکمههای انتخاب از گالری، حذف، ثبت و...) به صورت کامپوننت Reusable با رعایت
whitespace-nowrapو استایل یکپارچه. - TASK-2.9 [Admin Panel UI]: بازطراحی کامپوننت Pagination در تمام صفحات ادمین (شامل صفحه اول/آخر، ۲ صفحه قبل/بعد، صفحه فعلی و قابلیت تایپ شماره صفحه جهت هدایت مستقیم).
- TASK-2.10 [Admin Panel UI]: اضافه کردن Pagination استاندارد به تمام بخشهای مدیریت گالری رسانهها.
🔐 رفع باگهای دسترسی و راهنماهای ادمین (Permissions & Tooltips)
- TASK-2.11 [Admin Panel & Backend]: بررسی و رفع خطای دسترسی "دسترسی شما به این بخش از پنل ادمین مجاز نمیباشد" در بخش CMS و بخش درخواستهای B2B.
- TASK-2.12 [Admin Panel UX]: اضافه کردن آیکون علامت سوال (Help Tooltip) و راهنمای شفاف کنار تمامی فیلدها و بخشهای پنل ادمین جهت راهنمایی کامل ادمین.
- TASK-2.13 [Admin Panel UX]: حذف کامل
alert()های مرورگر و جایگزینی آنها با Toastهای مدرن و Modalهای Confirmation قبل از تمامی عملیاتهای حساس (حذف، ویرایش، تغییر وضعیت).
⚙️ سیستم تنظیمات پیشرفته سایت (Advanced Site Settings)
- TASK-2.14 [DB & Backend Settings]: ایجاد ساختار جامع تنظیمات سایت شامل حالت Maintenance Mode واقعی (با صفحه اختصاصی)، فعال/غیرفعالسازی فروشگاه (تبدیل به کاتالوگ بدون قابلیت خرید).
- TASK-2.15 [Admin Panel Settings]: پنل جامع مدیریت هویت برند (آدرسهای فروشگاه، ایمیلها، شبکههای اجتماعی، لوگو، اینماد، تم رنگی، تایپوگرافی).
- TASK-2.16 [DB & Admin Content Management]: تبدیل "متون رابط کاربری" به "مدیریت جامع رابط کاربری" با قابلیت جستجوی متنی بر اساس کلید/مقدار و ویرایش فونت، رنگ، تصاویر و آیکونهای هر بخش.
🎥 ویدیوها، پزشکان و پروفایل ادمین (Videos, Doctors & Admin Profile)
- TASK-2.17 [Backend & Admin]: ارتقاء مدیریت ویدیوها با قابلیت آپلود مستقیم فایل ویدیو روی سرور/S3 علاوه بر لینکهای Iframe.
- TASK-2.18 [DB, Backend & Admin]: پیادهسازی کامل CRUD مدیریت پزشکان/متخصصان (شامل بیوگرافی، تصویر، تخصص) و اتصال پزشک به ویدیوها، مقالات وبلاگ و نظرات کارشناسی محصولات.
- TASK-2.19 [Admin Header UI]: حذف دکمه خروج از Sidebar و اضافه کردن Dropdown کاربر در بالای صفحه سمت چپ (Header) شامل پروفایل، تنظیمات و خروج.
- TASK-2.20 [Admin Realtime Notifications]: پیادهسازی سیستم اعلانهای واقعی/Realtime ادمین در هدر (ثبت سفارش جدید، نظر جدید، درخواست B2B، درخواست برداشت کیف پول و هشدارهای موجودی).
📊 داشبورد و آمار واقعی (Dashboard Analytics Fixes)
- TASK-2.21 [Admin Dashboard]: اصلاح نمودار دستهبندی محصولات بر اساس دیتای واقعی محصولات (سگ، گربه یا هر دو).
- TASK-2.22 [Admin Dashboard]: اصلاح شمارش تعداد بازدیدهای روزانه بر اساس آمار واقعی بازدیدی که لاگ میشود.
- TASK-2.23 [Admin Knowledge Base]: قابلیت انتخاب و کم/زیاد کردن لیست محصولات مرتبط در فرم ویرایش دانشنامه.
🔔 پوش نوتیفیکیشن و سیستم CRM (Push Notifications & CRM)
- TASK-2.24 [Backend & Admin]: پیادهسازی سیستم Push Notification و امکان ارسال پیام عمومی یا گروهی به کاربران از پنل ادمین.
- TASK-2.25 [Backend CRM & SMS]: پیادهسازی ماژول CRM هوشمند برای تحلیل رفتار کاربر (ارسال SMS ترغیب به خرید، بازگشت به سبد خرید رها شده و کمپینهای تبلیغاتی).
📍 بخش ۳: استانداردسازی دکمه بازگشت (Standard Back Button)
- TASK-3.1 [Frontend Site UI]: پیادهسازی کامپوننت استاندارد و اتمیک BackButton با استفاده از
router.back()و حفظ دقیق موقعیت Scroll صفحه قبلی کاربر.
📍 بخش ۴: پایش هوشمند مصرف مکملها (Smart Supplement Tracker Logic)
- TASK-4.1 [Backend & Frontend Logic]: بررسی، اصلاح و شفافسازی الگوریتم پایش هوشمند مصرف مکملها (محاسبه زمان اتمام دوره بر اساس وزن حیوان، دوز مصرفی و ارسال هشدار SMS یادآوری تمدید خرید).
📍 بخش ۵: داشبورد کاربر و کیف پول (User Dashboard & Wallet Security)
- TASK-5.1 [Frontend Protection]: جلوگیری از دسترسی کاربران غیرلاگین به صفحه داشبورد و هدایت خودکار به صفحه ورود.
- TASK-5.2 [Frontend Wallet UX]: رفع مشکل نمایش پیام موفقیت کاذب هنگام شارژ کیف پول بدون لاگین و بهینهسازی سرعت فرآیند شارژ.
- TASK-5.3 [Frontend & Backend Wallet]: اصلاح استایل و Layout شارژ کیف پول برای اعداد بزرگ + فعالسازی منطق دکمه درخواست برداشت وجه (ثبت درخواست + ارسال SMS به کاربر و مدیر + مدیریت در پنل ادمین).
- TASK-5.4 [Frontend UX]: بررسی و رفع نمایش نشان "حساب تایید شده" برای کاربران غیر لاگین.
📍 بخش ۶: مدیریت داینامیک آمار خیرخواهانه (Charity Counter Management)
- TASK-6.1 [DB, Backend & Admin]: اضافه کردن قابلیت مدیریت داینامیک آمار کمکهای خیرخواهانه (تعداد وعدههای غذایی تامین شده، تعداد درمانها و...) در پنل ادمین و نمایش دیتای واقعی در سایت.
📍 بخش ۷: بازطراحی صفحه ورود/ثبتنام (Login/Register Redesign)
- TASK-7.1 [Frontend Site UI]: بازطراحی چشمنواز و رفع ایرادات UX/UI صفحه ورود و ثبتنام کاربر.
📍 بخش ۸: رفع باگ عنوان صفحه محصول (Product Page Title Fix)
- TASK-8.1 [Frontend Site Fix]: رفع باگ عنوان صفحه محصول (عدم نمایش متن "محصول یافت نشد!" هنگام لود شدن دیتای محصول).
📍 بخش ۹: تنظیمات وبسرویس ملیپيامک و الگوها (SMS Service Patterns)
- TASK-9.1 [Backend SMS Service]: ست کردن نام کاربری
MELIPAYAMAK_USERNAME = 9364100228و پیادهسازی متدهای ارسال سریع براساس پترنهای تایید شده:- الگوی ۵۰۸۰۷۹ (کد تایید ورود)
- الگوی ۵۰۸۰۸۱ (ثبت موفق سفارش)
- الگوی ۵۰۸۰۸۲ (تحویل سفارش به پست)
- الگوی ۵۰۸۰۸۳ (درخواست جدید همکار B2B)
📍 بخش ۱۰: بهینهسازی ورود با OTP و خواندن خودکار SMS
- TASK-10.1 [Frontend OTP UX]: پشتیبانی کامل از WebOTP API جهت خواندن خودکار کد SMS در موبایل.
- TASK-10.2 [Frontend OTP UX]: پشتیبانی از Paste یکباره کد ۵ رقمی روی اولین input و توزیع خودکار آن در سایر خانهها.
- TASK-10.3 [Frontend OTP UX]: ارسال خودکار (Auto Submit) به محض پر شدن خانه پنجم و امکان ویرایش سریع در صورت نادرست بودن کد.
📍 بخش ۱۱: مرتبسازی پیشرفته لیست محصولات (Product Sorting)
- TASK-11.1 [Frontend Site UI & Service]: پیادهسازی گزینههای مرتبسازی در صفحه محصولات (محبوبترین، جدیدترین، ارزانترین، گرانترین، پرفروشترین) و اعمال داینامیک آن در پارامترهای API.
📍 بخش ۱۲: بستن خودکار مودالها و دراورها با کلیک بیرونی (Outside Click Backdrop Dismissal)
- TASK-12.1 [Frontend Site UX]: اضافه کردن Event Listener و Backdrop Click به تمام کشوها (Drawers)، فیلترهای نسخه موبایل، منوهای کشویی و مودالها جهت بستن خودکار با کلیک روی فضای بیرونی.
📍 بخش ۱۳: بهبود و شفافسازی پیامهای خطا و اعتبارسنجی فرآیند ورود (Detailed Errors & Login Redirect Modals)
- TASK-13.1 [Backend & Frontend]: تبدیل خطاهای کلی سیستم به پیامهای فیلدی مشخص (Field-level Validation Errors) و باز کردن خودکار Login Modal بهجای نمایش پیام متنی عدم دسترسی.
📍 بخش ۱۴: اصلاح عدم نمایش پیامهای فرم تماس در پنل ادمین (Contact Form Submissions Sync)
- TASK-14.1 [Backend & Admin Panel]: بررسی و رفع خطای عدم ثبت یا عدم فراخوانی پیامهای فرم تماس با ما در پنل ادمین و بهروزرسانی جدول مربوطه.
📍 بخش ۱۵: عیبیابی و فعالسازی کامل سرویس SMS (MeliPayamak Integration Fix)
- TASK-15.1 [Backend SMS Service]: بررسی لایههای فراخوانی وبسرویس ملیپیامک، رفع مشکل عدم ارسال پیامکها و ثبت لاگ ارسال جهت اطمینان از تحویل به خطوط کاربران و ادمین.
📍 بخش ۱۶: بنر نوار متحرک و اسلاید شو هدر (Sliding Announcement Ticker Banner)
- TASK-16.1 [Frontend Site UI]: پیادهسازی بنر نوار متحرک (Marquee / News Ticker Style) در بالای هدر سایت جهت نمایش روان متون و اطلاعیههای طولانی بدون قطع شدن متن.
📍 بخش ۱۷: مدریت پیشرفته کاتالوگمود و حالت صیانت/تعمیرات (Granular Maintenance & Catalog Mode Sub-Settings)
- TASK-17.1 [DB, Backend & Admin Panel]: پیادهسازی زیرتیکهای هوشمند برای Catalog Mode (اختیاری کردن نمایش قیمت، غیرفعالسازی سبد خرید، غیرفعالسازی تسویهحساب) + فعالسازی واقعی Maintenance Mode و نمایش صفحه Coming Soon برای کاربران غیر ادمین.
📍 بخش ۱۸: محاسبات دقیق دوز مصرفی در محاسبهگر مکمل (Dynamic Product Dosage Calculator Fields)
- TASK-18.1 [DB, Backend & Admin Panel]: اضافه کردن فیلدهای متغیر و جدول منطق دوز مصرفی در فرم محصول پنل ادمین و متصل کردن محاسبات Calculator به مقادیر واقعی ثبتشده در دیتابیس.
📍 بخش ۱۹: مخفیسازی قیمتهای B2B از API فرانتاند اصلی (B2B Price Security Scoping)
- TASK-19.1 [Backend Security]: حذف فیلد
wholesalePriceاز Responseهای عمومی API محصولات فرانتاند و محدود کردن آن صرفاً به کاربران احرازهویتشده با نقش B2B.
📍 بخش ۲۰: جستجو و انتخاب هوشمند علائم درمانی محصولات (Selective Auto-Complete Symptoms Tagging)
- TASK-20.1 [Admin Panel UI & Backend]: ساخت کامپوننت Auto-Complete چندتایی برای علائم درمانی محصول در پنل ادمین با امکان انتخاب از علائم موجود و درج آنی علائم جدید.
📍 بخش ۲۱: آپلود فایل با Drag & Drop در مدیریت رسانه (File Manager Drag & Drop Upload)
- TASK-21.1 [Admin Panel UI]: اضافه کردن لایه Dropzone و قابلیت Drag & Drop به مرکز مدیریت رسانه (Media Manager) پنل ادمین.
📍 بخش ۲۲: پشتیبانی دوگانه از لینک و فایلمنجر برای پیوستهای چندرسانهای (Dual Link & FileManager Media Attachments)
- TASK-22.1 [Admin Panel UI & DB]: فراهم کردن امکان انتخاب پیوستهای مالتیمدیا هم از طریق درج لینک مستقیم URL و هم انتخاب مستقیم از فایلمنجر پنل ادمین.
📍 بخش ۲۳: سیستم تخفیفهای پیشرفته و چندحالته (Advanced Flexible Discount Rules System)
- TASK-23.1 [DB, Backend & Admin Panel]: پیادهسازی منطق تخفیف درصدی یا عددی ثابت روی یک محصول، دستهبندی خاص یا نوع حیوان (سگ / گربه) در سیستم کد تخفیف و دیتابیس.
📍 بخش ۲۴: آیکون راهنما و Tooltip کدهای تخفیف (Discount Code Field Info Tooltip)
- TASK-24.1 [Admin Panel & Frontend UI]: اضافه کردن آیکون راهنما (Info Tooltip) به فیلدهای کد تخفیف با توضیحات شفاف درباره کارکرد فیلد و تغییرات ناشی از ویرایش آن.
📍 بخش ۲۵: بازگرداندن Dropdown منوی پروفایل کاربر در هدر (User Profile Pet Dropdown Header)
- TASK-25.1 [Frontend Site UI]: بازگرداندن منوی کشویی پروفایل کاربر در هدر سایت شامل نمایش لیست پتهای ثبتشده، دسترسی سریع به مدیریت پتها و خروج از حساب.
📍 بخش ۲۶: اصلاح خروج از حساب کاربری در پنل ادمین (Admin Panel Logout & Profile Dropdown)
- TASK-26.1 [Admin Panel UI]: برطرف کردن خطای منوی کشویی پروفایل ادمین در پنل مدیریت و فعالسازی کامل دکمه «خروج از حساب».
📍 بخش ۲۷: مشاهده و ویرایش کامل اطلاعات کاربر در پنل ادمین (Admin Full User Profile View & Edit)
- TASK-27.1 [Admin Panel & Backend]: فراهم کردن امکان مشاهده کلیه اطلاعات کاربر (مشخصات، شماره تماس، آدرسها، پتها) و ویرایش کامل آنها در پنل مدیریت بهجای تغییر صرف نقش.
📍 بخش ۲۸: ورود تایپی و مستقیم اعداد در پایش فیزیکی (Direct Numeric Input in Physical Monitoring)
- TASK-28.1 [Frontend Site UI]: اضافه کردن قابلیت ورود تایپی و مستقیم عدد به تمام اینپوتهای گام دوم پایش فیزیکی در کنار دکمههای + و -.
📍 بخش ۲۹: منطق واقعی و کاربردی پایش هوشمند موجودی مکملها (Smart Supplement Consumption Tracking Logic)
- TASK-29.1 [Frontend & Backend]: پیادهسازی منطق واقعی محاسبه میزان مصرف روزانه براساس سفارشات ثبتشده، دوز مصرفی و تعداد باقیمانده مکمل کاربر و امکان ثبت دستی مکمل جهت پایش.
📍 بخش ۳۰: شفافسازی و هندلینگ استاندارد خطاهای پردازش پرداخت (Detailed Checkout Payment Error Toast Fix)
- TASK-30.1 [Frontend Site]: رفع دوبار نمایش داده شدن Toast خطا در زمان ثبت سفارش، دریافت دقیق پیام خطا از پاسخ backend و نمایش پیام شفاف و کاربردی.
📍 بخش ۳۱: اصلاح عیبیابی پرداخت با کیف پول (Wallet Payment Validation & Error Handling)
- TASK-31.1 [Backend & Frontend]: بررسی دقیق پارامترهای پردازش پرداخت کیف پول و نمایش دقیق فیلد یا علت نامعتبر بودن درخواست به کاربر.
📍 بخش ۳۲: اصلاح فرآیند ذخیره و نمایش آدرس جدید (Address Creation Double Toast & List Sync Fix)
- TASK-32.1 [Frontend Site]: برطرف کردن خطای
property addresses should not existدر ثبت آدرس، حذف Toastهای تکراری و بهروزرسانی آنی لیست آدرسهای منتخب کاربر در تسویهحساب.
📍 بخش ۳۳: اعمال هزینه واقعی ارسال سفارشی و پیک در تسویهحساب (Shipping Cost Admin Sync)
- TASK-33.1 [Backend & Frontend]: خواندن هزینه ارسال تنظیمشده در پنل ادمین (مثلاً ۱۰۰,۰۰۰ تومان) و محاسبه دقیق آن در فاکتور نهایی تسویهحساب بهجای رایگان فرض کردن آن.
📍 بخش ۳۴: پاکسازی عبارتهای فنی (TASK-X) از عنوانهای پنل ادمین (Admin Titles Clean-up)
- TASK-34.1 [Admin Panel UI]: حذف کدهای شناسه تاسک (
TASK-2.15و غیره) از تمام عنوانها و صفحات پنل مدیریت ادمین.
📍 بخش ۳۵: اصلاح عملکرد واقعی حالت تعمیرات (Real Maintenance Mode Enforcement)
- TASK-35.1 [Frontend Site]: اصلاح بررسی حالت تعمیرات (Maintenance Mode) در
ClientLayoutبهطوریکه حتی کاربران لاگینشده معمولی نیز صفحه Coming Soon را مشاهده کنند و صرفاً ادمین مجاز به عبور باشد.
📍 بخش ۳۶: تفکیک دقیق گزینههای حالت کاتالوگ و پیشخرید (Granular Catalog Mode Sub-options & Pre-order Button)
- TASK-36.1 [Admin Panel & Frontend]: پیادهسازی زیرگزینههای کاتالوگمود (غیرفعالسازی ثبت سفارش، جایگزینی دکمه پیشخرید بهجای خرید، غیرفعالسازی قیمت و سبد) در تنظیمات ادمین و اعمال آن در فرانتاند.
📍 بخش ۳۷: سیستم پیشخرید محصولات رایگان یا بیعانهای (Pre-order System with SMS Notification)
- TASK-37.1 [DB, Backend & Frontend]: ساخت سیستم پیشخرید محصولات Coming Soon (رایگان یا با بیعانه) و ارسال پیامک خودکار به کاربر هنگام موجود شدن و قیمتگذاری کالا جهت تکمیل سفارش.
📍 بخش ۳۸: صف خودکار «موجود شد مطلعم کن» با ارسال پیامک (Out-of-Stock Notification Queue & SMS)
- TASK-38.1 [DB, Backend & Frontend]: ایجاد دکمه «موجود شد خبرم کن» برای کالاهای ناموجود، ثبت کاربر در صف (Queue) و ارسال خودکار پیامک هنگام افزایش موجودی کالا به بالای ۰.