Module : Echange de données et interopérabilité
Encadrant : Prof. El Habib NFAOUI
Programme : Master WISD 2025-2026
XSON est une application JavaFX développée avec Maven pour la gestion de comptes utilisateurs, de fichiers et d'archives. L'application offre des fonctionnalités avancées de conversion bidirectionnelle entre formats JSON et XML, avec des implémentations utilisant des APIs externes (Jackson, org.json) et des implémentations personnalisées sans dépendances externes.
L'application propose des utilitaires sophistiqués pour la conversion de données :
- JsonToXml : Utilise
org.jsonet Jackson pour convertir JSON en XML avec formatage automatique et indentation - XmlToJson : Utilise
Jackson XmlMapperpour convertir XML en JSON avec pretty-printing
- JsonToXml : Parser JSON manuel avec génération XML récursive et formatage
- XmlToJson : Parser XML DOM personnalisé avec conversion en structure JSON
- Création et authentification des comptes
- Gestion des profils utilisateurs avec rôles (guest/admin)
- Sécurité avancée avec hachage BCrypt des mots de passe
- Validation des données utilisateurs
- Upload et stockage de fichiers XML/JSON
- Gestion automatique des paires de fichiers (JSON ↔ XML)
- Organisation en archives avec associations utilisateurs
- Recherche et filtrage par date de modification
- Métadonnées complètes des fichiers (nom, type, date)
- Dashboard principal avec éditeur double-panel (JSON/XML)
- Conversion en temps réel entre formats
- Gestion des archives et fichiers
- Interface intuitive avec thèmes personnalisés
- Java 21 - Langage de programmation
- JavaFX 21 - Interface utilisateur
- MySQL - Base de données
- Maven - Gestion des dépendances
- Jackson - Sérialisation JSON/XML
- org.json - Manipulation JSON
- Jakarta JSON - API JSON standard
- JDBC - Connexion base de données
- Java 21 ou supérieur
- Maven 3.x
- MySQL Server
- Créez une base de données MySQL nommée
changeData - Modifiez les paramètres de connexion dans
src/main/resources/application.properties:db.driver=com.mysql.cj.jdbc.Driver db.url=jdbc:mysql://localhost:3306/changeData?useSSL=false&serverTimezone=UTC db.user=votre_utilisateur db.password=votre_mot_de_passe
-
Clonez le repository :
git clone https://github.com/Kwimoad/XSON.git cd application -
Compilez le projet :
mvn clean compile
-
Exécutez l'application :
mvn exec:java -Dexec.mainClass="Main"
// Avec API
import org.utils.withAPI.JsonToXml;
String xml = JsonToXml.convertJsonToXmlPretty(jsonString, "root");
// Sans API
import org.utils.withoutAPI.JsonToXml;
String xml = JsonToXml.convertJsonToXmlPretty(jsonString, "root");- Lancez l'application
- Connectez-vous ou créez un compte
- Utilisez l'éditeur double-panel pour :
- Saisir du JSON et convertir en XML
- Saisir du XML et convertir en JSON
- Sauvegarder les fichiers convertis
- Gérez vos archives dans l'onglet dédié
src/main/java/org/
├── controller/ # Contrôleurs métier (File, Account, etc.)
├── dto/ # Objets de transfert de données (User, FileInformation, etc.)
├── Models/ # Repositories et accès aux données
├── service/ # Services métier (Authentication)
├── utils/ # Utilitaires de conversion et validation
│ ├── withAPI/ # Conversions avec bibliothèques externes
│ └── withoutAPI/ # Conversions personnalisées
├── views/ # Interfaces utilisateur JavaFX
│ ├── style/ # Styles et constantes UI
│ └── *.java
├── security/ # Sécurité et gestion des mots de passe (BCrypt)
├── database/ # Connexion et gestion de la base de données
├── resource/ # Ressources applicatives (ResourceDB)
└── Main.java # Point d’entrée de l’application
Pour une démonstration complète des fonctionnalités de conversion JSON/XML et de l'interface utilisateur, consultez notre vidéo explicative.
La documentation complète de l'application est générée avec Javadoc et se trouve dans le dossier :
- Aouad Abdelkarim
Ce projet est sous licence MIT. Voir le fichier LICENSE pour plus de détails.



