← العودة إلى المشاريع تطبيق ويب · السيارات

مرآب V. Parrot

كتالوج سيارات مع فلاتر متقدمة وتفاصيل المركبات وإدارة الصور.

مرآب V. Parrot
المشروع

المشروع

يُظهر V. Parrot بنية Symfony أكثر اعتمادًا على التطبيقات، مع كتالوج للمركبات وفلاتر متقدمة وبيانات منظمة وإدارة للصور.

بنية النظام ومنصة إدارة ورش السيارات

منصة ويب متكاملة لإدارة أعمال ورش وصالات السيارات تم بناؤها باستخدام Symfony 6 وDoctrine ORM وEasyAdmin 4. تجمع بين واجهة عرض تزيد من المبيعات، ومحرك بحث AJAX للسيارات المستعملة، ولوحة تحكم متعددة الصلاحيات (RBAC)، وواجهات REST API لتغذية تطبيقات الهاتف.

┌─────────────────────────────────────────────────────────────────────────────┐
│               Garage Vincent Parrot — Architecture Dual-Tier                │
└──────────────────────────────────────┬──────────────────────────────────────┘
                                       │
           ┌───────────────────────────┼───────────────────────────┐
           ▼                           ▼                           ▼
  🚗 Moteur Véhicules & AJAX     👥 Back-Office RBAC          📡 API REST Headless
  • noUiSlider (Prix, Km, Année) • EasyAdmin 4 Dashboard      • Serializer JMS Groups
  • Dropdowns dépendants BDD    • Isolation ROLE_ADMIN/EMP   • Endpoints paginés (/api)
  • Rendu partiel JSON/Twig     • Modération avis clients    • Support Mobile & Cross-App
  • VichUploader multi-photos   • Gestion horaires & services • Sécurité CORS & CSRF
            

محرك بحث تفاعلي عبر AJAX

تصفية ديناميكية للسيارات متعددة المعايير باستخدام noUiSlider دون إعادة تحميل الصفحة.

التحكم بالأذونات حسب الأدوار

فصل صارم بين صلاحيات صاحب الورشة (المدير) وصلاحيات الموظفين والفنيين.

واجهة REST API منفصلة

نقاط اتصال JSON آمنة تمد تطبيق الجوال المطور بفلاتر والأنظمة الخارجية بالبيانات.

1. ميزات البوابة العامة للزوار

صُممت المنصة لإبراز خدمات الورشة وتحويل الزوار إلى طلبات صيانة وشراء مؤكدة:

كتالوج خدمات وصيانة السيارات

عرض مفصل لكافة خدمات الورشة (الميكانيكا، السمكرة والدهان، التكييف، والصيانة الدورية) مع إدارة للصور عبر VichUploader.

كتالوج سيارات مستعملة معتمدة

صفحات سيارات تفصيلية (/occasions/vehicule/{id}) تحتوي على معارض صور دوارة، مواصفات فنية، ونموذج اتصال برقم السيارة.

تقييمات وآراء العملاء المعتمدة

نظام تقييم 5 نجوم يتيح للعملاء إرسال آرائهم، مع خضوعها لمراجعة وموافقة الموظفين قبل النشر.

عرض أوقات العمل في الوقت الفعلي

إضافة Twig مخصصة (HoraireExtension) تدرج مواعيد العمل المحدثة مباشرة في تذييل الموقع بشكل تلقائي.

2. محرك التصفية متعدد المعايير عبر AJAX

تجمع بنية البحث المتطورة بين SearchData وSearchForm وVehiculeRepository::findSearch() ومتحكم جافاسكريبت غير متزامن:

معيار البحث عنصر الواجهة استعلام Doctrine DQL
نطاق السعر Dual-handle noUiSlider p.prix >= :prixmin AND p.prix <= :prixmax
المسافة المقطوعة (كم) Dual-handle noUiSlider p.kilometrage >= :kmmin AND p.kilometrage <= :kmmax
سنة التسجيل Dual-handle noUiSlider (1970 - 2026) p.annee >= :anneemin AND p.annee <= :anneemax
الماركة والموديل قوائم منسدلة ديناميكية متتالية (/modeles/fetch) m.id IN (:marque) AND d.id IN (:modele)
نوع الهيكل والوقود والفئة Checkboxes (Carrosserie, Énergie) t.id IN (:type), a.id IN (:carburant)
// Rendu partiel asynchrone JSON dans OccasionsController.php
if ($request->get('ajax')) {
    return new JsonResponse([
        'content'    => $this->renderView('occasions/_occasions.html.twig', ['occasions' => $occasions]),
        'sorting'    => $this->renderView('occasions/_sorting.html.twig', ['occasions' => $occasions]),
        'pagination' => $this->renderView('occasions/_pagination.html.twig', ['occasions' => $occasions]),
        'prixmin'    => $prixmin, 'prixmax' => $prixmax,
        'kmmin'      => $kmmin,   'kmmax'   => $kmmax,
        'anneemin'   => $anneemin,'anneemax'=> $anneemax
    ]);
}
            

3. إدارة الصلاحيات والأدوار (RBAC)

إدارة دقيقة للصلاحيات ولوحات التحكم باستخدام EasyAdmin وجدران حماية Symfony Security:

ROLE_ADMIN المدير العام (Vincent Parrot)

  • إدارة حسابات الموظفين (إنشاء، وتعيين كلمات المرور مع سياسات تعقيد مشددة).
  • إدارة كاملة لنصوص وخدمات وصور ورشة الصيانة عبر نظام إدارة المحتوى.
  • تعديل أوقات العمل الأسبوعية وتعيين أيام العطلات والإغلاق.
  • مراجعة واستعراض وحذف رسائل واستفسارات العملاء الواردة.

ROLE_EMPLOYE فريق العمل والموظفون

  • إدارة مخزون السيارات المستعملة (إضافة سيارات، رفع عدة صور عالية الدقة، وإضافة الخيارات التقنية).
  • ربط تلقائي لبيانات الموظف ككاتب للإعلان عند حفظ السيارة في قاعدة البيانات.
  • مراجعة واعتماد تقييمات العملاء (الموافقة على الآراء الحقيقية أو رفض الملاحظات غير الموثقة).
  • منع ترقية الصلاحيات إلى رتبة المدير بشكل صارم.

4. نقاط اتصال واجهة REST API

نقاط اتصال JSON آمنة مخصصة لتطبيقات الهاتف والأنظمة الخارجية:

Method Endpoint URL الهدف من العملية هيكل استجابة JSON
GET /api/vehicules استرداد قائمة كامل مخزون السيارات المتاحة JSON Array (JMS getVehicules group)
GET /api/vehiculesby?page={n} استرجاع قائمة سيارات مقسمة لصفحات لتسهيل التصفح { data: [...], pagination: { ... } }
GET /api/vehicules/{id} المواصفات الكاملة ومعرض الصور لمركبة محددة عبر معرفها JSON Object (Véhicule, Galerie, Options)
GET /api/marques-modeles الهيكل الكامل لجميع ماركات السيارات والموديلات التابعة لها [{ id, nom, modeles: [{ id, nom }] }]
POST /api/contact إرسال استفسار العميل مع إرسال بريد إلكتروني تلقائي { status: "success" } (HTTP 201)

5. نموذج البيانات وعلاقات Doctrine

مخطط علائقي معياري تحت قاعدة بيانات MySQL مع الحفاظ على التكامل المرجعي:

كيان السيارة والوسائط

علاقة OneToMany متتالية مع VehiculeImage لدعم تعدد الصور وعلاقة ManyToMany مع Employes.

تصنيف وهيكلة السيارات

فصل معياري لكيانات Marque وModele وCarburant (بنزين، ديزل، هجين، كهرباء) وCategorie وType.

العمليات والتواصل

كيانات مخصصة تشمل Service وHoraire وTemoignage (مع وسم الموافقة المنطقي) وContact.

6. هندسة الـ SEO والأداء الرقمي

SEO محلي وترميز دلالي

بيانات Schema.org منظمة لكيانات AutoRepair وProduct/Car، وكثافة كلمات مفتاحية موجهة لمنطقة تولوز وروابط نظيفة.

أداء فائق وتصيير جزئي

تصيير جزئي عبر AJAX لتقليل استهلاك البيانات أثناء التصفية، وتحسين تسليم الصور، وحماية CSRF لجميع النماذج.

استكشف موقع الورشة مباشرة

تصفح كتالوج السيارات المستعملة المباشر واختبر فلاتر البحث التفاعلية.

زيارة موقع كراج V. Parrot ↗