LabCraft
Comment un FabLab peut-il gérer ses clients, ses salles et leur température depuis une seule application ?
Une application desktop en C++ / Qt pour gérer un FabLab (espace de fabrication et de coworking) : clients, employés, équipements, projets, salles et formations. J'ai réalisé le module Clients complet, la gestion des salles et la surveillance de leur température avec Arduino.
- Mon rôle
- Module Clients, gestion des salles et intégration Arduino (C++ / Qt, Oracle)
- Plateformes
- Desktop, IoT
- Stack
- C++
- Qt
- Oracle Database
- Arduino
- MVC
Situation
LabCraft centralise la gestion d’un FabLab, un espace de fabrication et de coworking, dans une application desktop : clients, employés, équipements, projets, salles et formations.
Projet académique de 2ᵉ année réalisé en équipe, chaque membre portant un module. J’ai pris en charge le module Clients de bout en bout, la gestion des salles et l’intégration Arduino qui surveille leur température.
Produit
Clients
- Fiches complètes : ajout avec contrôle de saisie et photo obligatoire, modification en deux temps (chargement puis validation), suppression.
- Liste avec photos directement dans le tableau, recherche par nom et tri par date d’inscription.
- Export PDF d’une fiche client et statistiques en graphique animé.
- E-mail de bienvenue envoyé automatiquement à chaque nouveau client.
- Scanner d’image : une photo devient un document noir et blanc à fort contraste.
Salles et température
- Salles : capacité, prix par jour, état et température maximale autorisée.
- Surveillance Arduino : la température réelle est comparée au maximum de la salle, avec une alerte pour démarrer le ventilateur.
Système
- C++11 et Qt 5 : interfaces conçues avec Qt Designer, navigation entre pages par
QStackedWidget. - Architecture en couches inspirée du MVC : vues
.ui, contrôleurs (MainWindow,SecDialog), classes métierClientetSallequi portent le CRUD. - Oracle via ODBC (Qt SQL) avec des requêtes préparées partout, contre les injections SQL ; photos stockées en BLOB et affichées grâce à un modèle SQL personnalisé.
- Client SMTP sécurisé écrit à la main sur
QSslSocket, sous forme de machine à états (EHLO, TLS, AUTH, MAIL, DATA). - Arduino Uno détecté automatiquement par ses identifiants USB, lu par Qt SerialPort (9600 bauds), avec filtrage des valeurs aberrantes.
- Qt Charts pour les statistiques, Qt PrintSupport pour les PDF.
Une requête de bout en bout