Aller au contenu

Projet Intégrateur

⏱️ Durée estimée : 8h — 12h

Le projet intégrateur est l’aboutissement du Drupal Bootcamp. Vous allez livrer une version complète et fonctionnelle de TailStore, démontrant votre maîtrise de l’ensemble des compétences acquises durant la formation.

Synthèse

Appliquez les acquis des 8 étapes dans un projet cohérent.

Autonomie

Travaillez en autonomie avec les ressources du bootcamp.

Production

Livrez un site fonctionnel, versionné et documenté.


FonctionnalitéDescriptionÉtapes concernées
Catalogue produitsListe des produits avec filtres et pagination2, 3, 4
Page produitAffichage détaillé avec images et informations2, 6
Panier dynamiqueAjout/modification/suppression avec htmx8
Mini-cart headerAffichage du compteur et total en temps réel8
Checkout StripePaiement fonctionnel en mode test8
Thème responsiveDesign Tailwind CSS adaptatif6
NavigationMenus, header, footer fonctionnels5
  • 🔍 Recherche de produits
  • ⭐ Système d’avis/notes
  • 👤 Espace utilisateur (historique commandes)
  • 📧 Emails de confirmation (via Webform ou custom)
  • 🏷️ Système de codes promo
  • 📱 PWA / Mode offline

tailstore/
├── web/
│ ├── modules/custom/
│ │ └── tailstore_cart/ # Module panier + Stripe
│ └── themes/custom/
│ └── tailstore_theme/ # Thème Tailwind
├── config/
│ └── sync/ # Export configuration
├── composer.json
├── composer.lock
└── README.md # Documentation projet

Votre README doit contenir :

# TailStore - Projet Drupal 11
## Installation
1. Cloner le projet
2. `ddev start`
3. `ddev composer install`
4. `ddev drush site:install --existing-config -y`
5. `ddev drush uli`
## Configuration Stripe
Clés de test à configurer dans `/admin/config/system/tailstore-cart` :
- Publishable key: `pk_test_...`
- Secret key: `sk_test_...`
## Compte test
- Admin : admin / admin
- Carte test : 4242 4242 4242 4242
## Fonctionnalités
- [x] Catalogue produits
- [x] Panier htmx
- [x] Checkout Stripe
...
Fenêtre de terminal
ddev drush cex -y
  • Vidéo de 3-5 minutes OU
  • README détaillé avec captures d’écran

CritèrePointsDescription
Fonctionnalités/30Toutes les features minimum fonctionnent
Code qualité/20PSR-4, injection de dépendances, pas de code mort
Theming/15Templates propres, responsive, accessible
Documentation/15README complet, instructions claires
Git/10Historique propre, commits atomiques
Bonus/10Fonctionnalités supplémentaires
Total/100
  • Catalogue avec filtres : 5 pts
  • Page produit complète : 5 pts
  • Panier fonctionnel : 8 pts
  • Checkout Stripe : 8 pts
  • Navigation et UX : 4 pts

  1. Initialisation (30 min)

    • Fork/clone du projet de base
    • Configuration DDEV
    • Import de la configuration existante
  2. Modélisation (1h)

    • Vérifier les types de contenu
    • Ajuster les champs si nécessaire
    • Créer les taxonomies manquantes
  3. Contenu (1h)

    • Importer ou créer 10+ produits
    • Ajouter des images
    • Configurer les termes de taxonomie
  4. Module panier (2-3h)

    • Structure du module
    • CartService
    • Routes et controllers
    • Intégration htmx
  5. Stripe Checkout (1-2h)

    • StripeService
    • CheckoutController
    • Webhook
    • Tests de paiement
  6. Theming (1-2h)

    • Finaliser les templates
    • Ajuster le CSS
    • Tester le responsive
  7. Tests & Debug (1h)

    • Parcours utilisateur complet
    • Vérification des logs
    • Correction des bugs
  8. Documentation (30-60 min)

    • README complet
    • Export configuration
    • Commit final


  1. Dépôt Git (recommandé)

    • Invitez le correcteur en lecture
    • Ou créez un repo public temporaire
  2. Archive ZIP

    • Excluez vendor/ et node_modules/
    • Incluez un dump de la base (optionnel)
  • Le site s’installe avec ddev drush site:install --existing-config
  • Les clés Stripe test sont documentées
  • Le parcours d’achat fonctionne de A à Z
  • Le README est complet
  • Tous les fichiers sont commités

Vous avez toutes les cartes en main. Consultez les exercices détaillés pour un guide pas à pas.


Bonne chance ! 🎓 C’est le moment de montrer tout ce que vous avez appris !