- Fix seed-products.ts TS error (implicit any) and BOM handling - Re-run full seed to restore correct Persian encoding in DB - Fix productService query→search param mismatch - Fix IngredientWiki hardcoded port 4000→use settingsStore - Restore seed-products-data.json from git after accidental corruption
5.4 KiB
معرفی پروژه کانینا ایران (Canina Iran)
این پروژه چیست؟
سامانه «کانینا ایران» پلتفرم تخصصی معرفی، فروش و مدیریت مکملهای درمانی حیوانات خانگی با گرید دارویی است. این سامانه به عنوان درگاه آنلاین نماینده انحصاری کانینا آلمان در ایران فعالیت میکند. هدف اصلی پروژه، ارائه یک تجربه کاربری (UX) بسیار غنی، سریع و در کلاس جهانی برای خریداران، کلینیکهای دامپزشکی (مشتریان B2B) و همچنین فراهمکردن ابزارهای هوشمند (مانند مشاوره هوشمند و دانشنامه ترکیبات دارویی) است.
قابلیتهای کلیدی سامانه
سامانه به گونهای طراحی شده تا تمام نیازهای یک کسبوکار مدرن e-commerce را در کنار قابلیتهای تخصصی حوزه سلامت حیوانات برآورده کند:
- فروشگاه آنلاین پیشرفته: نمایش و فروش محصولات با قابلیت جستجوی هوشمند، دستهبندی دقیق و ارائه اطلاعات تخصصی دارویی.
- مشاور هوشمند سلامت: ابزار هوش مصنوعی یا سیستم مبتنی بر قوانین برای پیشنهاد مکمل بر اساس نوع، سن و نیازهای حیوان خانگی.
- دانشنامه ترکیبات (Ingredient Wiki): مرجع کامل برای معرفی ترکیبات موثره، ویتامینها و فرمولاسیون مکملها.
- پروفایل حیوان خانگی (Pet Profile): ثبت اطلاعات حیوانات خانگی توسط کاربر برای دریافت پیشنهادات شخصیسازی شده.
- پورتال اختصاصی فروش عمده (B2B Portal): سیستم قیمتگذاری و سفارشدهی ویژه برای کلینیکهای دامپزشکی و داروخانهها.
- سیستم مدیریت سفارش و سبد خرید: شامل پیگیری لحظهای سفارش، استفاده از کدهای تخفیف و کیف پول مجازی.
- سئوی بسیار پیشرفته: تولید متادیتا داینامیک، JSON-LD و سایتمپ زنده برای دیده شدن در موتورهای جستجو.
تکنولوژیهای استفاده شده و دلیل انتخاب آنها (Tech Stack)
بخش فرانتاند (Frontend)
- فریمورک Next.js 15 (App Router):
- چرا؟ برای بهرهمندی از رندرینگ سمت سرور (SSR) و تولید صفحات استاتیک (SSG) که سرعت بارگذاری بسیار بالا و سئوی (SEO) خارقالعادهای را فراهم میکند. همچنین سیستم Routing جدید آن توسعه را ساختاریافتهتر میکند.
- مدیریت State با Zustand:
- چرا؟ جایگزینی سبک، سریع و بدون boilerplate برای Redux. برای مدیریت سبد خرید، اطلاعات کاربر و تنظیمات UI در سمت کلاینت عالی است.
- استایلدهی با TailwindCSS:
- چرا؟ توسعه سریع رابط کاربری بدون نیاز به فایلهای CSS جداگانه. امکان پیادهسازی سریع دیزاینسیستمها و Responsive Design.
- انیمیشنها با Framer Motion:
- چرا؟ ایجاد انیمیشنها و ترانزیشنهای روان و حرفهای (Micro-interactions) که حس یک وباپلیکیشن بسیار لوکس (Premium) را به کاربر منتقل میکند.
- ارتباط با API از طریق Axios:
- چرا؟ مدیریت راحتتر اینترسپتورها (Interceptors) برای توکنهای احراز هویت و مدیریت خطاها در ارتباط با بکاند.
بخش بکاند (Backend)
- فریمورک NestJS:
- چرا؟ ایجاد یک معماری ماژولار، مقیاسپذیر و مبتنی بر کلاس (Enterprise-level) در محیط Node.js که با TypeScript به صورت Native سازگار است و نگهداری کدهای بزرگ را آسان میکند.
- پایگاهداده PostgreSQL:
- چرا؟ یک دیتابیس رابطهای بسیار قدرتمند، امن و استاندارد که یکپارچگی دادهها (Data Integrity) در سیستمهای فروشگاهی (مانند سفارشات و تراکنشهای مالی) را تضمین میکند.
- مدیریت دیتابیس با Prisma ORM:
- چرا؟ ارائه Type-safety کامل بین دیتابیس و کدهای TypeScript. مایگریشنهای ساده و جلوگیری از خطاهای رایج در نوشتن کوئریهای SQL.
نتیجهگیری معماری
ترکیب Next.js و NestJS معماری مدرن و کاملاً جداشده (Decoupled) ایجاد کرده است. فرانتاند وظیفه ارائه تجربه کاربری سریع و سئو شده را دارد و بکاند مانند یک سرویس قدرتمند (API) امنیت، لاجیکهای تجاری و پایداری دادهها را تضمین میکند.