Retour aux Projets
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
Inventaire de magasin

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 MySQL
  • DB_USER: Utilisateur MySQL
  • DB_PASSWORD: Mot de passe de l'utilisateur MySQL
  • DB_ROOT_PASSWORD: Mot de passe de l'utilisateur root MySQL
  • DB_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écifique
  • POST /users - Création d'un utilisateur
  • PUT /users/{id} - Mise à jour d'un utilisateur
  • DELETE /users/{id} - Suppression d'un utilisateur

🛍️ Produits

  • GET /products - Liste de tous les produits
  • GET /products/{id} - Détails d'un produit spécifique
  • POST /products - Création d'un nouveau produit
  • PUT /products/{id} - Mise à jour complète d'un produit
  • DELETE /products/{id} - Suppression d'un produit
  • PATCH /products/{id}/stock - Mise à jour du stock d'un produit

📂 Catégories

  • GET /categories - Liste des catégories
  • POST /categories - Création d'une catégorie

📦 Commandes

  • GET /orders - Liste de toutes les commandes
  • GET /orders/{id} - Détails d'une commande spécifique
  • POST /orders - Création d'une nouvelle commande
  • PATCH /orders/{id}/status - Mise à jour du statut d'une commande
  • POST /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

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.