Go to file
parsa aghaei 6091bfa328
Some checks failed
Deploy Canina / deploy (push) Successful in 2m6s
E2E Playwright Tests / Run Full E2E & Security Suites (push) Failing after 0s
Merge branch 'develop'
2026-09-05 19:43:42 +03:30
.agents graphify added to antigravity 2026-08-16 11:25:59 +03:30
.ai_agency feat(agency): implement Farsi error handling, trust seals page, and MeliPayamak SMS integration 2026-07-29 16:40:42 +03:30
.antigravity trying to add graphify to project 2026-08-16 10:55:35 +03:30
.claude trying to add graphify to project 2026-08-16 10:55:35 +03:30
.gemini/config test(e2e): refactor 6 e2e suites with strict assertions, add mutation verification and update test coverage map 2026-08-25 15:19:22 +03:30
.gitea test(e2e): complete and verify 11 E2E test suites with strict mutation testing and CI integration 2026-08-25 17:10:53 +03:30
.vscode fix(pets): resolve pet registration flow, missing assets, 401 guard, and add none option to symptoms 2026-08-22 20:53:09 +03:30
backend fix(otp): support WebOTP sms pattern with {0} and {1} and robust code extraction 2026-09-05 19:36:49 +03:30
docs refactor: unify domain and contact emails to canina.ir across all apps and seeds 2026-08-19 11:52:36 +03:30
frontend fix(seo): prevent duplicate brand affixes in page titles and add checkout success metadata 2026-09-05 19:43:28 +03:30
graphify-out fix(seo): prevent duplicate brand affixes in page titles and add checkout success metadata 2026-09-05 19:43:28 +03:30
scripts fix(dev): set local store port to 3300 and admin port to 3400 to avoid Windows port exclusions 2026-08-29 14:10:52 +03:30
tests test(e2e): add admin safe XSS rendering verification in contact submissions 2026-08-25 18:00:58 +03:30
.dockerignore ci: fix prisma mirror and optimize docker context ignoring heavy uploads 2026-08-18 21:47:02 +03:30
.env.example feat: initialize project structure 2026-05-26 11:37:22 +03:30
.gitattributes trying to add graphify to project 2026-08-16 10:55:35 +03:30
.gitignore test(e2e): setup Playwright testing infrastructure and comprehensive storefront & admin suites 2026-08-25 12:56:46 +03:30
AGENTS.md trying to add graphify to project 2026-08-16 10:55:35 +03:30
BACKEND_INTEGRATION.md chore(brand): rename all Persian occurrences of کانینا to کنینا across the project 2026-08-16 16:40:08 +03:30
canina.md chore(brand): rename all Persian occurrences of کانینا to کنینا across the project 2026-08-16 16:40:08 +03:30
canina.pdf feat(seo): implement dynamic metadata, OpenGraph, and Product JSON-LD structured data [TASK-101] 2026-07-26 14:31:12 +03:30
CLAUDE.md trying to add graphify to project 2026-08-16 10:55:35 +03:30
DATABASE_SCHEMA.md chore(brand): rename all Persian occurrences of کانینا to کنینا across the project 2026-08-16 16:40:08 +03:30
docker-compose.yml www added to traefik 2026-08-26 17:32:14 +03:30
Dockerfile ci: enable tinyproxy routing for prisma build and restore build scripts 2026-08-19 09:46:19 +03:30
manual-test-scenarios.md test(e2e): refactor 6 e2e suites with strict assertions, add mutation verification and update test coverage map 2026-08-25 15:19:22 +03:30
metadata.json fix: resolve seed encoding, search param, and wiki data source issues 2026-07-11 15:40:49 +03:30
nginx.conf fix(media): enhance media proxy routing with multi-target fallback and add uploads location to nginx 2026-08-29 13:25:48 +03:30
package-lock.json test(e2e): complete cross-platform coverage and hardening for security, admin, and cart suites 2026-08-25 17:48:33 +03:30
package.json test(e2e): complete cross-platform coverage and hardening for security, admin, and cart suites 2026-08-25 17:48:33 +03:30
playwright.config.ts test(e2e): complete and verify 11 E2E test suites with strict mutation testing and CI integration 2026-08-25 17:10:53 +03:30
prometheus.yml feat: complete testing, security, dynamic content, and devops overhaul 2026-05-27 02:00:14 +03:30
README.md chore(brand): rename all Persian occurrences of کانینا to کنینا across the project 2026-08-16 16:40:08 +03:30
start.sh ci: use sh shell instead of bash for ci-runner (Alpine based) 2026-07-14 03:32:53 +00:00
swagger.yml feat(devops,docs,verify): implement Phase 4 CI pipeline, OpenAPI synchronization, and E2E verification matrix 2026-08-06 22:27:56 +03:30
test-coverage-map.md test(e2e): complete cross-platform coverage and hardening for security, admin, and cart suites 2026-08-25 17:48:33 +03:30
tsconfig.json test(e2e): expand Playwright test coverage with shop filters, tracking, cart operations and admin modules 2026-08-25 13:07:00 +03:30

پلتفرم کنینا ایران (Canina Iran Platform) 🐾

لندینگ، فروشگاه تخصصی و پرونده سلامت الکترونیک پت (نمایندگی رسمی دارویی Canina Pharma)

پلتفرم کنینا ایران یک برنامه جامع تحت وب (SPA/PWA) مجهز به بردهای تعاملی و ابزارهای بهداشتی-دامپزشکی است که با هدف ارتقای سلامت حیوانات خانگی و دسترسی آسان‌تر به مکمل‌های دارویی گرید فوق‌ارگانیک و دارویی کمپانی والای Canina pharma GmbH آلمان توسعه یافته است.


🌟 ساختار نماها و صفحات پلتفرم (App Views & Architecture)

رویکرد ناوبری در این پلتفرم از معماری پیشپویا بر پایه‌ی بارگذاری تنبل (Lazy Loading) با استفاده از Suspense بهره می‌برد که سرعت بارگذاری اولیه، کارایی انیمیشن‌ها و صرفه‌جویی شدید در ترافیک کلاینت را تضمین می‌کند.

۱. صفحه اصلی (Home View)

  • هدف: لندینگ پیج اصلی برای معرفی هویت برند، مزیت‌های رقابتی محصولات آلمانی و دسترسی سریع به بخش‌های اصلی.
  • کامپوننت‌های به کار رفته:
    • Header: منوی ناوبری بالایی با پشتیبانی از مگا منوی پیشرفته راه‌کارهای بالینی (Clinical Solutions MegaMenu) و نمایه جستجوی آنی.
    • Hero: بخش معرفی اول پلتفرم همراه با تصویر باکیفیت آزمایشگاه و دکمه‌های فراخوان به اقدام (CTA) تداعی‌گر حس درمان استاندارد.
    • SmartAdvisor: موتور مشاور بالینی آنلاین که فرم مرحله‌ای با الگوریتم غربالگری نژاد و علائم را پیاده‌سازی می‌کند.
    • FeaturedProducts: بخش نمایش پرفروش‌ترین‌ها با هماهنگی و همگام‌سازی استیشن خرید کلاینت.
    • VetGallery: گالری دامپزشکان متخصص همکار جهت ارزیابی بالینی و افزایش اعتبار اجتماعی برند.
    • Footer: بخش انتهایی هماهنگ شامل خبرنامه، اطلاعات نمایندگی انحصاری، و میانبرهای پورتال همکاران (B2B).

۲. فروشگاه تخصصی و آرشیو محصولات (Shop / Archive View)

  • هدف: جستجو، فیلترینگ چندبعدی، و انتخاب مکمل‌ها بر اساس انواع علائم، نژادها و دسته‌بندی‌های پزشکی.
  • کامپوننت‌های به کار رفته:
    • ArchivePage: هدایت‌کننده اصلی فیلترهای استاتیک و آدرس‌دهی هوشمند بر اساس URL (Synchronized URL Query Params).
    • ArchiveProductCard: کارت تخصصی کالا مجهز به سیستم نمایش میزان ارزیابی و تطبیق (Compatibility Engine) با شرایط بهداشتی حیوان شما (Dynamic Species Badge).
    • NetworkBanner: پنل نمایش پهنای باند و وضعیت ارتباط آفلاین محصول.

۳. صفحه جزئیات محصول (Product Details View)

  • هدف: صفحه معرفی فوق‌تخصصی هر کالا شامل جزئیات ساختار شیمیایی، جدول دوز مصرفی محاسباتی برای پت، و نقل‌قول از متخصصان آلمانی.
  • کامپوننت‌های به کار رفته:
    • ProductPage: صفحه اصلی اطلاعات به همراه سیستم هوشمند محاسبه دوز تجویز (Dosage Calculator) که وزن پت را گرفته و دوز متناسب بر حسب میلی‌لیتر یا قرص در روز را فورا محاسبه می‌کند.
    • IngredientWiki: ارجاع علمی ترکیبات موجود در محصول به دانشنامه مراجع برای شفافیت صددرصد فرآیند دارویی.

۴. پرونده و شناسنامه سلامت دیجیتال پت (Pet Profile / Digital Health ID)

  • هدف: تعریف پروفایل دیجیتال برای حیوان خانگی، ردیابی یادآورهای دارویی با همگام‌سازی انبار شخصی مکمل (Personal Stock Tracking).
  • کامپوننت‌های به کار رفته:
    • PetProfile: مرکز نمایش اطلاعات هویتی و سلامت حیوان.
    • ReminderSection: ابزار زمان‌بندی مصرف داروها. با تایید به مصرف رسیدن دارو، به صورت خودکار از حجم موجودی مکمل شما در خانه کم شده و هشدار اتمام شارژ مجدد به کاربر صادر می‌گردد.
    • HealthLogSection: ثبت یادداشت‌های وضعیت بالینی روزانه برای اشتراک آسان سوابق با دامپزشک.

۵. داشبورد و پروفایل کاربر (User Dashboard View)

  • هدف: مدیریت سفارشات، فاکتورها، تراکنش‌های مالی و شارژ کیف پول مجازی.
  • کامپوننت‌های به کار رفته:
    • UserDashboard: بورد اصلی شامل سایدبار اطلاعات هویتی و مدیریت آدرس‌ها.
    • TopUpModal: مودال پیشرفته جهت افزایش اعتبار حساب کلاینت به صورت شبیه‌سازی شده.
    • AddressModal: فرم اعتبارسنجی شده آدرس‌ها به سبک مپ‌آدرس‌های مدرن.

۶. پورتال پزشکان و همکاران B2B (B2B Partner Portal)

  • هدف: بخش ورود اختصاصی داروخانه‌ها، پت‌شاپ‌ها و کلینیک‌های همکار سراسر کشور جهت دریافت تخفیف‌های تیراژ بالا و پیگیری پروفرمای خرید.
  • کامپوننت‌های به کار رفته:
    • B2BPortal: رابط کاربری پیشرفته مجهز به فرم‌های سفت‌وسخت مالی جهت ثبت فاکتورهای رسمی همکاران.

🏗️ ساختار دایرکتوری‌ها و درخت پروژۀ (Project Directory Tree)

├── public/                 # دارایی‌های استاتیک و فایل‌های بومی‌سازی i18n
│   └── locales/
│       └── fa/
│           └── common.json # بانک متن خطاهای سرور و پیام‌های سیستم
│
├── src/
│   ├── assets/             # تصاویر، گرافیک‌های پرفرمنس و فایل بگراند
│   ├── components/         # تمامی کامپوننت‌های ماژولار و مستقل سیستم
│   │   ├── Header.tsx      # منوی اصلی و مگا منو هماهنگ با Slugها
│   │   ├── ArchivePage.tsx # فیلترها و سیستم ریست پارامترها
│   │   ├── SmartAdvisor.tsx# فرم مرحله‌ای و منطق توصیه‌گر هوشمند
│   │   └── ...
│   │
│   ├── data/
│   │   └── products.ts     # دیتابیس کالاها با تخصیص تگ‌های علمی (categorySlug)
│   │
│   ├── store/              # مدیریت متمرکز حالت مستقل (Global Stores via Zustand)
│   │   ├── cartStore.ts    # ذخیره سفارش‌ها، کدهای تخفیف و اهدای خیریه به پناهگاه‌ها
│   │   ├── userStore.ts    # ذخیره اطلاعات کاربر، کیف پول و تراکنش‌ها
│   │   └── usePetStore.ts  # ذخیره یادآورها، گزارشات بالینی و مشخصات پت‌ها
│   │
│   ├── services/
│   │   └── productService.ts # کپسول‌سازی فیلترینگ و شبیه‌سازی تاخیرهای اینترنت
│   │
│   ├── App.tsx             # ناوبری روتر کلاینت و تدارک Lazy Load با Suspense
│   ├── main.tsx            # نقطه اتصال اصلی React به DOM
│   └── index.css           # پیکربندی استایل‌ها با Tailwind CSS
│
├── swagger.yml             # مستندات OpenAPI 3.0 برای توسعه فرانت و بک‌بند
├── BACKEND_INTEGRATION.md  # نقشه راه و آدرس‌های خط اتصال بک‌بند (TODO integration)
├── package.json            # اسکریپت‌ها و وابستگی‌های پروژه
└── README.md               # فراداده و راهنمای در دسترس کلاینت

🛠️ راهنمای جامع توسعه و نگهداری (Development & Maintenance Guide)

۱. افزودن یک راهکار درمانی یا دسته‌بندی جدید (How to Add a Category Study)

اگر نیاز به افزودن دسته‌بندی محصولی جدید یا راه‌کارهای درمانی متناظر دارید:

  1. ابتدا به src/data/products.ts رفته و محصولات مورد نظر را تعریف کنید. اطمینان حاصل کنید که خصوصیت category (به لٹریچر فارسی دقیق) و categorySlug (به انگلیسی معتبر و تک کلمه‌ای) تنظیم گشته است:
    category: "مراقبت‌های قلبی و تنفسی",
    categorySlug: "cardio"
    
  2. به آرایه CATEGORIES در src/components/ArchivePage.tsx رفته و آيتم متناظر را ثبات بخشید:
    { id: "cardio", label: "مراقبت قلب و ریه", icon: <Heart className="w-4 h-4" /> }
    
  3. همچنین نقشه همخوانی CATEGORY_MAP را برای تفکیک راهکارهای فرزند متصل به مگا منو گسترش دهید.

۲. اتصال پروژه به بک‌بند فیزیکی (API Connectivity Strategy)

بستر برای اتصال این پلتفرم به هر سرور بک‌بند به صورت کاممت‌های فنی با ساختار زیر استانداردسازی شده است:

// TODO: [BACKEND_API] {METHOD} {ENDPOINT_PATH} | Payload: {...} | Expected: {...} | Errors: [400, 401, ...]

شما می‌توانید با جستجو در کل گام‌های پروژه (grep کلمه TODO) سریعاً نقاط فلت و سرویس‌ها را یافته و با پیاده‌سازی متدهای fetch یا axios کدهای موقت فروشگاه و استورهای Zustand را به پایگاه داده زنده (نظیر Node.js، Django یا Laravel) متصل کنید. مستند مفصل Swagger نیز در فایل swagger.yml برای همگام‌سازی سریع ساختارهای تیم بک‌بند آماده است.

۳. توسعه پرونده سلامت (Enhancing Digital ID Features)

پرونده‌های سلامت و سوابق در زمان واقعی توسط فروشگاه Zustand در src/store/usePetStore.ts به کمک لایه‌گذاری محلی (LocalStorage) تا ابد ذخیره و ماندگار می‌شوند. برای گسترش یادآورها و اتصال سیستم‌های هشدار پیامکی (SMS Gateways):

  • متد toggleReminder را مشاهده کرده و وب‌سرویس فرستنده پیامک حاوی یادآوری دوره‌ای دارو را در بدنه شرط success الحاق کنید.

۴. زبان‌های چندگانه و خطاها (i18n & Error Localization)

تمام پیام‌های مربوط به ارورهای پرداختی، عدم موجودی، ناسازگاری نژاد پت و خطا در کدهای تخفیف با کلیدهای استاندارد در فولدری مجزا مقیم هستند:

  • مسیر فایل: /public/locales/fa/common.json
  • در هنگام ایجاد هر کلس فیلتر یا خطای سفارشی خط اتصال وب، پیام مورد نظر را به شکل متقابل در فایل فوق ثبات دهید تا هشدارهای کلاینت تماماً فارسی و تعاملی نمایش یابند.

اسکرپت‌های حیاتی (Vital Scripts)

  • npm run dev : بورد توسعه لوکال را روی پورت تعریف شده راه‌اندازی می‌کند.
  • npm run build : تولید خروجی توزیع بهینه (SPA Static files) در فولدر dist/.
  • npm run lint : اجرای الگوهای کیفی و بررسی صحت تایپ‌های TypeScript.

تهیه شده با رویکرد پزشکی و رعایت اصل تناسب و پاکیزگی دیزاین. ❤️ کیفیت ممتاز آلمانی، دسترسی آسان ایرانی.

CI/CD test

CI/CD test