TP Avancé Python – Gestion d’une Quincaillerie avec Intégration Git
Contexte général
Une quincaillerie souhaite informatiser la gestion de ses produits, de ses clients et de ses ventes. Le
système doit permettre l’enregistrement, la consultation, la mise à jour et l’analyse des données,
tout en assurant leur persistance à l’aide de fichiers.
Le projet est développé en Python, structuré de manière professionnelle, et suivi intégralement avec
Git selon de bonnes pratiques (branches, commits atomiques, fusion, correction).
Objectifs pédagogiques
• Concevoir une application Python modulaire basée sur dictionnaires, listes, fonctions et
fichiers
• Gérer des données persistantes via des fichiers texte
• Mettre en place une structure de projet claire
• Utiliser Git de manière avancée (branches, workflow, correction, fusion)
Structure du projet
quincaillerie/
├── src/
│ ├── [Link]
│ ├── [Link]
│ ├── [Link]
│ ├── [Link]
│ └── [Link]
├── data/
│ ├── [Link]
│ ├── [Link]
│ └── [Link]
├── tests/
│ └── test_fonctions.py
├── [Link]
└── .gitignore
Modélisation des données
Produit
Représenté par un dictionnaire :
• code
• nom
• catégorie
• prix
• stock
Client
• id_client
• nom
• téléphone
Vente
• id_vente
• code_produit
• id_client
• quantité
• date
Travail demandé (Partie Python)
1. Fonction saisirProduit()
Demande à l’utilisateur de saisir les informations d’un produit et retourne un dictionnaire.
2. Fonction enregistrerProduit(produit)
Enregistre un produit dans data/[Link] sous forme :
code;nom;catégorie;prix;stock
3. Fonction lireProduits()
Lit le fichier des produits et retourne une liste de dictionnaires.
4. Fonction rechercherProduit(code)
Recherche un produit par son code.
5. Fonction mettreAJourStock(code, quantite)
Met à jour le stock après une vente.
6. Fonction supprimerProduit(code)
Supprime un produit du fichier.
7. Gestion des clients
Fonctions analogues : saisie, enregistrement, lecture, recherche.
8. Fonction enregistrerVente()
• Vérifie l’existence du produit et du client
• Vérifie la disponibilité du stock
• Enregistre la vente dans [Link]
• Met à jour le stock
9. Fonction lireVentes()
Retourne toutes les ventes.
10. Fonction chiffreAffaires()
Calcule le chiffre d’affaires total.
11. Fonction produitsLesPlusVendus()
Classe les produits par quantité vendue.
12. Fonction statistiquesGlobales()
Affiche :
• Nombre total de produits
• Nombre total de clients
• Nombre total de ventes
• Chiffre d’affaires
• Répartition des ventes par catégorie
Exemple de code ([Link])
def enregistrerProduit(p):
with open('data/[Link]', 'a') as f:
ligne = f"{p['code']};{p['nom']};{p['categorie']};{p['prix']};{p['stock']}\n"
[Link](ligne)
Partie Git – Gestion avancée du projet
Initialisation
git init
git add .
git commit -m "Initialisation du projet quincaillerie"
Branches recommandées
• main : version stable
• dev : développement global
• feature/produits
• feature/clients
• feature/ventes
• fix/statistiques
Création d’une branche fonctionnelle
git checkout -b feature/produits
Workflow standard
git status
git add src/[Link]
git commit -m "Ajout de la gestion des produits"
Fusion vers dev
git checkout dev
git merge feature/produits
Correction d’un bug
git checkout -b fix/statistiques
git commit -am "Correction calcul chiffre d'affaires"
Fusion finale vers main
git checkout main
git merge dev
git tag v1.0
git push origin main --tags
Évaluation
• Qualité du code Python
• Respect de la structure
• Bonne utilisation des fichiers
• Historique Git clair et cohérent
• Utilisation correcte des branches et fusions
Résultat attendu
Une application Python fonctionnelle, maintenable et versionnée professionnellement, simulant la
gestion réelle d’une quincaillerie avec des pratiques Git avancées.