canina/.ai_agency/specs/project_health.md

51 lines
4.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# گزارش جامع ممیزی عمیق مهندسی و کیفیت کد Canina (Deep Engineering Audit Phase 2)
**تاریخ ممیزی عمیق:** ۲۶ ژوئیه ۲۰۲۶
**نقش ممیز:** Lead Software Auditor (`00_auditor.md`)
**حوزه ارزیابی:** تمامی لایه‌های فرانت‌اند، بک‌اند، پنل مدیریت، تست‌ها و کانفیگ‌های سئو
---
## ۱. خلاصه‌ی نمره سلامت مهندسی (Deep Engineering Health Score)
امتیاز سلامت مهندسی از ۱۰۰ محاسبه شده و بدهی‌های فنی ممیزی عمیق به شرح زیر است:
| حوزه ارزیابی | وضعیت اسکن خط‌به‌خط | کسری امتیاز (Penalty) |
| :--- | :--- | :---: |
| **امتیاز پایه** | - | **100** |
| **بهینه‌سازی تصاویر (Next Image)** | استفاده از تگ `<img>` در `SafeImage`, `VideosPage`, `VetGallery` به جای `next/image` | **-10** |
| **پوشش تست‌های خودکار فرانت‌اند** | نبود تست‌های integration برای سفارش حجمی، Wizard و احراز هویت | **-20** |
| **تست‌های E2E / Unit بک‌اند NestJS** | نبود پوشش تست‌های واحد برای هندل استثنائات اختصاصی و سرویس‌ها | **-15** |
| **مدیریت Error / Loading Boundaries** | نبود فایل‌های استاندارد `loading.tsx` و `error.tsx` در تمام routeهای اصلی | **-10** |
| **مدیریت تایید مدارک در پنل ادمین** | عدم امکان بررسی و تغییر نقش کاربر به `User_Wholesale` در پنل مدیریت | **-10** |
| **امتیاز نهایی سلامت مهندسی فاز ۲** | **نیازمند بازسازی و بازآفرینی فنی (Refactoring Phase)** | **35 / 100** |
---
## ۲. ممیزی تفکیکی بخش‌ها (Detailed Audit Breakdown)
### ۲.۱. فرانت‌اند Next.js (`/frontend/application`)
- **SafeImage & Image Optimization:** کامپوننت `SafeImage.tsx` و سایر کامپوننت‌های نمایش ویدیو/تصاویر دامپزشکی همچنان از تگ‌های استاندارد HTML `<img>` استفاده می‌کنند که مانع فشرده‌سازی WebP و بهینه‌سازی LCP گوگل می‌شود.
- **Error & Loading Boundaries:** عدم وجود `app/loading.tsx` و `app/error.tsx` استاندارد جهت مدیریت لودینگ‌های استریمینگ و خطاهای غیرمنتظره.
- **Strict Typing:** استفاده از متغیرهای `any` در برخی هندلرهای استیت Zustand.
### ۲.۲. بک‌اند NestJS و دیتابیس Prisma (`/backend`)
- **مدیریت استثناها (Global Exception Filters):** نیاز به اعتبارسنجی دقیق‌تر DTOها با `class-validator` و فیلترهای پاسخ یکپارچه.
- **امنیت APIها و Rate Limiting:** نیاز به بررسی ثبات Throttler Guard و سطوح دسترسی نقش‌های کاربری (RBAC).
### ۲.۳. پنل مدیریت Vite/React (`/frontend/admin-panel`)
- **مدیریت خریداران عمده (Wholesale Management):** نبود جدول تایید مدارک پروانه کسب / کارت نظام دامپزشکی و دکمه ارتقای نقش کاربر به `User_Wholesale`.
### ۲.۴. تست‌نویسی (Testing Suite)
- **Unit & Integration Tests:** عدم وجود تست‌های خودکار برای کامپوننت‌های حساس مانند `SmartAdvisor` و `B2BPortal`.
---
## ۳. نقشه راه فاز بازآفرینی فنی (Refactoring Roadmap)
1. **`TASK-106` (تست‌نویسی جامع):** ایجاد تست‌های خودکار Jest/Vitest برای کامپوننت‌ها و استورها.
2. **`TASK-107` (بهینه‌سازی کارایی Next Image):** بازنویسی `SafeImage` جهت استفاده ۱۰۰٪ از `next/image`.
3. **`TASK-108` (Boundary & Streaming):** پیاده‌سازی `loading.tsx` و `error.tsx` در لایه‌های Router.
4. **`TASK-109` (تکمیل پنل ادمین):** افزودن تب تایید خریداران عمده و پروانه کسب در پنل مدیریت.
5. **`TASK-110` (سئوی پیشرفته):** ایجاد Sitemap داینامیک و بهینه‌سازی Alt تصاویر و Canonical URLs.