Module: Data Exchange and Interoperability
Supervisor: Prof. El Habib NFAOUI
Program: Master WISD 2025-2026
XSON is a JavaFX application developed with Maven for managing user accounts, files, and archives. The application provides advanced features for bidirectional conversion between JSON and XML formats, with implementations using external APIs (Jackson, org.json) and custom implementations without external dependencies.
The application offers sophisticated utilities for data conversion:
- JsonToXml: Uses
org.jsonand Jackson to convert JSON to XML with automatic formatting and indentation. - XmlToJson: Uses
Jackson XmlMapperto convert XML to JSON with pretty-printing.
- JsonToXml: Manual JSON parser with recursive XML generation and formatting.
- XmlToJson: Custom DOM XML parser with conversion to JSON structure.
- Account creation and authentication
- User profile management with roles (guest/admin)
- Advanced security with BCrypt password hashing
- User data validation
- Upload and storage of XML/JSON files
- Automatic management of file pairs (JSON ↔ XML)
- Organization into archives with user associations
- Search and filter by modification date
- Full file metadata (name, type, date)
- Main dashboard with dual-panel editor (JSON/XML)
- Real-time conversion between formats
- Archive and file management
- Intuitive interface with custom themes
- Java 21 - Programming language
- JavaFX 21 - User interface
- MySQL - Database
- Maven - Dependency management
- Jackson - JSON/XML serialization
- org.json - JSON manipulation
- Jakarta JSON - Standard JSON API
- JDBC - Database connection
- Java 21 or higher
- Maven 3.x
- MySQL Server
- Create a MySQL database named
changeData - Update the connection settings in
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=your_username db.password=your_password
-
Clone the repository:
git clone https://github.com/Kwimoad/XSON.git cd application -
Compile the project:
mvn clean compile
-
Run the application:
mvn exec:java -Dexec.mainClass="Main"
// With API
import org.utils.withAPI.JsonToXml;
String xml = JsonToXml.convertJsonToXmlPretty(jsonString, "root");
// Without API
import org.utils.withoutAPI.JsonToXml;
String xml = JsonToXml.convertJsonToXmlPretty(jsonString, "root");- Launch the application
- Log in or create an account
- Use the dual-panel editor to:
- Enter JSON and convert to XML
- Enter XML and convert to JSON
- Save converted files
- Manage your archives in the dedicated tab
src/main/java/org/
├── controller/ # Business controllers (File, Account, etc.)
├── dto/ # Data Transfer Objects (User, FileInformation, etc.)
├── Models/ # Repositories and data access
├── service/ # Business services (Authentication)
├── utils/ # Conversion and validation utilities
│ ├── withAPI/ # Conversions using external libraries
│ └── withoutAPI/ # Custom conversions
├── views/ # JavaFX user interfaces
│ ├── style/ # UI styles and constants
│ └── *.java
├── security/ # Security and password management (BCrypt)
├── database/ # Database connection and management
├── resource/ # Application resources (ResourceDB)
└── Main.java # Application entry point
For a complete demonstration of JSON/XML conversion features and the user interface, watch our explanatory video.
The complete application documentation is generated using Javadoc and is located in the following directory:
- Aouad Abdelkarim
This project is licensed under MIT. See the LICENSE file for more details.



