Web
Documentation API
Dernière mise à jour: 01/03/2025
Inventaire de magasin
Application web de gestion d'inventaire conçue pour les petits commerçants, permettant de gérer efficacement les stocks, les produits et les utilisateurs.
PHP
MySQL
HTML
CSS
JavaScript

Détails du Projet
- Catégorie:
- Web
- Dernière mise à jour:
- 01/03/2025
- Documentation API:
- Disponible
API de Gestion d'Inventaire pour Petits Commerçants
Introduction
Cette API permet aux petits commerçants de gérer efficacement leurs inventaires, leurs ventes et leurs commandes en temps réel. Développée avec PHP et conteneurisée avec Docker, elle offre une solution complète pour le suivi des stocks et la gestion des commandes.
Fonctionnalités
- Gestion des produits: Ajout, modification, suppression et consultation des produits
- Suivi des stocks: Mise à jour en temps réel des niveaux de stock
- Gestion des commandes: Création, suivi et traitement des commandes
- Gestion des retours: Traitement des retours de produits avec mise à jour automatique des stocks
- Authentification sécurisée: Système d'authentification JWT pour sécuriser l'accès à l'API
Prérequis
- Docker et Docker Compose installés sur votre machine
- Composer pour la gestion des dépendances PHP
Configuration
Avant de démarrer le projet, configurez vos variables d'environnement en copiant le fichier .env.sample
vers .env
cp .env.sample .env
Modifiez le fichier .env
avec vos paramètres :
DB_NAME
: Nom de votre base de données MySQLDB_USER
: Utilisateur MySQLDB_PASSWORD
: Mot de passe de l'utilisateur MySQLDB_ROOT_PASSWORD
: Mot de passe de l'utilisateur root MySQLDB_PORT
: Port pour MySQL (par défaut 3306)PHPMYADMIN_PORT
: Port pour phpMyAdmin (par défaut 8090)
Installation
# Installation des dépendances PHP cd app && composer install && cd ../ # Démarrage des conteneurs Docker docker-compose up -d
Documentation de l'API
🔑 Authentification
Connexion
POST /auth/login
Body :
{ "email": "user@example.com", "password": "password123" }
Réponse :
{ "token": "your_jwt_token", "user": { "id": 1, "name": "John Doe", "email": "user@example.com" } }
Inscription
POST /auth/register
Body :
{ "name": "John Doe", "email": "user@example.com", "password": "password123" }
👥 Utilisateurs
GET /users
- Liste des utilisateurs (admin seulement)GET /users/{id}
- Détails d'un utilisateur spécifiquePOST /users
- Création d'un utilisateurPUT /users/{id}
- Mise à jour d'un utilisateurDELETE /users/{id}
- Suppression d'un utilisateur
🛍️ Produits
GET /products
- Liste de tous les produitsGET /products/{id}
- Détails d'un produit spécifiquePOST /products
- Création d'un nouveau produitPUT /products/{id}
- Mise à jour complète d'un produitDELETE /products/{id}
- Suppression d'un produitPATCH /products/{id}/stock
- Mise à jour du stock d'un produit
📂 Catégories
GET /categories
- Liste des catégoriesPOST /categories
- Création d'une catégorie
📦 Commandes
GET /orders
- Liste de toutes les commandesGET /orders/{id}
- Détails d'une commande spécifiquePOST /orders
- Création d'une nouvelle commandePATCH /orders/{id}/status
- Mise à jour du statut d'une commandePOST /orders/{id}/return
- Traitement d'un retour de commande
Exemples d'utilisation
Création d'un produit
POST /products { "name": "T-shirt", "description": "T-shirt en coton bio", "price": 19.99, "stock_quantity": 100 }
Création d'une commande
POST /orders { "customer_name": "Jean Dupont", "items": [ { "product_id": 1, "quantity": 2 }, { "product_id": 3, "quantity": 1 } ] }
Mise à jour du stock
PATCH /products/5/stock { "adjustment": -10, "reason": "Vente en magasin" }
Accès aux services
- API: http://localhost
- phpMyAdmin: http://localhost:8090
Dépannage
Problèmes courants
- Connexion refusée à la base de données: Vérifiez les variables d'environnement dans le fichier
.env
- Token JWT invalide: Assurez-vous que le token est valide et non expiré
- Erreur 429: Vous avez dépassé la limite de requêtes par minute
Logs
Les logs sont disponibles via:
docker-compose logs api
Améliorations Futures
- Application mobile pour la gestion sur le terrain
- Tableau de bord d'analyse avancée
- Intégration avec des systèmes de point de vente
- Support pour les codes-barres et les scanners
- Internationalisation et localisation
Licence
Ce projet est sous licence MIT.