Examen : Développement d'une application
de gestion des stocks et des ventes en
JavaFX
Contexte :
Une entreprise souhaite développer une application de bureau en JavaFX permettant de
gérer son stock de produits, les ventes réalisées, ainsi que la gestion des clients et des
utilisateurs (agents et administrateurs). L’application doit inclure des fonctionnalités
complètes de gestion des stocks, d’enregistrement des ventes, de génération de rapports PDF
et Excel, ainsi qu’un système d’authentification avec des rôles d’utilisateur.
Objectifs du projet :
1. Gestion des utilisateurs :
Authentification avec nom d’utilisateur et mot de passe.
Deux types d’utilisateurs :
o Administrateur : Gestion complète (produits, ventes, utilisateurs, clients,
rapports).
o Agent : Gestion des ventes et consultation du stock, sans modification des
produits ni accès aux utilisateurs.
2. Gestion des catégories et produits :
Gestion des catégories (ajouter, modifier, supprimer).
Gestion des produits :
o Ajouter, modifier et supprimer des produits.
o Chaque produit appartient à une catégorie et possède :
Un nom
Une référence unique
image
Un prix d’achat
Un prix de vente
Une quantité en stock
3. Gestion des clients :
Ajouter, modifier et supprimer des clients.
Informations des clients : nom, téléphone, adresse, email.
Un client peut avoir un historique des achats.
4. Gestion des ventes :
Enregistrer une nouvelle vente en sélectionnant :
o Un client (nouveau ou existant).
o Un ou plusieurs produits avec les quantités correspondantes.
Mise à jour automatique du stock après chaque vente.
Calcul du total de la vente et enregistrement de la date de transaction.
Affichage de l’historique des ventes.
5. Génération de rapports :
Rapport des ventes (quotidien, mensuel, annuel).
Liste des produits en rupture de stock.
Produits les plus vendus.
Chiffre d’affaires total sur une période donnée.
Historique des ventes par client.
Exportation des rapports en PDF et Excel.
6. Tableau de bord :
Statistiques et graphiques :
o Nombre total de produits en stock.
o Total des ventes sur la journée.
o Graphique des produits les plus vendus.
o Indicateur des produits en faible quantité.
Contraintes techniques :
Technologie principale : JavaFX avec Scene Builder pour l'interface graphique.
Base de données : MySQL ou SQLite (au choix).
Sécurité :
o Mot de passe hashé (exemple : BCrypt).
o Différenciation des rôles admin et agent.
o Authentification double facteur
Bibliothèques recommandées :
o JasperReports ou iText pour l’export PDF.
o Apache POI pour l’export Excel.
o JFreeChart pour les graphiques.
Structure de la base de données :
o utilisateurs (id, nom, username, mot_de_passe, role)
o categories (id, nom)
o produits (id, nom, reference, prix_achat, prix_vente, stock,
categorie_id)
o clients (id, nom, telephone, adresse, email)
o ventes (id, date_vente, total, client_id, agent_id)
o ventes_produits (id, vente_id, produit_id, quantite,
prix_unitaire)