Version : 1.0
Date : Janvier 2026
Auteurs : KLILA Mohamed et CHAGHAL Mohamed Amine
DMPS (Data & Media Processing Studio) est une application desktop modulaire développée en C++ avec Qt, permettant de charger, traiter et sauvegarder différents types de données (texte, images, tableaux) à travers une architecture de modules interchangeables.
Technologies : C++17, Qt 6, CMake, STB
- Chargement multi-formats : Différents fichiers textes, images et deux formats en mode Tabular:
.csv,.xlsx - Système de modules : 35+ modules (texte, image, tableaux) avec activation/désactivation dynamique
- Configuration des paramètres : Interface graphique pour configurer chaque module
- Exécution en pipeline : Application séquentielle avec gestion d'erreurs
- Affichage des résultats : Arborescence des résultats + logs chronologiques
- Sauvegarde multi-formats : Export dans différents formats
- Interface professionnelle : Docks redimensionnables, raccourcis clavier, thèmes clair/sombre
┌──────────────┐
│ UI │ MainWindow, Dialogs, Widgets
│ (Qt/QML) │
└──────┬───────┘
│
┌──────▼───────┐
│ Controller │ Orchestration UI ↔ Engine
└──────┬───────┘
│
┌──────▼───────┐
│ Engine │ Logique métier, pipeline
└──────┬───────┘
│
┌──────┴───────┬──────────┬──────────┐
│ Data │ Modules │ Managers │
└──────────────┴──────────┴──────────┘
Patterns utilisés : Factory, Strategy, Registry, Adapter, Observer
DMPS/
├── CMakeLists.txt # Configuration build
│
├── src/
│ ├── core/ # Types de base (DataType, ModuleResult, etc.)
│ ├── data/ # Modèles de données (IData, TextData, ImageData, TabularData)
│ ├── module/ # Modules de traitement (~35 modules)
│ │ ├── IModule.hpp
│ │ ├── text/
│ │ ├── image/
│ │ └── tabular/
│ ├── moduleManager/ # Gestion modules (Registry, Manager)
│ ├── engine/ # Moteur principal (Engine)
│ ├── dataLoader/ # Chargement fichiers (Loaders + Manager)
│ ├── dataSaver/ # Sauvegarde fichiers (Savers + Manager)
│ ├── controller/ # Contrôleur MVC
│ └── ui/ # Interface utilisateur
│ ├── MainWindow.ui/hpp/cpp
│ ├── display/ # Adaptateurs affichage (Text, Image, Tabular)
│ ├── dialogs/ # Config modules, paramètres
│ └── widgets/ # Results Explorer, Messages Log, Renderers
│
├── include/ # Headers externes (STB)
└── build/ # Dossier de build
- Data Layer : Représentation polymorphe des données (TextData, ImageData, TabularData)
- Module Layer : Modules de traitement implémentant
IModule::apply() - Engine : Orchestrateur central (chargement, exécution pipeline, sauvegarde)
- Module Management : Registry (métadonnées + factories) + Manager (cycle de vie)
- Controller : Pont UI ↔ Engine
- UI Layer : MainWindow + Dialogs + DisplayAdapters + Result Widgets
- Qt 6 (ou Qt 5.15+)
- CMake 3.16+
- Compilateur C++17
-
Ouvrir le projet
- Lancer Qt Creator
- File → Open File or Project
- Sélectionner
CMakeLists.txt - Configure Project
-
Compiler
- Build → Build Project (
Ctrl+B)
- Build → Build Project (
-
Exécuter
- Build → Run (
Ctrl+R)
- Build → Run (
mkdir build && cd build
cmake ..
make -j4
./DMPSFile → Open
Sélectionner un fichier texte, une image ou un fichier CSV/XLSX
(⚠️ éviter les chemins contenant des caractères accentués ou non ASCII)
→ Le fichier s'affiche dans la fenêtre centrale
Ctrl + molette de la souris : zoom avant / arrière sur la donnée affichée
Modules → Enable/Disable
→ Cocher les modules désirés (ex: "To Upper", "Grayscale")
→ Sélectionner un module coché avec paramètres
→ Cliquer "Configure" pour ajuster les paramètres
→ OK pour valider
Modules → Apply Modules
→ Pipeline s'exécute
→ Results Explorer (gauche) : résultats par module
→ Messages Log (bas) : logs d'exécution
→ Fenêtre centrale : donnée modifiée
File → Save As
→ Choisir format et emplacement
→ Save
File → Exit
Settings → Theme → Light / Dark : Basculer entre thème clair et sombre (sauvegardé automatiquement)