Déploiement de la platforme GLPI
Objectif du projet
Ce projet avait pour but d’installer et configurer GLPI sur un serveur Ubuntu afin de simuler une plateforme de gestion de parc informatique en environnement professionnel.
Outils et technologies utilisés
- VirtualBox
- Ubuntu Server
- Apahe2
- MySQL/MariaDB
- PHP et extensions
- GLPI
- Navigateur Web
- Terminal Linux
Déroulement
Il a tout d'abord fallut installer Apache2, MySQL/MariaDB et PHP avec leurs extensions nécessaires. Ensuite, j’ai téléchargé GLPI depuis le site officiel, puis l’ai placé dans le répertoire web/var/www/html. Une base de données MySQL a été créée et liée à GLPI lors de l’installation via l’interface web. Une fois l’installation terminée, j’ai pu configurer les différents éléments : utilisateurs, matériels, et tickets d’assistance.
Résultats
GLPI a été installé avec succès et accessible via navigateur en réseau local. Ce projet m’a permis d’apprendre à déployer une application web complète en environnement Linux, et à comprendre le fonctionnement d’un outil de gestion IT.
Mise en place de Windows Server
Objectif du projet
Ce projet consistait à installer et configurer Windows Server dans un environnement virtualisé, afin de découvrir les services réseau essentiels comme Active Directory, DNS et DHCP, et comprendre leur rôle dans la gestion d’un parc informatique.
Outils et technologies utilisés
- VirtualBox
- Windows Server 2019
- Active Directory
- DNS, DHCP
- Gestionnaire de serveur
- Poste client connecté au domaine
Déroulement
J’ai installé Windows Server 2019 sur une machine virtuelle avec VirtualBox. Une fois le système configuré, j’ai promu le serveur en contrôleur de domaine avec Active Directory. J’ai ensuite installé et configuré les rôles DNS et DHCP pour permettre la gestion automatique des adresses IP et la résolution de noms au sein du réseau.
J’ai créé des comptes utilisateurs et des groupes dans Active Directory, et mis en place des stratégies de sécurité simples. Enfin, j’ai testé la connexion de postes clients au domaine pour valider la configuration des services.
Résultats
Le serveur Windows était pleinement opérationnel en tant que contrôleur de domaine. Il permettait la gestion centralisée des utilisateurs et des ressources réseau. Ce projet m’a permis de comprendre le fonctionnement d’un réseau d’entreprise basé sur un domaine Windows.
Virtualisation avec Proxmox VE
Objectif du projet
Ce projet avait pour but de découvrir et utiliser Proxmox VE, une plateforme de virtualisation open source, afin de créer et gérer des machines virtuelles dans un environnement local.
Outils et technologies utilisés
- Proxmox
- Une machine virtuelle Debian
- Interface Web Proxmox
- Réseau local (bridge, Nat)
- ISO d'installation des systèmes d'exploitation
- Navigateur Web
Déroulement
J’ai installé Proxmox VE sur une machine physique ou virtuelle, puis j’ai accédé à l’interface web d’administration. À partir de cette interface, j’ai créé plusieurs machines virtuelles avec différents systèmes d’exploitation (comme Ubuntu Server et Windows), et je leur ai attribué des ressources spécifiques (RAM, CPU, disque). J’ai également configuré les interfaces réseau des VM pour qu’elles puissent communiquer entre elles et accéder à Internet.
Proxmox m’a permis de gérer facilement les snapshots, le stockage, et de contrôler l’état de chaque machine. J’ai aussi découvert la possibilité d’utiliser des modèles pour déployer rapidement de nouvelles VM.
Résultats
Grâce à Proxmox, j’ai pu créer un environnement de virtualisation complet. Ce projet m’a aidé à mieux comprendre l’organisation d’une infrastructure virtuelle, la gestion des ressources système et les bonnes pratiques pour l’isolement des environnements de travail.
Code and Grow – Conception d’une entreprise de e-learning
Objectif du projet
Dans le cadre d’un travail de groupe, nous avions pour mission de créer une entreprise fictive. Avec mes collègues, nous avons imaginé Code and Grow, une plateforme proposant des cours d’informatique en ligne destinés aux débutants et aux personnes en reconversion professionnelle.
Outils et éléments mobilisés
- WordPress (prévu pour la réalisation)
- Trello (gestion de projet et organisation des tâches)
- Rédaction de cahier des charges
- Plan de site et arborescence
- Travail en équipe (répartition des rôles, suivi des objectifs)
- Présentation orale et écrite du projet
Déroulement
Nous avons commencé par définir la mission de l’entreprise, son public cible (débutants, adultes en reconversion), et les types de cours à proposer (bureautique, programmation, cybersécurité...). Nous avons ensuite conçu une arborescence du site, imaginé l’interface utilisateur, et établi les grandes lignes du contenu.Nous avons commencé par définir la mission de l’entreprise, son public cible (débutants, adultes en reconversion), et les types de cours à proposer (bureautique, programmation, cybersécurité...). Nous avons ensuite conçu une arborescence du site, imaginé l’interface utilisateur, et établi les grandes lignes du contenu.
Le site n’a pas encore été développé, mais une maquette fonctionnelle a été préparée, avec un plan de navigation clair, un plan de navigation clair, une réflexion sur les fonctionnalités (espace membre, blog, support de cours, contact), et une organisation prévue autour de WordPress.
Nous avons également utilisé Trello pour répartir les tâches, organiser les idées, et suivre l’évolution du projet en équipe de manière efficace.
Résultats
Même s’il s’agissait d’un projet fictif, il nous a permis de développer des compétences concrètes en gestion de projet, en conception web, en organisation d’équipe, et en préparation de projet WordPress.
Pokédex intéractif
Objectif du projet
Ce projet est une application web construite avec React et stylisée avec Tailwind CSS, permettant d'afficher un Pokémon aléatoire depuis une API.
Technologies utilisées
- React (JSX) pour la structure des composants
- Tailwind CSS pour le style
- PokéAPI pour l’accès aux données
- Fetch API pour interroger l’API
- useEffect / useState pour gérer les données dynamiquement
Fonctionnement du projet
L'application commence par un composant principal : App.jsx. Dès l’ouverture de la page, on voit un bouton nommé "Attrape un Pokémon !". Lorsqu'on clique dessus, une fonction getRandomPokemon est exécutée.
Elle génère un nombre aléatoire entre 1 et 151 (pour représenter un Pokémon du Pokédex original), puis fait une requête fetch à l’API PokéAPI. Le résultat retourné (un objet avec les infos du Pokémon) est stocké dans l’état pokemon via le hook useState.
Une fois que l’état contient un Pokémon, un autre composant est appelé : PokemonCard.
Elle conditionne l’affichage de la carte à la présence d’un Pokémon : ({pokemon && <"PokemonCard pokemon={pokemon} />}). Le bouton utilise des classes Tailwind pour offrir un joli rendu avec animation au survol.
Composant PokemonCard.jsx :
Ce composant reçoit les données du Pokémon via la prop pokemon. Il affiche :
- Le nom du Pokémon
- L'image officielle
- Les types du Pokémon (par exemple feu, eau, plante...)
On utilise une boucle .map() pour parcourir tous les types et les afficher dans des badges avec className stylés.
Résultats
L’application est fonctionnelle. Elle permet de rechercher un Pokémon et de consulter ses informations de manière claire. Ce projet m’a permis de mieux comprendre le fonctionnement des API, de manipuler des données dynamiques en JavaScript et de structurer une interface web simple mais responsive.
Calculatrice Scientifique
Objectif du projet
Ce projet est une calculatrice scientifique web développée en HTML, CSS et JavaScript. Elle permet d’effectuer des opérations mathématiques classiques (addition, soustraction, multiplication, division), mais aussi des fonctions avancées comme les racines carrées, les puissances, les pourcentages, ou encore les fonctions trigonométriques (sin, cos, tan).
Technologies utilisées
- HTML5 pour la structure
- CSS3 pour le style
- Javascript pour la logique des calculs
Fonctionnalités du principales
L’utilisateur peut cliquer sur les boutons numériques et opérateurs pour construire son calcul.
Le résultat est affiché en temps réel, avec la possibilité de réinitialiser ou supprimer un caractère à la fois.
Fonctionnement du code
1. Construction de l'affichage dynamique
Chaque fois que l’utilisateur clique sur un bouton, la fonction appendToScreen() ajoute le caractère correspondant dans la zone d’affichage (#screen).
2. Calcul de l'expression
Lorsque l’utilisateur appuie sur =, la fonction calculate() transforme l’expression affichée en une syntaxe JavaScript compatible avec Math.sqrt(), Math.sin(), etc., puis l’évalue à l’aide de eval().
Elle convertit également les degrés en radians pour les fonctions trigonométriques :
3. Suppression et réinitialisation
Le bouton DEL utilise deleteLastCharacter() pour retirer le dernier caractère :
Résultats
Ce projet m’a permis de mieux comprendre le fonctionnement de JavaScript, surtout pour manipuler le HTML et gérer les clics. J’ai aussi appris à utiliser des fonctions mathématiques pour faire des calculs un peu plus complexes. C’était un bon exercice pour créer une interface claire et utile.
Application météo en temps réel
Objectif du projet
Cette application permet à l’utilisateur de rechercher la météo actuelle d’une ville en temps réel. Elle interagit avec une API météo pour obtenir et afficher les données telles que la température, la description du ciel (ensoleillé, nuageux…), et le taux d’humidité.
Technologies utilisées
- HTML5 pour la structure
- CSS3 pour le style
- Javascript pour la logique et l'interaction
- API OpenWeatherMap pour accéder aux données météo
Structure HTML
La page HTML est constituée d’une interface minimaliste et centrée à l’aide de Tailwind CSS. Elle contient un champ de texte pour saisir une ville, un bouton pour lancer la recherche, et une zone vide (#weatherData) qui sera remplie dynamiquement par JavaScript avec les données météo récupérées.
Récupération des données météo
Quand l’utilisateur clique sur le bouton, la fonction getWeather est déclenchée. Cette fonction lit la valeur saisie dans le champ de texte, puis envoie une requête à l’API OpenWeatherMap en ajoutant la ville dans l’URL. La requête est faite avec fetch() ; si elle réussit, elle retourne un objet JSON contenant toutes les données météo que nous utilisons ensuite.
Affichage des données
Une fois les données reçues, le script insère dynamiquement les informations dans les éléments HTML via leur id (#cityName, #temperature, #description, #humidity). Ces éléments sont ensuite rendus visibles en supprimant la classe hidden.
Gestion des erreurs
Si une erreur survient (ville inconnue, connexion perdue…), le script affiche un message d'erreur dans un bloc prévu à cet effet (#errorMessage). Cette gestion est implémentée dans un try...catch.
Résultats
L’application fournit les prévisions météo de manière rapide et visuelle. Ce projet m’a appris à manipuler une API tierce, à structurer des données JSON, et à afficher des résultats en temps réel à partir d’une saisie utilisateur.
Tic-Tac-Toe (Morpion)
Objectif du projet
Ce projet est une petite application web interactive qui permet de jouer au jeu classique du Morpion entre deux joueurs, entièrement réalisée en HTML, CSS, et JavaScript.
Technologies utilisées
- HTML5 pour la structure
- CSS3 pour le style
- Javascript pour la logique du jeu
Fonctionnement du projet
L'application affiche une grille de 3 x 3 cases, dans laquelle deux joueurs peuvent cliquer à tour de rôle pour placer soit un "X", soit un "O". À chaque clic, le script vérifie s’il y a un gagnant ou un match nul.
Ce fichier contient la structure de la grille (souvent avec des
ou une table), et les boutons de contrôle comme "Rejouer".
La logique Javascript:
Le script commence par sélectionner toutes les cases du jeu avec document.querySelectorAll et définit les variables nécessaires pour suivre le tour actuel (joueur), la grille, et l’état du jeu.
Cette fonction se déclenche lorsqu’un joueur clique sur une case. Elle insère un "X" ou un "O", empêche le joueur de rejouer sur la même case, puis vérifie si ce coup entraîne une victoire.
Une fonction compare les combinaisons possibles (lignes, colonnes, diagonales) pour détecter un gagnant. Si un joueur a gagné, le jeu s’arrête et un message s’affiche.
Cette fonction vide la grille et réinitialise les variables pour permettre de rejouer une nouvelle partie.
Style:
Le style permet de centrer la grille, colorer les cases, changer l’apparence au survol ou quand une case est gagnante, et de donner une bonne lisibilité générale. L’interface est simple mais propre et efficace.
Résultats
Le jeu fonctionne correctement. Il m’a permis d’apprendre à gérer l’état d’un jeu, à détecter des conditions de victoire, et à structurer du code logique dans un petit projet ludique.
Jeu du suspect
Objectif du projet
Créer un mini-jeu interactif dans lequel l’utilisateur doit deviner qui est le suspect à partir d’indices affichés à l’écran.
Technologies utilisées
- HTML5 pour la structure
- CSS3 pour le style
- Javascript pour la logique du jeu
Déroulement
Le jeu commence par l’affichage de plusieurs personnages (ou noms). À chaque étape, des indices sont donnés pour aider le joueur à éliminer les suspects un par un. J’ai utilisé JavaScript pour gérer la progression du jeu, les choix de l’utilisateur, et la vérification de la réponse finale. L’interface a été simplifiée pour que les indices et les réponses soient bien lisibles, même sur téléphone.
Résultats
Le jeu fonctionne correctement et permet à l’utilisateur de résoudre une énigme simple en quelques clics. Ce projet m’a permis de renforcer ma logique conditionnelle en JavaScript, de travailler sur la gestion d’événements et de créer une interaction ludique avec l’utilisateur.
Automatisation du Déploiement de Postes Clients avec MDT/PXE
Objectif du projet (R1, R2)
Ce projet est issu de mon expérience en alternance à Sorbonne Université. Il vise à mettre en place une solution de déploiement centralisée et automatisée pour les postes clients (Windows 11) via **Microsoft Deployment Toolkit (MDT)** et **Windows Deployment Services (WDS)**.
L'objectif était de **standardiser et de réduire drastiquement le temps d'installation** des nouvelles machines, tout en garantissant leur conformité immédiate avec le domaine Active Directory.
Outils et technologies utilisés
- VirtualBox / VMWare (environnement de test)
- Windows Server 2019 (Rôles WDS, DHCP, DNS)
- Microsoft Deployment Toolkit (MDT)
- Windows 11 (Création d'une image de référence)
- PXE (Preboot Execution Environment)
- Active Directory (Jointure automatique au domaine)
Déroulement et Valeur SISR (R1, R4)
1. **Configuration d'Infrastructure :** Installation des rôles WDS et configuration du serveur DHCP pour le démarrage réseau (PXE).
2. **Préparation MDT :** Création du partage de déploiement, importation de l'image Windows 11 et des pilotes spécifiques aux modèles de postes (injection des drivers).
3. **Séquence de Tâches :** Conception d'une séquence de tâches (Task Sequence) pour automatiser toutes les étapes critiques : partitionnement, jointure au domaine, installation des applications standard (Office 365, antivirus), et application des configurations initiales.
4. **Sécurité :** Mise en place de règles d'accès au serveur MDT et sécurisation du réseau pour éviter un démarrage PXE non autorisé.
Résultats et Compétences E5
Ce projet démontre la capacité à **concevoir et maintenir une solution d'infrastructure (E4/R1)**. Le temps de mise en service d'un poste a été réduit de plusieurs heures à moins de 45 minutes, garantissant une configuration homogène et sécurisée du parc. Il valide la maîtrise des outils de déploiement d'entreprise et des services réseaux essentiels.
Renforcement de la Sécurité des Postes Clients par GPO (Active Directory)
Objectif du projet (R3, R4)
Ce projet vise à utiliser les **Stratégies de Groupe (GPO)** de l'Active Directory (AD) pour centraliser et imposer une politique de sécurité stricte sur l'ensemble des postes clients du domaine. L'objectif est de minimiser les vecteurs d'attaques et d'assurer la conformité du parc aux standards de sécurité de l'entreprise.
Outils et technologies utilisés
- Windows Server (Contrôleur de Domaine)
- Active Directory (AD DS)
- Console de Gestion des Stratégies de Groupe (GPMC)
- Postes clients Windows (pour les tests d'application des politiques)
- PowerShell (pour les scripts d'administration et d'audit)
Mise en œuvre et Valeur SISR
1. **Politique de Mots de Passe :** Mise en place d'une GPO pour imposer des critères de complexité (longueur minimale, historique, durée de vie) et de verrouillage des comptes (seuil d'échecs).
2. **Restriction des Périphériques :** Création d'une GPO pour bloquer l'accès aux périphériques de stockage amovibles (clés USB) non autorisés, réduisant ainsi les risques de fuite de données ou d'introduction de malwares.
3. **Sécurisation du Poste :** Définition de stratégies pour désactiver l'exécution automatique, activer le pare-feu Windows, et restreindre l'accès à certaines applications système (ex: Command Prompt) pour les utilisateurs standard.
4. **Audit :** Utilisation des outils de rapport de la GPMC et de scripts PowerShell pour vérifier l'application effective des stratégies sur les postes clients du domaine.
Résultats et Compétences E5
Ce projet démontre une compétence avancée en **administration et sécurisation des systèmes d'exploitation (E4/R3)**. En centralisant la gestion de la sécurité, le projet garantit un niveau de protection uniforme et auditable sur l'ensemble du parc, répondant directement aux exigences de sécurité et de conformité du milieu professionnel.
Gestion des Services IT et du Support selon ITIL (via GLPI)
Objectif du projet (R2, R3)
Ce projet vise à transformer l'outil GLPI en une véritable plateforme de **Gestion des Services Informatiques (ITSM)**, en s'appuyant sur les bonnes pratiques du référentiel **ITIL**. L'objectif était de structurer et d'améliorer le processus de support et la gestion du parc pour optimiser le travail de l'équipe de maintenance.
Outils et technologies utilisés
- GLPI (Installation LAMP/WAMP)
- ITIL (Référentiel de bonnes pratiques)
- Active Directory (Connexion LDAP pour l'authentification des utilisateurs)
- FusionInventory / GLPI Agent (Collecte automatique d'inventaire)
- Base de données MySQL/MariaDB
Mise en œuvre et Valeur SISR
1. **Configuration Avancée de GLPI :** Création des entités, des profils utilisateurs (Technicien, Utilisateur final, Administrateur) et connexion à l'annuaire Active Directory via LDAP pour une authentification unique.
2. **Gestion des Incidents (ITIL) :** Définition d'un catalogue de services et d'un processus de gestion des incidents. Mise en place de règles d'affectation automatique des tickets aux techniciens selon la catégorie de l'incident (ex: "Réseau", "Logiciel", "Matériel").
3. **Gestion des Actifs :** Utilisation de l'agent GLPI (ou FusionInventory) pour l'inventaire automatique des postes clients et des serveurs. Liaison des tickets d'incidents aux actifs concernés pour un meilleur suivi du cycle de vie du matériel.
4. **Tableaux de Bord :** Personnalisation des tableaux de bord et création de rapports pour suivre les indicateurs clés (SLA, temps de résolution moyen), permettant une prise de décision éclairée sur l'activité du support.
Résultats et Compétences E5
Ce projet démontre la capacité à **organiser les activités d'administration et de support (E4/R2, R3)** en adoptant une démarche professionnelle basée sur ITIL. L'automatisation de l'inventaire et l'amélioration du flux de gestion des incidents ont permis de gagner en efficacité et en traçabilité des actions de maintenance.