📌 Fiche de Gestion d’une Boutique Digitale de Vente de Parfums avec Laravel,
React et MongoDB (NoSQL)
Ce projet permet de gérer une boutique en ligne de parfums en utilisant Laravel pour le
backend, React pour le frontend, et MongoDB comme base de données NoSQL.
1️⃣ Technologies utilisées
Technologie Rôle
Laravel Backend (API REST, gestion des produits et commandes)
React Frontend (Interface utilisateur pour la boutique)
Base de données NoSQL (Stockage des produits et des
MongoDB
commandes)
Stripe / PayPal Paiement sécurisé
JWT (JSON Web
Authentification des clients et administrateurs
Token)
2️⃣ Fonctionnalités principales
✅ Gestion des parfums
🛍️Ajout, modification et suppression de parfums par l'administrateur.
📂 Catégorisation des parfums (Homme, Femme, Unisexe, Luxe…).
🔍 Recherche avancée par marque, prix, notes olfactives….
✅ Gestion des commandes et paiements
🛒 Panier d’achat et gestion des stocks.
💳 Paiement sécurisé avec Stripe ou PayPal.
📦 Suivi des commandes (préparation, expédition, livraison).
✅ Gestion des utilisateurs et avis
👤 Inscription et connexion des clients via JWT.
📝 Notation et avis sur les parfums.
❤️Ajout de parfums aux favoris pour un achat ultérieur.
✅ Promotion et recommandations
🎁 Coupons de réduction et offres spéciales.
🤖 Recommandation de parfums selon les préférences du client.
3️⃣ Architecture du projet
Frontend (React)
📌 Interface utilisateur moderne et interactive connectée au backend Laravel via API.
📂 Composants principaux :
o Home.js → Page d’accueil avec promotions et parfums populaires.
o Product.js → Détails d’un parfum avec description et avis.
o Cart.js → Gestion du panier et paiement.
Backend (Laravel)
📌 API REST pour gérer la boutique, les commandes et l’authentification.
📂 Principales routes API :
Route::post('/login', [AuthController::class, 'login']);
Route::get('/parfums', [ParfumController::class, 'index']);
Route::post('/ajouter-parfum', [ParfumController::class, 'store']);
Route::post('/commande', [CommandeController::class, 'store']);
📂 Connexion Laravel à MongoDB (via jenssegers/mongodb)
use Jenssegers\Mongodb\Eloquent\Model;
class Parfum extends Model {
protected $connection = 'mongodb';
protected $collection = 'parfums';
}
Base de données (MongoDB)
📌 Stocke les informations sur les parfums et les commandes.
Exemple d’un document parfums dans MongoDB :
{
"_id": "65dcba67f1234",
"nom": "Dior Sauvage",
"marque": "Dior",
"description": "Un parfum intense et raffiné.",
"prix": 120,
"genre": "Homme",
"stock": 50,
"notes_olfactives": ["Bergamote", "Ambroxan", "Poivre"],
"avis": [
{ "utilisateur": "Ahmed", "commentaire": "Excellent parfum!",
"note": 5 },
{ "utilisateur": "Fatima", "commentaire": "Odeur agréable,
mais un peu cher!", "note": 4 }
]
}
Exemple d’un document commandes :
{
"_id": "65dcba89b321",
"utilisateur_id": "12345",
"parfums": [
{ "nom": "Dior Sauvage", "quantite": 1, "prix": 120 }
],
"total": 120,
"statut": "En cours",
"date": "2025-02-25"
}
4️⃣ Sécurité et Authentification
📌 JWT (JSON Web Token) pour sécuriser l’accès aux commandes et avis.
Exemple d’authentification avec JWT dans Laravel
public function login(Request $request) {
$user = User::where('email', $request->email)->first();
if (!$user || !Hash::check($request->password, $user->password))
{
return response()->json(['error' => 'Email ou mot de passe
incorrect'], 401);
}
return response()->json(['token' => $user->createToken('API
Token')->plainTextToken]);
}
Vérification du JWT dans les routes API
Route::middleware('auth:sanctum')->group(function () {
Route::post('/ajouter-parfum', [ParfumController::class,
'store']);
Route::post('/ajouter-avis/{id}', [ParfumController::class,
'ajouterAvis']);
});
5️⃣ Déploiement et Sécurité
Déploiement
Backend Laravel → Hébergé sur Heroku, AWS ou DigitalOcean.
Frontend React → Hébergé sur Vercel ou Netlify.
Base de données MongoDB → Utilisation de MongoDB Atlas (Cloud).
Sécurité
🔐 JWT pour l’authentification des utilisateurs.
🛡️Validation des entrées API pour éviter les injections SQL.
🕵️♂️Chiffrement des données sensibles (mots de passe, paiements).
🎯 Résumé
Élément Description
Frontend React.js avec Material UI pour l’interface utilisateur.
Élément Description
Backend Laravel avec MongoDB et API REST.
Base de données MongoDB pour stocker parfums et commandes.
Paiement Intégration Stripe ou PayPal pour sécuriser les achats.
Sécurité JWT, validation des entrées et chiffrement des données.
Déploiement Laravel sur Heroku, React sur Vercel, MongoDB via Atlas.
📌 Prochaines étapes
✅ Développer le MVP avec les fonctionnalités essentielles.
✅ Tester l’intégration des paiements Stripe / PayPal.
✅ Améliorer l’interface utilisateur avec une meilleure expérience UX/UI.
✅ Ajouter une gestion des promotions et des recommandations personnalisées.
💡 Besoin d’un prototype ou d’un guide détaillé pour implémenter chaque partie ? 🛍️🚀