CAS 1 : Gestion de Parc Informatique – Société TechSolutions
TechSolutions est une société de services numériques qui emploie 50 collaborateurs.
L’entreprise gère un parc informatique complet : ordinateurs portables, écrans, téléphones
professionnels, imprimantes, etc. Ce matériel doit être suivi avec précision pour :
connaître l’employé à qui il est attribué
suivre les périodes de garantie
détecter les pannes et organiser les réparations
assurer la traçabilité du matériel retiré ou remplacé
Vous faites partie de l’équipe développement interne, et la direction IT vous confie la création
d’une API REST permettant de centraliser toutes les informations du parc.
Base de données
CREATE TABLE materiels (
id INT PRIMARY KEY AUTO_INCREMENT,
reference VARCHAR(20) UNIQUE NOT NULL,
type ENUM('ordinateur', 'ecran', 'telephone', 'imprimante'),
marque VARCHAR(50),
modele VARCHAR(50),
numero_serie VARCHAR(100) UNIQUE,
date_achat DATE,
garantie_jours INT,
statut ENUM('en_service', 'en_panne', 'en_maintenance', 'retire'),
employe_attribue VARCHAR(100),
date_attribution DATE
);
INSERT INTO materiels VALUES
(1, 'ORDI-001', 'ordinateur', 'Dell', 'Latitude 5420', 'SN-DELL-001', '2023-01-15'
, 365, 'en_service', 'Jean Dupont', '2023-02-01'),
(2, 'ECR-001', 'ecran', 'HP', '24f', 'SN-HP-001', '2023-01-15', 365, 'en_service',
'Jean Dupont', '2023-02-01'),
(3, 'TEL-001', 'telephone', 'Cisco', 'CP-8841', 'SN-CISCO-001', '2023-03-10', 180,
'en_panne', 'Marie Martin', '2023-03-15');
Travail demandé
1. Liste du matériel en panne
Créer api/materiels/[Link] qui retourne tous les équipements dont le statut est
en_panne.
2. Recherche par employé
Créer api/materiels/[Link]?nom=Jean+Dupont
→ doit retourner tous les matériels attribués à un employé donné.
3. Alertes fin de garantie
Créer un endpoint qui retourne les matériels dont la garantie expire dans les 30 prochains
jours.
4. Mise à jour du statut d’un équipement
Créer un endpoint en PUT permettant de modifier le statut d’un matériel (ex : en_panne →
en_maintenance).
CAS 2 : Suivi des Interventions – Société MaintenancePro
Contexte
MaintenancePro est une entreprise spécialisée dans la maintenance technique pour les hôtels,
restaurants et bureaux. Elle gère chaque jour des dizaines d’interventions : pannes électriques,
climatisation, équipements industriels, etc.
Pour améliorer la communication entre les techniciens et l’administration, l’entreprise
souhaite une API de suivi des interventions, capable de :
créer des tickets d’intervention
assigner un technicien
suivre l’évolution du statut
mesurer le temps passé
collecter la signature du client après intervention
Vous êtes chargé d'ajouter plusieurs fonctionnalités clés à l’API interne.
Base de données existante
CREATE TABLE interventions (
id INT PRIMARY KEY AUTO_INCREMENT,
ticket_number VARCHAR(20) UNIQUE NOT NULL,
client_id INT NOT NULL,
technicien_id INT,
date_creation DATETIME DEFAULT CURRENT_TIMESTAMP,
date_intervention DATE,
statut ENUM('ouverte', 'planifiee', 'en_cours', 'terminee', 'annulee'),
priorite ENUM('basse', 'moyenne', 'haute', 'urgente'),
description TEXT,
temps_passe_minutes INT,
signature_client TEXT
);
CREATE TABLE clients (
id INT PRIMARY KEY AUTO_INCREMENT,
nom VARCHAR(100),
adresse TEXT,
telephone VARCHAR(20),
email VARCHAR(100)
);
INSERT INTO clients VALUES
(1, 'Restaurant Le Bon Goût', '12 Rue de la Paix, Paris', '01 42 42 42 42', 'conta
ct@[Link]'),
(2, 'Hotel Central', '25 Av. des Champs-Élysées', '01 43 43 43 43', 'reception@hot
[Link]');
INSERT INTO interventions VALUES
(1, 'TICKET-2024-001', 1, 101, '2024-01-15 09:00:00', '2024-01-16', 'terminee', 'm
oyenne', 'Four à pizza en panne', 120, 'signature_base64_encoded'),
(2, 'TICKET-2024-002', 2, 102, '2024-01-16 14:30:00', '2024-01-17', 'en_cours', 'h
aute', 'Climatisation salle de réunion', 45, NULL);
Travail demandé
1. Liste des interventions urgentes
Créer un endpoint listant toutes les interventions de priorité haute ou urgente.
2. Création d’un ticket
Créer un endpoint POST qui ajoute une nouvelle intervention avec :
numéro de ticket
client
priorité
description
3. Statistiques technicien
Créer un endpoint retournant le temps total passé par chaque technicien sur les interventions.
4. Enregistrement d'une signature client
Créer un endpoint acceptant une signature encodée en base64.
CAS 3 : Gestion de Stock – Pharmacie SantéPlus
Contexte
La pharmacie SantéPlus gère un stock important de médicaments. Elle doit contrôler :
les dates de péremption
les seuils d’alerte
la gestion des entrées et sorties
la valeur financière du stock
la traçabilité réglementaire (produit, lot, mouvement, utilisateur)
Vous êtes chargé de développer une API de gestion de stock sécurisée, utilisée par les
pharmaciens et préparateurs.
Base de données existante
CREATE TABLE produits (
id INT PRIMARY KEY AUTO_INCREMENT,
code_cip VARCHAR(50) UNIQUE NOT NULL,
nom VARCHAR(200) NOT NULL,
principe_actif VARCHAR(100),
categorie ENUM('antibiotique', 'antalgique', 'vitamine', 'cardiologie', 'derma
tologie'),
forme_galenique ENUM('comprime', 'gelule', 'sirop', 'pommade', 'injectable'),
stock_actuel INT DEFAULT 0,
stock_seuil_alerte INT DEFAULT 5,
prix_achat DECIMAL(10,2),
prix_vente DECIMAL(10,2),
date_peremption DATE,
fournisseur VARCHAR(100)
);
CREATE TABLE mouvements_stock (
id INT PRIMARY KEY AUTO_INCREMENT,
produit_id INT,
type_mouvement ENUM('entree', 'sortie', 'inventaire', 'perte'),
quantite INT,
date_mouvement DATETIME DEFAULT CURRENT_TIMESTAMP,
reference_document VARCHAR(100),
utilisateur VARCHAR(50),
FOREIGN KEY (produit_id) REFERENCES produits(id)
);
INSERT INTO produits VALUES
(1, '3400935687456', 'DOLIPRANE 1000mg', 'Paracétamol', 'antalgique', 'comprime',
45, 10, 2.50, 4.20, '2025-06-30', 'Sanofi'),
(2, '3400958723654', 'AMOXICILLINE 500mg', 'Amoxicilline', 'antibiotique', 'gelule
', 22, 5, 3.80, 6.50, '2024-12-15', 'GSK'),
(3, '3400912345678', 'VITAMINE C 500mg', 'Acide ascorbique', 'vitamine', 'comprime
', 8, 15, 1.20, 2.80, '2026-03-20', 'Bayer');
INSERT INTO mouvements_stock VALUES
(1, 1, 'entree', 100, '2024-01-10 08:30:00', 'BL-2024-001', 'pharmacien'),
(2, 1, 'sortie', 55, '2024-01-15 16:45:00', 'VENTE-2024-001', 'vendeur');
Travail demandé
1. Alertes stock bas
Créer un endpoint listant les produits dont le stock est inférieur ou égal au seuil d’alerte.
2. Alertes péremption
Lister les produits expirant dans moins de 3 mois.
3. Historique des mouvements
Créer un endpoint retournant tout l’historique d’un produit (entrées, sorties, pertes,
inventaires).
4. Valeur financière du stock
Créer un endpoint calculant la valeur totale du stock : prix_achat × stock_actuel