Mai 2025 - Juin 2025

Stage Campus Connecté

Développement d'applications web (MP3000 & MTPP) et mise en place d'une infrastructure serveur pour la Mairie de Saint-Gaudens.

PHP 8 MariaDB Ubuntu Server Docker Nginx

1. Immersion au Campus

Intégration au sein de l'équipe du Campus Connecté de Saint-Gaudens. L'objectif initial était de migrer le site existant et de développer des outils internes pour la gestion des étudiants. Nous avons commencé par une phase de découverte des lieux et des besoins avec l'équipe.

Campus Connecté - Extérieur
Campus Connecté - Intérieur

2. MP3000 : Conception & Maquettage

Le projet "Marcel Présence 3000" vise à gérer le pointage des étudiants. Nous avons commencé par des réunions de brainstorming et des croquis sur papier pour définir l'UI/UX avant de passer au code. Organisation du travail en équipe via GitLab.

Méthodologie :
  • ✍️ Croquis papier & Maquettes
  • 🤝 Répartition des tâches (Trello/Tableau)
  • 🛠️ Setup Git & GitLab
Croquis Maquette 1
Tableau Tâches

3. Infrastructure & Système

Mise en place d'un serveur dédié pour héberger les applications et la base de données. Le défi a été de transformer un PC Windows 7 en serveur Linux Ubuntu fonctionnel avec une stack Docker complète.

Stack Technique Déployée :
  • 🐧 OS : Ubuntu Server (Installé via clé bootable)
  • 🐳 Conteneurisation : Docker
  • 🌐 Web Server : Nginx
  • 🐘 Web App : PHP 8 + MariaDB
  • 💾 Backup : Récupération des données utilisateurs via Kali Linux (Live USB)
Stack Technique

Architecture technique du serveur

4. Développement MP3000

Réalisation de l'application de pointage. Authentification, génération de QR Codes uniques pour chaque étudiant, et gestion des sessions sécurisées.

Page Connexion
Authentification

Sécurisation SQL & Sessions PHP.

Dashboard
Dashboard

Navigation centrale avec cartes.

Liste Etudiants
Gestion Étudiant

Liste dynamique, Modals, et Actions.

Génération QR Code
Générateur QR

Algorithme de génération d'ID unique.

function genererIdQrCode($longueur = 25) {
    // Ensemble des caracteres qu'on peut utiliser
    $caracteres = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
    $idQrCode = '';
    $maxIndex = strlen($caracteres) - 1;

    for ($i = 0; $i < $longueur; $i++) {
        // Utilise une fonction cryptographiquement sécurisée
        $index = random_int(0, $maxIndex);
        $idQrCode .= $caracteres[$index];
    }
    return $idQrCode;
}

5. Projet MTPP & Déploiement

Lancement du second projet "Massin Tout Petit Plus" (Gestion d'événements). Partage de la base de données avec MP3000.

Défi Final : Le déploiement sur le serveur central a posé un problème technique majeur le dernier jour (accès caméra bloqué sans SSL/HTTPS sur IP locale).

Solution de contournement : Déploiement distribué. Chaque poste du campus fait tourner le site en local (Uwamp) tout en se connectant à la base de données centralisée sur le serveur.

Design MTPP

Interface de gestion d'événements MTPP

Documentation & Transmission

Rédaction d'une documentation technique et utilisateur complète pour assurer la pérennité des outils après mon départ. Passation de connaissances à l'équipe encadrante.