Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

93 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🖥️ CyberLab Manager

Application de bureau pour la gestion de laboratoires de machines virtuelles VirtualBox, à destination des analystes en cybersécurité (étudiants, pentesteurs, chercheurs).

CyberLab Manager n'est pas un hyperviseur — c'est une couche de gestion au-dessus de VirtualBox. Elle permet d'organiser des VM en laboratoires thématiques (malware, pentest, réseau...), de les piloter, de gérer leurs snapshots, de tenir un journal d'analyse horodaté, et d'exporter tout le contenu souhaité en des rapports PDF complets.


📸 Aperçu

Interface principale

Vous verrez ceci comme écran principal de l'application .

Interface principale

Création d'un nouveau laboratoire

Appuyez sur le bouton Import VM en bas à gauche et un formulaire de création d'un laboratoire de travail apparaîtra . Créer labo

Voici un exemple rempli pour la démonstration Créer labo-demo

Un message de confirmation devrait apparaître offrant la possibilité d'importer des VM immédiatement . Créer labo-confirmation

Import d'une machine virtuelle

Si vous importez une machine une machine virtuelle, l'appli détectera vos VMs et vous offrira la possibilité de choisir , dans notre exemple, étant donné une seule machine présente , on l'a choisi . Import VM

De retour sur l'écran principale , vous pourez voir votre VM fraîchement importée. Main view VM

Gestion d'une machine virtuelle

Maintenant vous pourrez manager cette machine. Cliquez dessus et les options devraient apparaître un peu comme ceci Gestion VM

À présent cliquez sur le bouton vert Start à droite et la machine devrait démarrer en background , et vous devriez voir le bouton changer pour vous indiquer cela. VM démarré

Vous pouvez aller checker cela en temps réel comme on l'a fait dans l'exemple . VM checké démarré

Une fois votre travail fini vous pouvez rééteindre votre machine en appuyant sur le bouton maintenant devenu rouge Stop. VM éteint

Export PDF

Juste en haut m bouton bleu ,vous pouvez décider d'exporter votre travail fait jusque là en format PDF.

Warning

Cette fonctionnalité est encore en perfection et nous travaillons activement pour apporter des améliorations plus poussées et professionnelles, toutefois , cela devrait fonctionner parfaitement.

Export PDF

Cela est un exemple de pdf que vous pourrez générer .


✨ Fonctionnalités

  • Gestion de laboratoires — création, modification, suppression de laboratoires thématiques
  • Import de VM — détection automatique des VM VirtualBox existantes, rattachement à un laboratoire (ou VM orphelines)
  • Pilotage complet — démarrage, arrêt, sauvegarde d'état
  • Snapshots — création et restauration d'instantanés VirtualBox
  • Journal d'analyse — prise de notes horodatées par VM, persistées en base
  • Export PDF — rapport récapitulatif par laboratoire (VM, statuts, snapshots, notes)
  • Configuration — chemin VBoxManage et dossier d'export personnalisables

🏗️ Architecture

Le projet suit une architecture en couches avec séparation stricte des responsabilités :

tg.cyberlabmanager
├── model         → Entités métier (Lab, VirtualMachine, Snapshot, JournalEntry, AuditEntry, VMStatus, AppConfig)
├── hypervisor    → Intégration VirtualBox (IHypervisor, VBoxOrchestrator, exceptions)
├── data          → Persistance SQLite (DatabaseManager)
├── pdf           → Génération de rapports (PdfExporter, Apache PDFBox)
├── controller    → Orchestration (LabController)
└── ui            → Interface JavaFX

Chaque couche est développée indépendamment autour de contrats d'interface fermes, permettant un développement parallèle en équipe sans conflit d'intégration.


🛠️ Stack technique

Composant Technologie
Langage Java 17
Interface graphique JavaFX 21.0.6
Build Maven (JPMS / module tg.cyberlabmanager)
Persistance SQLite (sqlite-jdbc)
Export PDF Apache PDFBox
Tests JUnit 5, Mockito
CI GitHub Actions
Intégration hyperviseur VirtualBox via VBoxManage (ProcessBuilder)

🚀 Installation et lancement

Prérequis

  • Java 17 (JDK)
  • Maven (ou utiliser le wrapper ./mvnw inclus)
  • VirtualBox installé, avec VBoxManage accessible

Lancer l'application

git clone https://github.com/4rthur-Root/CyberLab.git
cd CyberLab
./mvnw javafx:run

Lancer les tests

./mvnw test

👥 Équipe et répartition des rôles

Projet réalisé en trinôme, avec une répartition claire des responsabilités formalisée dans un contrat d'interface dès le lancement du projet.

Rôle Responsabilité Modules
Rôle 1(GAHOUNZO) — Lead Front-end / UX Interface graphique JavaFX, orchestration via LabController ui, controller
Rôle 2(AKAKPO) — Back-end / Data Persistance SQLite, export PDF, configuration data, pdf
Rôle 3(KPODONOU) — Ingénieur VirtualBox / Intégration Modèle métier, intégration VirtualBox model, hypervisor

Cette approche contractuelle — chaque rôle s'engageant sur des signatures de méthodes précises avant l'implémentation — a permis un développement parallèle sans blocage d'intégration majeur.


🔒 Qualité et CI/CD

  • Tests unitaires systématiques sur la logique métier et de parsing (couverture complète des couches model et hypervisor)
  • Intégration continue via GitHub Actions à chaque push et pull request
  • Revue de code obligatoire avant fusion sur les branches protégées (develop, main)
  • Convention de branches : feature/**developmain
  • Commits conventionnels en français pour un historique lisible

🗺️ Roadmap

L'application répond au cahier des charges académique. Les pistes suivantes sont envisagées pour en faire un outil utilisable au-delà du cadre du cours :

  • Support multi-hyperviseur (KVM/libvirt) pour une utilisation sur environnements Linux natifs
  • Piste d'audit complète (traçabilité de chaque action sur les VM)
  • Export et import de configuration de laboratoire (portabilité entre postes)
  • Packaging natif multi-plateforme (.exe, .deb, .rpm, .AppImage, .dmg) via jpackage
  • Interface en ligne de commande (CLI) pour l'automatisation

📄 Licence


🙏 Remerciements

Projet réalisé dans le cadre d'un cours de développement logiciel. Merci à notre professeur pour l'encadrement et à VirtualBox / Apache PDFBox pour leurs outils open source.

About

Desktop app to manage VirtualBox VM labs for security analysts - organize VMs by lab, control snapshots, keep timestamped analysis notes, and export PDF reports. Built with JavaFX + SQLite.

Topics

Resources

Contributing

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages