Mohamed Rayen Sansa
ENFR
Tous les projets
Académique · En équipe2024

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
1:10 000

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.

1:1 000

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.
1:100

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étier Client et Salle qui 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.
Interface Qt (Widgets · Designer), Arduino Uno (capteur · série 9600), Contrôleurs (MainWindow · SecDialog), Métier (Client · Salle), SMTP (SSL / TLS), Oracle (QODBC).ui → ctrl : slots; ctrl → model : CRUD; model → db : requêtes préparées; ctrl → smtp : e-mail; arduino → ctrl : températureslotsCRUDrequêtes préparéese-mailtempératureInterface QtWidgets · DesignerArduino Unocapteur · série 9600ContrôleursMainWindow · SecDialogMétierClient · SalleSMTPSSL / TLSOracleQODBC

Une requête de bout en bout

Vous recrutez ? Comparez avec votre offre

Collez votre offre de stage. Vous verrez quelles technologies demandées sont prouvées par un de mes projets ou stages, et lesquelles ne le sont pas.

Le texte reste dans votre navigateur ; rien n’est envoyé.