Ayoub
MACHKOUR
Actuellement en double diplôme en ingénierie informatique à l'ENIB et à l'École Polytechnique d'Agadir
À la recherche d’une alternance sous la forme d’un contrat de professionnalisation pour la dernière année d’études, débutant en février 2025 et se terminant en février 2026.
Qui suis-je ?
Bonjour ! Je suis Ayoub Machkour, étudiant passionné par l'ingénierie informatique. je poursuis actuellement un double diplôme à l'École Nationale d'Ingénieurs de Brest (ENIB) et à l'École Polytechnique d'Agadir. Mon parcours académique m'a permis d'acquérir des compétences solides dans des domaines tels que le développement web et mobile, les réseaux, l'intelligence artificielle, ainsi que la qualité logicielle. À la recherche d'une alternance sous la forme d'un contrat de professionnalisation pour ma dernière année, débutant en février 2025, Je souhaite non seulement mettre mes compétences en pratique dans un environnement professionnel stimulant, mais aussi acquérir de nouvelles expériences pour continuer à me perfectionner. Vous pouvez découvrir mes projets et réalisations sur GitHub.
Mon Expérience Professionnel
Mon éducation
Mes Compétences
Ma formation et mes projets m'ont permis de maîtriser divers langages de programmation et outils essentiels. Ces compétences sont cruciales pour exceller en tant qu'ingénieur en informatique.
Projets et Réalisation
Les projets suivants illustrent ma capacité à appliquer des connaissances théoriques dans des scénarios pratiques. Chacun reflète une étape essentielle de mon parcours académique et professionnel, mettant en évidence ma progression dans diverses compétences techniques.
Musée Virtuel en BabylonJS
Création d'une expérience de musée interactive en 3D.
Application d'Analyse de Sentiments avec Flask
Analyse de sentiments en temps réel grâce à un modèle de traitement du langage naturel (NLP).
Mu Torere avec Apprentissage Renforcé en Python
Création d'un jeu basé sur l'apprentissage renforcé pour le jeu Mu Torere.
API REST pour Gestion de Bibliothèque Vidéo
API REST en Spring Boot pour la gestion d'une bibliothèque vidéo.
Gestion de Produits avec Angular
Application CRUD de gestion de produits en Angular avec serveur JSON.
Gestion de Produits avec React
Application CRUD pour gérer des produits, développée avec React.
Jeu Vidéo Flappy Bird avec Unity
Programmation d'un jeu vidéo basé sur le célèbre Flappy Bird.
Site Web E-commerce avec HTML, CSS, et PHP
Création d'une plateforme de commerce électronique avec gestion des produits et commandes.
Système de Gestion des Chauffeurs avec Java Swing
Développement d'une application CRUD pour la gestion des chauffeurs avec Java Swing.
Maquette d'Application de Covoiturage avec Adobe XD et Flutter
Conception et développement d'une application de covoiturage
Bibliothèque en ligne avec ReactJS
Développement d'une bibliothèque en ligne
Stage Technicien - Sécurité Réseaux avec pfSense
Configuration d'une solution de sécurité et gestion des réseaux avec pfSense.
Dôme Géodésique avec SolidWorks
Conception et modélisation d'un dôme géodésique avec SolidWorks.
Langages
Dôme Géodésique avec SolidWorks
Ce projet est inscrit dans le cadre du module projet éco-responsable (PER) à l'ENIB. L'objectif était de mettre en application les connaissances et compétences acquises lors de la formation en proposant une solution technique à un problème environnemental ou sociétal posé par un tiers issu de la société.
Ce projet portait sur la réalisation d’un dôme géodésique à l’ENIB. Notre étude a inclus le choix des matériaux, l'impact carbone, l’autonomie en énergie, ainsi que la proposition de solutions techniques (low tech, etc.). Nous avons testé la structure et les matériaux choisis. Le dôme devait être modulable afin de permettre des modifications de la structure (matériaux, revêtement, etc.) et l'intégration de solutions low-tech d’autonomie (énergie, eau, etc.). Ces modifications et solutions pourraient être directement mises en place et testées sur le dôme.
Ce projet a été réalisé en open source et mené en collaboration avec des étudiants de l’École européenne supérieure d’art de Bretagne (EESAB), ainsi qu’avec Erwan Burel, chargé de mission en filière forêt bois et biosourcés et des étudiants BTS suivant une formation aux métiers du bois au Lycée de l’Elorn.
Le dôme avait une surface inférieure à 20 m² et une autonomie énergétique inférieure à 1 kW de puissance initiale. De plus, il devait respecter des critères de durabilité et avoir un faible impact carbone, notamment en proposant des solutions low-tech.
J'ai été responsable de la modélisation du dôme en utilisant SolidWorks, ainsi que du choix du type de jointure à utiliser pour connecter les triangles entre eux. J'ai également participé à la réalisation d'une maquette de ce dôme en utilisant des allumettes.
Musée Virtuel en BabylonJS
Dans le cadre de notre module de Réalité Virtuelle à l'ENIB, nous avons été chargés de développer un musée virtuel en utilisant BabylonJS, une puissante bibliothèque JavaScript open-source dédiée à la création d'applications 3D interactives directement dans les navigateurs web. Notre musée s'inscrit dans l'étude de la Belle Époque, de 1880 à 1914, et exploite les capacités avancées de BabylonJS pour orchestrer un espace muséal de 30m x 30m avec des fonctionnalités de réalité virtuelle enrichies.
Le musée comprend un hall principal, trois salles et une mezzanine accessible via un escalier. Les salles accueillent 8 à 10 tableaux, tandis que le hall et la mezzanine abritent des statues animées, toutes adaptées au thème de la Belle Époque. Les visiteurs peuvent interagir avec les œuvres d'art et se déplacer dans le musée grâce à des téléporteurs, créant ainsi une expérience immersive unique. Lorsqu'un visiteur s'approche d'un tableau, son nom apparaît au-dessus et une description en dessous. Si le visiteur s'éloigne, le nom et la description disparaissent. De plus, les portes s'ouvrent lorsque le visiteur s'approche et se ferment lorsqu'il s'éloigne. Les téléporteurs, sous forme de sphères noires placées à divers endroits du musée, deviennent rouges lorsque le visiteur les regarde. En cliquant sur le bouton gauche de la souris, le visiteur est téléporté à la position de la sphère.
J'ai été responsable de la configuration des éléments dans le musée, des choix de matériaux, ainsi que des mécanismes d'interaction, offrant une expérience éducative immersive. J'ai également traité les défis rencontrés et les solutions adoptées pour surmonter ces obstacles.
Mu Torere via Reinforcement Learning avec Python
Dans le cadre du module Intelligence Artificielle et Simulation à l'ENIB, j'ai développé un système d'apprentissage automatique pour jouer au jeu Mu Torere, un jeu de stratégie traditionnel des Maoris de Nouvelle-Zélande. Le projet utilise l'apprentissage par renforcement pour permettre au programme d'apprendre et de maîtriser le jeu en s'entraînant contre lui-même.
Le Mu Torere se joue avec quatre pions par joueur sur un plateau à neuf emplacements. Les algorithmes de renforcement utilisés incluent Q-learning et Sarsa. Chaque agent perçoit l'état du plateau et choisit parmi neuf actions possibles. Les agents reçoivent un renforcement positif pour une victoire et un renforcement négatif pour une défaite ou un coup illégal, ce qui les guide dans l'apprentissage des règles et des stratégies gagnantes.
J'ai mené le développement des agents intelligents et l'intégration des mécanismes d'apprentissage par renforcement. Les principaux défis étaient la modélisation précise des règles du jeu et l'ajustement des paramètres de l'algorithme pour optimiser l'apprentissage. Ce projet a démontré la puissance de l'apprentissage par renforcement dans les jeux de stratégie.
Bibliothèque en ligne avec ReactJS
Dans le cadre du module Développement Web 2 à l'École Polytechnique, nous avons été chargés de développer un site web en utilisant ReactJS, et moi j'ai choisi de créer une bibliothèque en ligne.
Cette application permet aux utilisateurs de gérer leur propre collection de livres. J'ai implémenté des fonctionnalités de base telles que l'affichage des couvertures, des titres, des auteurs et des prix des livres.
Les principales fonctionnalités incluent :
- Affichage des couvertures, des titres, des auteurs et des prix des livres.
- Ajout et suppression de livres au panier avec un compteur dynamique.
- Gestion du panier avec possibilité d'augmenter ou de diminuer le nombre de copies de chaque livre, ainsi qu'un bouton pour supprimer des articles.
- Calcul automatique du montant total du panier.
- Récapitulatif des livres achetés avec un bouton "Passer à la Commande" pour accéder directement à la page de paiement.
Site Web E-commerce avec HTML, CSS, et PHP
Réalisé dans le cadre du module Technologie Web à l'École Polytechnique, ce projet consistait à créer un site web e-commerce en utilisant HTML, CSS, JavaScript, et PHP. Le site comprend une partie client pour la navigation et l'achat de produits, ainsi qu'une partie administrateur pour la gestion des produits, des commandes et des utilisateurs. Ce projet a permis de mettre en pratique diverses compétences en développement web, notamment la création de pages dynamiques, la gestion de bases de données et l'implémentation de fonctionnalités de sécurité.
Application d'Analyse de Sentiments avec Flask
Ce projet consiste à développer une application web permettant d'analyser les sentiments exprimés dans des textes. Le modèle utilisé pour l'analyse a été créé et entraîné à partir d'un dataset public. Une fois entraîné, le modèle a été téléchargé et utilisé dans une application Flask.
L'application permet aux utilisateurs de soumettre un texte, et le modèle effectue une classification des sentiments comme positifs ou négatifs. Flask est utilisé pour gérer le backend et l'API qui interagit avec le modèle.
Ce projet m'a permis d'acquérir de l'expérience en traitement du langage naturel (NLP), en entraînement de modèles d'apprentissage automatique, ainsi qu'en développement d'applications web avec Flask.
Système de Gestion des Chauffeurs avec Java Swing
Cette application développée en Java Swing permet de gérer les chauffeurs, offrant des fonctionnalités de création, visualisation, modification et suppression d'enregistrements. L'application dispose d'une interface graphique conviviale pour la gestion des opérations, ce qui permet de faciliter l'organisation et la manipulation des informations sur les chauffeurs.
API REST pour Gestion de Bibliothèque Vidéo avec Spring Boot
Ce projet est une API REST développée en Spring Boot pour la gestion d'une bibliothèque vidéo. L'application permet d'effectuer des opérations CRUD (Créer, Lire, Mettre à jour, Supprimer) sur les acteurs, catégories et films de la base de données.
L'API repose sur Spring Data JPA pour gérer les données, avec une base de données H2 en mémoire pour un environnement de test. Chaque entité (acteurs, catégories, films) dispose de ses propres endpoints pour la gestion des enregistrements, accessibles via des requêtes HTTP.
Le projet intègre également Swagger pour la documentation de l'API et pour faciliter les tests des endpoints. Des tests unitaires sont aussi inclus dans le projet, utilisant JUnit pour garantir la fiabilité des différentes fonctionnalités.
En plus de la gestion de la bibliothèque vidéo, le projet inclut une console H2 , permettant aux utilisateurs de visualiser et manipuler les données stockées dans la base.
Gestion de Produits avec Angular
Ce projet est une application web développée en Angular, permettant de gérer un catalogue de produits. L'application offre des fonctionnalités de création, consultation, modification et suppression (CRUD) des produits via une interface utilisateur interactive.
Gestion de Produits avec React
Ce projet consiste en une application de gestion de produits utilisant React pour l'interface utilisateur. Elle permet de réaliser des opérations CRUD (ajouter, consulter, modifier, supprimer) sur une base de produits. L'application est conçue pour être réactive et offrir une expérience utilisateur fluide.
Jeu Vidéo Flappy Bird avec Unity
Dans le cadre du module de Réalité Virtuelle à l'ENIB, nous avons été chargés de développer un jeu vidéo utilisant Unity, et j'ai choisi de réaliser le célèbre jeu Flappy Bird. Ce projet représente ma première expérience avec Unity et le langage C#. Tous les graphismes ont été générés avec DALL-E.
Le développement du jeu a inclus plusieurs étapes clés :
Ajout de graphismes en tant que sprites : Les éléments visuels du jeu, tels que l'oiseau, les tuyaux et l'arrière-plan, ont été importés en tant que sprites dans Unity. DALL-E a été utilisé pour générer ces graphismes de manière originale et attrayante.
Installation de composants pour la gestion de la physique et des collisions : Les composants de physique dans Unity ont été configurés pour gérer le mouvement de l'oiseau et les collisions avec les tuyaux. Cela inclut l'ajout de composants Rigidbody2D et Collider2D aux objets pertinents.
Génération dynamique des tuyaux : Un système de génération procédurale pour les tuyaux a été implémenté, assurant qu'ils apparaissent à intervalles réguliers avec des positions verticales aléatoires, ajoutant un défi constant pour le joueur.
Mise en place du système de score : Un système de score affiché en haut à gauche de l'écran a été développé pour suivre les points du joueur, qui augmentent à chaque passage réussi entre les tuyaux.
Optimisation des performances : Afin de garantir une expérience de jeu fluide, les éléments du jeu ont été optimisés en minimisant les calculs inutiles et en gérant efficacement les objets de jeu actifs et inactifs.
Ce projet a permis de maîtriser les bases du développement de jeux avec Unity et de comprendre les concepts essentiels de la physique des jeux, de la gestion des collisions et de l'interface utilisateur. Une expérience précieuse dans la génération dynamique de contenu et l'optimisation des performances a également été acquise pour assurer une expérience de jeu agréable.
Maquette d'Application de Covoiturage avec Adobe XD et Flutter
Dans le cadre du projet Fikra de 4ème année à l'École Polytechnique d'Agadir, nous devions réaliser un projet innovant en étudiant le marché, la cible, les types et niveaux d'innovation, le benchmark autour du produit et le business model. Mon groupe a choisi de créer une application de covoiturage appelée ByBike, une application de partage de motos similaire à Indriver.
ByBike permet aux utilisateurs de réserver facilement une moto disponible à proximité pour leurs trajets, offrant ainsi une alternative pratique et rapide aux autres modes de transport. Le projet s'ancre dans la volonté de répondre à des défis contemporains de mobilité urbaine, proposant une solution agile et durable face à l'urbanisation croissante et aux problèmes de congestion des villes. En offrant une alternative de transport individuel flexible, notre projet ambitionne de désengorger le trafic et de réduire l'empreinte carbone.
J'étais responsable de la création du logo et de toutes les maquettes de l'application, y compris les parties client et chauffeur. Après la phase de conception, nous avons procédé au développement en utilisant le langage Dart, Flutter pour le front-end, et Firebase pour gérer l'authentification. J'ai également codé plusieurs interfaces de l'application.
Stage Technicien - Sécurité Réseaux avec pfSense
Ce projet a été réalisé lors d'un stage de 3 mois, axé sur la configuration d'une solution de gestion et de sécurité des réseaux en utilisant pfSense. L'objectif principal était de sécuriser les infrastructures réseau tout en optimisant la gestion du trafic et des utilisateurs.
Parmi les technologies implémentées figurent :
- Squid et SquidGuard : Configuration de Squid pour le filtrage du contenu et gestion des règles de filtrage avec SquidGuard.
- Snort IDS/IPS : Mise en place d'un système de détection et de prévention des intrusions pour sécuriser le réseau.
- pfBlockerNG : Utilisation de pfBlockerNG pour bloquer des catégories de sites non autorisées, renforçant ainsi la sécurité.
- Portail Captif : Mise en place d'un portail captif pour authentifier les utilisateurs avant qu'ils puissent accéder à Internet.
Le stage m'a permis de développer des compétences pratiques dans la configuration et la sécurisation des réseaux, ainsi que dans l'utilisation avancée de pfSense pour répondre aux besoins de l'entreprise.
Intéressé par mon profil ?