Backend de l'application FRNY, une plateforme e-commerce permettant la mise en relation entre vendeurs et acheteurs.
- Système d'inscription et connexion pour les utilisateurs et vendeurs
 - Protection des routes avec JWT
 - Gestion des sessions avec cookies
 
- CRUD complet pour les articles
 - Gestion des images avec Cloudinary
 - Système de catégorisation
 - Gestion des stocks
 
- Création de commandes sécurisées
 - Suivi de statut des commandes
 - Validation des stocks
 - Historique des commandes par utilisateur et par vendeur
 
- Intégration avec Stripe
 - Gestion des transactions sécurisées
 - Système de remboursement
 - Webhooks pour le suivi des paiements
 
- Node.js & Express.js - Framework backend
 - MongoDB & Mongoose - Base de données et ODM
 - JWT - Authentification
 - Bcrypt - Hashage des mots de passe
 - Cloudinary - Gestion des images
 - Stripe - Système de paiement
 - Dotenv - Gestion des variables d'environnement
 
src/
├── controllers/        # Logique métier
├── models/            # Modèles de données
├── middleware/        # Middlewares (auth, validation)
├── routes/           # Définition des routes
├── utils/            # Utilitaires
├── lib/              # Configurations externes
└── index.js          # Point d'entrée
- Clonez le repository
 
git clone https://github.com/elhalj/frny_back.git
cd frny_back- Installez les dépendances
 
npm install- Configurez les variables d'environnement
 
cp .env.example .env
# Remplissez les variables dans .env- Démarrez le serveur
 
npm start- name
 - firstName
 - password (hashé)
 - address (city, municipality, street)
 
- name
 - firstName
 - password (hashé)
 - address (city, municipality, number)
 - gender
 - profilePic
 
- name
 - price
 - details
 - category
 - stock
 - rate
 - image
 - vendor (référence)
 
- user (référence)
 - article (référence)
 - quantity
 - totalPrice
 - status
 - vendor (référence)
 
POST /api/article/add- Ajouter un article (vendeur)GET /api/article/get- Obtenir tous les articlesGET /api/article/getArticle/me- Obtenir les articles d'un vendeurPUT /api/article/update/:id- Mettre à jour un articleDELETE /api/article/delete/:id- Supprimer un article
POST /api/commande/- Créer une commandeGET /api/commande/user- Obtenir les commandes d'un utilisateurGET /api/commande/vendor- Obtenir les commandes d'un vendeurPATCH /api/commande/:id/status- Mettre à jour le statut d'une commande
- Routes utilisateur: 
/api/user/ - Routes vendeur: 
/api/vendor/ 
- Authentification JWT
 - Protection des routes
 - Hashage des mots de passe
 - Validation des données
 - Gestion sécurisée des paiements
 - Protection CORS
 
- Système de notifications
 - Gestion des retours
 - Système de notation des vendeurs
 - Gestion des promotions
 - Système de recherche avancé
 
MIT © [elhalj]