zakariasabri.fr
Photo de Zakaria

Zakaria SABRI

Étudiant en 2ème année de BUT Informatique

OBJECTIF :Stage en informatique de 8 à 10 semaines, entre le 18 janvier et le 26 mars 2027, en développement et infrastructure

Swipez pour en savoir plus !

Projets Personnels

Projets perso

6 éléments

En préparation
⏳ En préparation

Prochainement...

Mon plus gros projet, qui réunit toute ma polyvalence: le développement web, l'administration système, le réseau et l'automatisation.

Cahier des charges

Concevoir et maintenir des solutions de bout en bout : des interfaces web soignées et accessibles jusqu'à l'infrastructure qui les héberge, avec une démarche d'industrialisation environnements reproductibles, déploiements automatisés, documentation et suivi des incidents.

Compétences

  • Développement web (front & back)
  • Administration Système (Linux)
  • Réseaux
  • Méthodologie DevOps
  • Automatisation
  • Analyse du besoin

Outils et méthodes

  • HTML / CSS / JavaScript
  • SQL
  • Linux
  • Bash
  • Git
  • Virtualisation
  • Intégration continue

Projets Universitaires

Projets universitaires

13 éléments

Mes collaborateurs

Chaque cercle est une personne avec qui j'ai travaillé sur un projet universitaire. Plus le trait est épais, plus on a fait de projets ensemble.

Réseau

Compétences

Langages

  • Java / Algorithmique
  • Python
  • C#
  • JavaScript
  • HTML5 / CSS3
  • SQL / Modélisation

Frameworks

  • Angular
  • Astro
  • Spring Boot

Système & Réseau

  • Linux (Bash)
  • Administration système
  • Virtualisation
  • Auto-hébergement de services
  • Sous-réseaux et routage
  • Modèle OSI

Conception & Méthodes

  • Diagrammes UML
  • Analyse et conception
  • Analyse des besoins
  • Gestion de Projet

Outils & Logiciels

  • Git (GitLab / GitHub)
  • VS Code / Visual Studio / Netbeans
  • VMWare Workstation / Filius
  • Microsoft SQL Server

Soft skills

  • Prise de décision rapide
  • Gestion de la pression
  • Sens des responsabilités
  • Écoute et remise en question
  • Autonomie
  • Polyvalence
  • Travail en équipe

À propos de moi

Qui suis-je
Zakaria Sabri

Enchanté, moi c’est Zakaria !

Actuellement en BUT Informatique (parcours International) à l'IUT de Bordeaux, mon profil se cultive avec une approche polyvalente de la tech.

Animé par la volonté d'avoir un véritable impact sur les projets que j'entreprends, je vois le code comme étant un levier d'optimisation. Qu'il s'agisse de déployer et sécuriser des réseaux, d'automatiser des tâches ou de construire des interfaces web ergonomiques, j'aime intervenir sur toute la chaîne.

J'aborde chaque tâche avec la philosophie suivante :
Maximiser mes performances, fiabiliser les processus et créer des solutions fluides tout en minimisant l'effort et les ressources nécessaires.

Contact

Rentrons en contact !

Tableau de bord personnel

Tableau de bord personnel

⏳ En cours de développement

Projet en cours de conception : une page web affichée en continu sur un écran, qui montrera d'un coup d'œil la météo, les trains, les bus et tram, mes cours du jour, mes matchs et une fiche d'arbitrage.

Cahier des charges

  • Contexte : Chaque matin je consulte une demi-douzaine de sources (appli SNCF, appli TBM, météo, ENT, site des officiels FFF, mes notes d'arbitrage). L'idée : tout réunir sur une seule page, lisible sans aucun clic sur un écran fixe de 16 pouces.
  • Blocs prévus (V1) : météo de Lormont et Gradignan, 5 prochains trains depuis la gare de Bassens avec les retards, prochains passages du bus 60 et du tram A, cours du jour depuis l'export iCal de l'ENT, mes prochains matchs et une fiche d'arbitrage différente chaque heure parmi 30 rédigées par moi.
  • Exigences : rafraîchissement automatique sans recharger la page, une source en panne ne bloque que son propre bloc, clés d'API et lien iCal jamais dans le code ni dans Git, réponses gardées en mémoire pour respecter les quotas des API, tests JUnit sur la logique métier.
  • Stack : back en Java 21 / Spring Boot 3.3 (Maven), front en Angular 19, API Open-Meteo, SNCF (Navitia) et données temps réel TBM.
  • Et ensuite : V1.1 : déploiement sur un mini PC transformé en serveur (Debian, Docker, Chromium en mode kiosque, réseau local uniquement). V2 : consommation électrique de ma chambre et une interface de saisie pour les fiches, matchs et tâches.
  • Où j'en suis : cahier des charges V1 rédigé, diagrammes UML en cours.

Compétences Acquises

  • Développement back-end Java
  • Développement front-end Angular
  • Consommation d'API REST
  • Architecture par fonctionnalité
  • Gestion de cache
  • Tests unitaires

Outils et méthodes

  • Java 21
  • Spring Boot 3.3.5
  • Maven
  • Angular 19
  • API SNCF (Navitia)
  • Open-Meteo
  • iCal (RFC 5545)
  • JUnit

Homelab auto-hébergé sous Debian

Homelab auto-hébergé sous Debian

⏳ En cours

Serveur domestique sur un mini-PC reconditionné : drive Nextcloud, sauvegardes automatiques et supervision, accessible partout via Tailscale.

Cahier des charges

  • Contexte : Héberger moi-même mes fichiers et mes outils au lieu de dépendre de services tiers. Le projet a d'abord été pensé comme un Hackintosh, puis réorienté vers un serveur dédié.
  • Objectifs : un drive personnel (agenda, contacts, notes), un écran branché au serveur pour afficher mon tableau de bord, un accès depuis n'importe où, des sauvegardes automatiques et une surveillance de l'état de la machine.
  • Contraintes : budget le plus bas possible, connexion en IPv4 CGNAT donc aucune redirection de ports, aucun service exposé sur Internet, 8 Go de RAM, disques durs de récupération âgés, pilotage à distance depuis mon Mac sans clavier ni écran au quotidien.
  • Matériel : Lenovo ThinkCentre M720q Tiny reconditionné (156 €), Intel Core i3-8100T, 8 Go de RAM, SSD 256 Go, station d'accueil double baie Sabrent (39,99 €) et deux disques durs de 1 To récupérés sur des PC de 2010 et 2017.
  • Architecture : Debian 13 en installation minimale, services en conteneurs Docker Compose (Nextcloud + MariaDB + Redis, Beszel), accès par réseau privé Tailscale avec HTTPS, SSH par clé uniquement, bureau à distance xrdp, mises à jour de sécurité automatiques et un écran en mode kiosque sur un utilisateur sans droits d'administration.
  • Où j'en suis : services en place. Reste à afficher mon tableau de bord en kiosque, puis plus tard une médiathèque Jellyfin et une sauvegarde hors site.

Résultats (KPIs)

Première sauvegarde restic : 34 948 fichiers (1,08 Gio) compressés à 422 Mio en 9 secondes. Sauvegarde automatique chaque nuit (rétention 7 jours, 4 semaines, 12 mois) avec copie sur un second disque. Au repos : CPU 0,74 %, RAM 21,9 %, 29 °C. L'audit SMART a révélé 920 secteurs en attente sur le disque de 2010 : les données restent sur le SSD et ce disque ne sert plus qu'à une copie bonus surveillée par smartd. Deux incidents résolus : l'agent de supervision hors ligne au redémarrage (DNS pas encore prêt) et le bureau à distance cassé par l'installation minimale (paquets manquants identifiés dans les journaux).

Compétences Acquises

  • Administration Linux (Debian)
  • Docker Compose
  • Accès distant sécurisé (VPN, HTTPS, SSH)
  • Stratégie de sauvegarde
  • Supervision et diagnostic SMART
  • Résolution d'incidents réseau et DNS

Outils et méthodes

  • Debian 13
  • Docker Compose
  • Tailscale
  • Nextcloud
  • MariaDB
  • Redis
  • Beszel
  • ntfy
  • restic
  • rsync
  • smartd
  • xrdp
  • Chromium (kiosque)

Réhabilitation d’un ordinateur obsolète

Réhabilitation d’un ordinateur obsolète

💙 Coup de cœur

Upgrade matériel et configuration d'un Triple Boot (Win 10/11, Ubuntu) sur un Alienware Area-51 R1 de 2010.

Cahier des charges

Rendre fonctionnelle une machine de 2010 pour du développement. Contraintes : Upgrade RAM/SSD, Triple Boot fonctionnel sur architecture Legacy/MBR, et boot rapide personnalisé via GRUB.

Résultats (KPIs)

Temps de démarrage divisé par 4. Environnement de test multi-OS 100% stable et opérationnel. Machine sauvée de l'obsolescence pour un investissement de moins de 80€.

Compétences Acquises

  • Maintenance Hardware
  • Administration Système
  • Gestion GRUB/MBR
  • Troubleshooting

Outils et méthodes

  • Rufus
  • Terminal Linux (Nano)
  • Composants (RAM/SSD)

Assistant macOS (J.A.R.V.I.S.)

Assistant macOS (J.A.R.V.I.S.)

Assistant vocal hybride pilotant l'environnement de travail macOS (via AppleScript) et intégré à l'IA Gemini.

Cahier des charges

Développer un assistant capable de piloter physiquement macOS (écrans, apps) et de converser naturellement. Contraintes : mode Push-to-Talk pour la confidentialité.

Résultats (KPIs)

Automatisation complète du déploiement du Workspace. Latence < 2s pour les requêtes Cloud et exécution système locale instantanée. Respect de la vie privée grâce à l'activation microphone à la demande.

Compétences Acquises

  • Développement Python
  • Intégration API Gemini
  • Scripting AppleScript
  • Conception d'Architecture

Outils et méthodes

  • Python 3
  • API Google Gemini
  • AppleScript
  • Shell

Déploiement de macOS via Hackintosh sur un PC

Déploiement de macOS via Hackintosh sur un PC

⏳ En cours de finalisation

Installation native de macOS Bigsur sur une tour PC HP en contournant les sécurités matérielles et logicielles.

Cahier des charges

Déployer macOS sur un matériel non-Apple (HP, Intel). Contraintes : créer un environnement matériel virtuel sans modifier le système d'exploitation cible, grâce à une base GitHub.

Résultats (KPIs)

Création d'un Bootloader (OpenCore) sur-mesure. Stabilité garantie avec un minimum de kexts (4 pilotes, 2 patchs). Contournement des sécurités HP (Hard Freezes, erreurs ACPI) et amorçage réussi du noyau XNU.

Compétences Acquises

  • Administration Système
  • Troubleshooting
  • Architecture Hardware

Outils et méthodes

  • OpenCore Bootloader
  • ProperTree
  • Terminal
  • Scripts Python

Portfolio Professionnel

Portfolio Professionnel

Conception et développement de mon portfolio pour valoriser mes projets et compétences.

Cahier des charges

Créer une plateforme fluide et performante avec le stack Vanilla (HTML5 CSS3 et JavaScript). Contraintes: présenter l'ensemble des projets avec un site responsive et une gestion dynamique.

Résultats (KPIs)

Projets clairs, et Navigation intuitive via des fenetres d'analyse. Maintenance simple grâce à une architecture de données centralisée en JavaScript.

Compétences Acquises

  • Développement Front-End
  • UI/UX Design
  • JavaScript
  • Versionnage Git

Outils et méthodes

  • VS Code
  • CSS Grid/Flexbox
  • JavaScript
  • Git/GitHub
  • Astro
  • Tailwind CSS
  • D3.js

Version 2Actuelle

Refonte complète dans le thème macOS (fenêtres, dock, barre de menus) en gardant mes couleurs.

  • Astro
  • Tailwind CSS
  • JavaScript
  • D3.js

Version 1

Première version du site, codée sans framework.

  • HTML5
  • CSS3
  • JavaScript

Explorer la version 1

La vraie page de l'ancien site, figée telle qu'elle était en ligne. Tu peux cliquer et naviguer dedans.

Ouvrir dans un onglet

Installation de poste

Installation de poste

💙 Coup de cœur

Configuration d'une machine virtuelle Lubuntu optimisée (8 Go) pour développer.

Cahier des charges

Créer un environnement de développement complet sur une machine virtuelle sous Lubuntu (LXQt) en respectant une contrainte stricte de 8 Go d'espace disque maximum.

Résultats (KPIs)

Intégration d'un stack complet (Java, Git, VS Code) validée par la réussite du script de test bash. Consommation disque maîtrisée.

Compétences Acquises

  • Administration Système
  • Optimisation logicielle
  • Analyse du besoin

Outils et méthodes

  • Linux (Lubuntu)
  • Bash
  • Machine Virtuelle

Pixel IUT War

Pixel IUT War

💙 Coup de cœur

Création du client web d'une application collaborative (guerre des pixels) avec synchronisation continue d'une grille de 10 000 pixels.

Cahier des charges

Développer le client JavaScript d'un jeu multijoueur. Gérer l'authentification par UID, le système de factions, la coloration de la grille et les restrictions temporelles (cooldown) en dialoguant avec une API REST.

Résultats (KPIs)

Interface fluide sans reflow massif grâce à l'optimisation du DOM (DocumentFragment). Communications asynchrones non-bloquantes (Fetch API, async/await). Des évolutions vers les WebSockets et le LocalStorage ont été modélisées.

Compétences Acquises

  • JavaScript Vanilla (ES6+)
  • Programmation Asynchrone
  • Optimisation du DOM
  • Manipulation de structures de données

Outils et méthodes

  • Fetch API
  • DocumentFragment
  • Méthodes Array (.flat, .filter)

Installation de Services Réseaux

Installation de Services Réseaux

💙 Coup de cœur

Déploiement d'une infrastructure réseau virtuelle sécurisée et intégration de services collaboratifs (Nextcloud & OnlyOffice).

Cahier des charges

Simuler et configurer un environnement réseau professionnel avec deux sous-réseaux isolés (Client LAN et Server LAN) reliés par un routeur central. Déployer une suite collaborative auto-hébergée complète.

Résultats (KPIs)

Routage inter-réseaux (IP forwarding) et persistance des configurations IP assurés. Sécurisation totale des flux via la génération de certificats TLS (HTTPS) et la mise en place d'une authentification double facteur (TOTP).

Compétences Acquises

  • Administration Système (Linux)
  • Routage Réseau
  • Sécurité (TLS/HTTPS, 2FA)
  • Déploiement de Services (Snap)

Outils et méthodes

  • NEmu
  • Nextcloud
  • OnlyOffice
  • Bash/Shell

Coloration de graphes

Coloration de graphes

💙 Coup de cœur

Développement de trois algorithmes de coloration (Welsh & Powell, 5-coloration, 6-coloration).

Cahier des charges

Implémenter l'interface IGraph et programmer trois algorithmes de coloration (Welsh et Powell, 6-coloration et 5-coloration récursive pour graphes planaires).

Résultats (KPIs)

Création d'une structure optimisée par liste d'adjacence (HashMap) avec une complexité en O(N+M). Algorithmes validés par des tests unitaires sous JUnit.

Compétences Acquises

  • Développement orienté Objet
  • Théorie des Graphes
  • Analyse de Complexité
  • Tests Unitaires

Outils et méthodes

  • Java
  • JUnit
  • NetBeans
  • UML

Labyrinthe

Labyrinthe

Jeu de labyrinthe multi-étages en Java/JavaFX, développé seul : héros piloté au clavier, monstres autonomes et déplacements fluides.

Cahier des charges

Concevoir seul, en deux semaines, un jeu de labyrinthe complet en Java/JavaFX pour remobiliser la programmation orientée objet. Contraintes : implémenter des interfaces imposées sans les modifier, valider les objectifs dans l'ordre et livrer un programme sans erreur ni avertissement sur les postes de l'IUT.

Résultats (KPIs)

Labyrinthe sur plusieurs étages chargé depuis des fichiers texte, héros jouable au clavier et monstres autonomes grâce au polymorphisme. La logique du jeu est séparée du rendu, ce qui donne un déplacement fluide au pixel près. Plus de 50 commits sur GitLab, projet validé sur les postes de l'IUT.

Compétences Acquises

  • Programmation orientée objet
  • Interface graphique événementielle
  • Débogage
  • Versionnage Git

Outils et méthodes

  • Java
  • JavaFX
  • Maven
  • Git / GitLab

Capteurs : statistiques de température

Capteurs : statistiques de température

Outil en ligne de commande écrit en C qui analyse des relevés de capteurs de température (fichier JSON ou URL) et génère un rapport CSV.

Cahier des charges

Compléter en binôme un analyseur de capteurs en C : calcul des statistiques, série de mesures en mémoire dynamique, export CSV et programme principal. Contraintes : norme C11 compilée sans aucun warning (-Wall -Wextra -Wpedantic), modules réseau et JSON fournis à ne pas modifier, historique Git évalué.

Résultats (KPIs)

Minimum, maximum, moyenne et écart intérieur/extérieur calculés, export CSV et gestion complète des options en ligne de commande. Tests unitaires et 12 scénarios en ligne de commande validés. Aucune fuite mémoire selon Valgrind (1 422 allocations, 1 422 libérations).

Compétences Acquises

  • Gestion dynamique de la mémoire
  • Pointeurs et structures
  • Compilation séparée (Makefile)
  • Arguments en ligne de commande
  • Travail en binôme

Outils et méthodes

  • C11 / gcc
  • Make
  • Valgrind
  • cppcheck
  • Git / GitLab

Comparaisons d'algorithmes

Comparaisons d'algorithmes

Programmation des fonctionnalités d'un jeu de plateau et conception de deux Intelligence Artificielle capable de jouer contre ou à la place de l'utilisateur

Cahier des charges

Coder les règles d'un jeu de plateau (plantation d'un arbre, coupes, vitalité) et développement de deux Intelligences Artificielles capable de jouer, la première avec un algorithme glouton et une deuxième visionnaire capable d'anticiper les conséquences de ses actions sur le long terme.

Résultats (KPIs)

Tactique de clonage de plateau opérationnelle pour anticiper les scores réels. Zéro disqualification grâce à un algorithme contre les coups illégaux

Compétences Acquises

  • Java
  • Intelligence Artificielle
  • Développement de tests
  • Algorithmie

Outils et méthodes

  • Tests unitaires
  • Simulation algorithmique
  • Java

Création de Base de données

Création de Base de données

💙 Coup de cœur

Conception d'une Base de données pour une agence d'événements culturels fictive. Traduction du cahier des charges en contraintes.

Cahier des charges

Créer une base de données pour une agence événementielle fictive en traduisant des règles textuelles complexes (horaires, formats) pour éviter les incohérences de planning.

Résultats (KPIs)

Scripts SQL robustes implémentés avec une gestion fine des contraintes. Insertion réussie d'un jeu de données réaliste.

Compétences Acquises

  • Modélisation relationnelle
  • SQL

Outils et méthodes

  • SQL
  • Win'Design
  • Contraintes CHECK/UNIQUE
  • Schéma entités associations (MCD)

Recueil de besoin

Recueil de besoin

💙 Coup de cœur

Refactoring d'un site web legacy. Passage de tableaux à un CSS Grid (avec un Thème Windows XP).

Cahier des charges

Moderniser le code source du site web d'une entreprise fictive de PC Rétro, en abandonnant l'ancienne mise en page en tableaux.

Résultats (KPIs)

Refonte validée en HTML5 sémantique. Amélioration de l'accessibilité et réduction de la taille du code source, avec une petite touche Windows XP.

Compétences Acquises

  • Intégration web
  • Refactoring
  • Écoute du client

Outils et méthodes

  • HTML5
  • CSS Grid
  • Design System

Développement d'une application

Développement d'une application

Application C# de gestion de personnages et simulateur de jeu de rôles avec architecture Orientée Objet intégrale.

Cahier des charges

Concevoir en équipe de 3 une application WinForms robuste traduisant des règles d'un jeu fictif.

Résultats (KPIs)

Livrable, avec séparation Logique/IHM. Moteur de résolution des épreuves fictives validé par tests unitaires et interface ergonomique.

Compétences Acquises

  • Programmation C#
  • Conception UML
  • Développement IHM
  • Tests

Outils et méthodes

  • Visual Studio / .NET
  • WinForms
  • Git

Implémentation

Implémentation

Programmation d'une station domotique en Java. Gestion de l'historique et des données.

Cahier des charges

Intégrer l'entièreté des fonctionnalités de gestion, de mise à jour des données météorologiques et de programmation du chauffage d'une station météo à partir d'un code incomplet.

Résultats (KPIs)

Algorithme de décalage de tableaux implémenté. Intégrité des données garantie et saisie utilisateur sécurisée par boucle de contrôle.

Compétences Acquises

  • Java
  • Algorithmique
  • Intégration des données

Outils et méthodes

  • Boucle do...while
  • Tableaux
  • Conditions

Environnement économique et écologique

Environnement économique et écologique

Analyse fonctionnelle et environnementale d'une entreprise locale face à une crise de crédibilité majeure (PESTEL & Porter).

Cahier des charges

En tant que Chef de Projet, coordonner une équipe de 5 personnes pour réaliser le diagnostic complet de l'entreprise Baillardran.

Résultats (KPIs)

Cartographie des 6 fonctions de l'entreprise et réalisation des matrices PESTEL et Porter. Formulation d'une stratégie de reconstruction éthique axée sur la transparence pour contrer la chute de rentabilité.

Compétences Acquises

  • Gestion de Projet
  • Analyse Stratégique
  • Management d'équipe

Outils et méthodes

  • Outil PESTEL
  • 5 Forces de Porter
  • Base de données Diane+

Réalisation d'une mission confié par une organisation

Réalisation d'une mission confié par une organisation

Conception de la campagne de communication visuelle pour la Journée Portes Ouvertes du département informatique, puis organisation de celle-ci avec les autres étudiants bénévoles.

Cahier des charges

Élaborer une identité visuelle complète (affiches A1/A2, programmes, signalétique) respectant la charte graphique de l'Université.

Résultats (KPIs)

Production de 3 versions d'affiches et d'un plan de signalétique complet pour les deux étages du bâtiment.

Compétences Acquises

  • Communication Visuelle
  • Gestion de Projet
  • Travail d'équipe

Outils et méthodes

  • Canva
  • Appareil Photo
  • Adobe Lightroom