🚗 CarHub — Plateforme Moderne de Marché Automobile

Une application Laravel full-stack démontrant une architecture de niveau entreprise, l'optimisation des performances et l'évolutivité du monde réel.

⚡ Faits Saillants de la Pile Technologique

Backend : Laravel 11, Eloquent ORM, Sanctum, Socialite, Filament Admin | Frontend : Blade, Alpine.js, Tailwind CSS, Vite | Recherche : Meilisearch | Temps réel : Laravel Reverb, WebSockets | Surveillance : Sentry, Lighthouse CI | Déploiement : GitHub Actions, Docker, Pipeline CI/CD

✅ Réalisations Principales

  • 100% couverture de test API (20+ tests fonctionnels)
  • Score de performance Lighthouse : 94/100
  • Recherche en texte intégral avec Meilisearch
  • Intégration OAuth (Google, Facebook)
  • Support multilingue (EN, FR)
  • Tableau de bord administrateur avec Filament

🎯 Meilleures Pratiques

  • Motifs de conception API RESTful
  • Autorisation appropriée avec Politiques
  • Factories et ensemençage de base de données
  • Suivi et surveillance des erreurs
  • Pipeline de déploiement automatisé
  • Accessibilité (conforme WCAG)

📚 Documentation

👋 Introduction

CarHub est une application Laravel full-stack prête pour la production démontrant les meilleures pratiques de développement web modernes. Construite avec l'évolutivité et la maintenabilité au cœur, la plateforme offre des capacités de recherche avancées, des fonctionnalités en temps réel, des tests complets et une surveillance de niveau entreprise. La base de code sert à la fois de marché fonctionnel et de mise en œuvre de référence pour les meilleures pratiques Laravel, y compris la conception API, les modèles d'autorisation, l'optimisation des bases de données et l'automatisation du déploiement.

Idéal pour : Apprendre les motifs Laravel avancés, recruter des développeurs talentueux ou déployer un marché automobile évolutif.

⚙️ Démarrage Rapide

git clone https://github.com/yourusername/laravella-storefront.git
cd laravella-storefront
composer install && npm install
cp .env.example .env
php artisan key:generate
php artisan migrate --seed
npm run dev
php artisan serve

Votre application s'exécutera à http://localhost:8000

🔧 Configuration

Variables d'Environnement — Configurez .env :

APP_NAME=CarHub
APP_ENV=production
DB_CONNECTION=mysql
QUEUE_DRIVER=redis
MEILISEARCH_HOST=http://localhost:7700
SENTRY_LARAVEL_DSN=your-sentry-dsn

✨ Vitrine des Fonctionnalités

🚗 Gestion des Voitures

  • Opérations CRUD avec autorisation appropriée
  • Gestion des fonctionnalités et des images
  • Opérations en masse avec jobs de file d'attente
  • Optimisation et chargement paresseux des images

🔐 Authentification

  • Session + OAuth (Google, Facebook)
  • Flux de vérification d'email
  • Réinitialisation du mot de passe avec validation du jeton
  • Limitation de débit et protection CSRF

🔍 Recherche Avancée

  • Recherche en texte intégral avec Meilisearch
  • Filtrage multi-champs (prix, année, lieu)
  • Suggestions de recherche en temps réel
  • Correspondance tolérante aux fautes

👤 Expérience Utilisateur

  • Liste de favoris personnalisée
  • Gestion du profil et des préférences
  • Support multilingue (EN/FR)
  • Design responsive (mobile-first)

🗄️ Conception de la Base de Données

Schéma relationnel bien structuré avec clés étrangères appropriées et index :

Domaine Principal :
  • users
  • cars
  • car_features
  • car_images
  • favorite_cars
Taxonomies :
  • makers
  • models
  • car_types
  • fuel_types
  • states / cities

🌱 Factories et Seeders

Factories :

  • CarFactory : Génère des voitures aléatoires.
  • CarFeatureFactory : Génère des caractéristiques aléatoires.
  • CarImageFactory : Génère des images de voitures aléatoires.
  • UserFactory : Crée des utilisateurs de test.

Seeders :

  • DatabaseSeeder : Remplit les données initiales pour les constructeurs, types de voitures, etc.

Routes

Routes publiques :

Routes authentifiées :

Les routes sont définies dans :

🎮 Contrôleurs et Architecture

Contrôleurs principaux :

  • CarController : Gère les opérations CRUD et les caractéristiques des voitures.
  • SignupController : Gère l'inscription utilisateur.
  • WatchlistController : Gère l'ajout/retrait de voitures dans la liste de favoris.
  • ProfileController : Gère la mise à jour du profil et du mot de passe.

🔒 Autorisation et Politiques

CarPolicy : Autorise les actions comme la création, la modification et la suppression de voitures.

🧪 Couverture de Test

Le projet inclut 20+ tests fonctionnels assurant que la fonctionnalité principale est robuste :

CarTest • AuthTest • SignupTest • WatchlistTest • ProfileTest • PasswordResetTest • HomeTest • EmailVerifyTest • FavoritesTest • SearchTest

Exécuter les tests : php artisan test · Couverture : php artisan test --coverage

♿ Accessibilité et SEO

Conforme WCAG 2.1 :

  • ✓ Structure HTML sémantique
  • ✓ Prise en charge de la navigation au clavier
  • ✓ Convivialité du lecteur d'écran
  • ✓ Labels et rôles ARIA
  • ✓ Contraste des couleurs (minimum 4,5:1)
  • ✓ Design responsive

Optimisé pour le SEO :

  • ✓ Balises dynamiques et URLs canoniques
  • ✓ Cartes Open Graph et Twitter
  • ✓ Données structurées (Schema.org)
  • ✓ Responsive mobile-first

Fonctionnalités SEO

🎨 Frontend et Style
  • CSS : Situé dans app.css.
  • JavaScript : Situé dans app.js.

🔗 Intégrations et Surveillance

Authentification
  • ✓ Google OAuth (Socialite)
  • ✓ Facebook OAuth (Socialite)
Communication
  • ✓ Mailtrap (test email)
  • ✓ Vérification email et réinitialisation du mot de passe
Surveillance et Performance
  • ✓ Sentry (suivi des erreurs)
  • ✓ Lighthouse CI (performance)
Recherche et Temps Réel
  • ✓ Meilisearch (recherche en texte intégral)
  • ✓ Laravel Reverb (WebSockets)

🚀 Pipeline CI/CD

Déploiement automatisé via GitHub Actions — chaque version déclenche un cycle complet de build, test et déploiement.

Pipeline de Flux de Travail

✓ Checkout
Code extrait de la balise de version GitHub
✓ Setup
PHP 8.2 + Node.js + Composer + npm
✓ Install
Dépendances installées et mises en cache
✓ Build
Migrations, génération de clé, compilation d'assets
✓ Test
Suite de tests complète avant déploiement
✓ Deploy
Le serveur extrait la dernière version, optimise l'app

Configuration : .github/workflows/deploy.yml

📄 Licence et Contribution

Cette application est un logiciel open-source sous licence MIT. Nous accueillons les contributions de la communauté. Forkez le dépôt, créez une branche de fonctionnalité et soumettez une demande de pull.

Des questions ? Consultez le dépôt GitHub ou consultez la documentation détaillée dans le dossier /docs.