Skip to content

🪚 L'Atelier du Bois : Documentation Technique

Bienvenue sur la documentation centrale de L'Atelier du Bois, un écosystème e-commerce conçu comme un laboratoire d'excellence technique autour de Symfony 7.3.


🎯 Vision du Projet

L'Atelier du Bois n'est pas seulement une boutique en ligne fictive. C'est un terrain d'application pour des standards de conception robustes, visant à démontrer qu'une architecture propre permet de limiter la dette technique tout en facilitant l'évolution métier (logistique, stocks, multi-transporteurs).

Les piliers du projet :

  • Isolation stricte : Séparation des couches (DTO, Mappers, Managers, Services).
  • Sécurité granulaire : Utilisation des Voters pour dépasser la simple hiérarchie de rôles.
  • Observabilité & Qualité : API documentée (OpenAPI/Swagger) et couverture de tests automatisés.

🗺️ Guide de Lecture

Pour naviguer dans cet écosystème, voici les sections clés :

🏛️ Architecture Backend

Découvrez comment la donnée transite des RequestMappers jusqu'aux Managers et comment les DTOs assurent un contrat d'interface stable.

🔐 Sécurité & Access Control

Le détail de l'implémentation du JWT et la logique métier derrière les Voters (segmentation Customer / Interne / Admin).

🐳 Guides d'installation

Les guides pour lancer le projet en local.

📝 Journal de Bord (Devlogs)

L'historique de la conception, des premiers choix d'architecture jusqu'aux problématiques complexes de normalisation de données (unaccent) et de logistique.


🎯 Ce que ce projet démontre

Ce projet a été conçu comme un portfolio technique pour illustrer des compétences backend Symfony de niveau professionnel.

Compétence Implémentation dans le projet
Architecture en couches Controller → RequestMapper → Manager → Service → Repository
Sécurité avancée JWT + Voters Symfony (règles métier co-localisées)
Design Patterns Factory (transporteurs), DTO, Mapper, Traits
Qualité de code Tests unitaires & fonctionnels, strict typing PHP 8.4
Base de données PostgreSQL, migrations Doctrine, extension unaccent
API REST OpenAPI/Swagger auto-généré via NelmioApiDoc
Outillage Docker, Bruno (collections API versionnées), Monolog

Composant Technologie
Langage PHP 8.4 (Typage strict)
Framework Symfony 7.3
Base de données PostgreSQL 16 (Extension unaccent)
Documentation API NelmioApiDoc (Swagger/OpenAPI)
Sécurité LexikJWTAuthenticationBundle + Symfony Voters
Conteneurisation Docker & Docker-Compose

[!TIP] Le saviez-vous ? La logique de répartition des colis (Shipments) prend en compte le poids et le volume des articles pour proposer une preview de colisage avant même la validation de la commande.


👉 Accéder au Repo GitHub Backend | 👉 Accéder au Repo GitHub Frontend