Progression

Retracez mon évolution et l'acquisition de mes compétences en développement informatique durant mon BTS SIO

Première Année - Découverte des bases

Durant ma première année de BTS SIO, j'ai acquis les fondamentaux du développement web et de la programmation. Javascript, Python ...

HTML - Les bases du web

J'ai commencé par apprendre le HTML qui m'a permis de créer mes premières pages web statiques. J'ai compris la structure d'une page web, les balises essentielles.

HTML5Structure

CSS - La mise en forme

J'ai ensuite appris le CSS pour styliser mes pages web. J'ai découvert les sélecteurs, le modèle de boîte, les flexbox les grid layouts et les autres fonctionnalités CSS.

CSS3FlexboxGridResponsive

JavaScript - L'interactivité

Pour rendre mes pages interactives, j'ai utiliser JavaScript.

JavaScript

PHP & MySQL - Le backend

J'ai découvert la programmation côté serveur avec PHP et l'interaction avec les bases de données MySQL. J'ai appris à créer des formulaires, gérer les sessions et sécuriser les données.

PHPMySQLSessionsSécurité

Modèle MVC

J'ai implémenté mon premier modèle MVC (Modèle-Vue-Contrôleur) en PHP, ce qui m'a permis de mieux organiser mon code et de séparer les responsabilités.

MVCArchitectureOrganisation
Deuxième Année - Nouvelles découvertes et améliorations de mes competences

Durant ma deuxième année, j'ai approfondi mes connaissances et découvert de nouveaux langages comme flutter dark et beaucoup de nouveaux frameworks.

Symfony - Framework PHP

J'ai appris à utiliser Symfony, un framework PHP, avec son architecture, son système de bundles, Doctrine et Twig.

SymfonyDoctrineTwig

P5JS - Framework JavaScript

J'ai appris à utiliser P5.js, un framework JavaScript, pour créer des animations interactives, avec des fonctions graphiques.

P5.js logo
P5.jsDynamiqueAnimation

Java - Programmation orientée objet

J'ai découvert Java et ses concepts avancés de POO, les collections ...

JavaPOOCollectionsSockets

Flutter - Développement mobile

J'ai exploré le développement mobile multiplateforme avec Flutter et Dart, créant des applications avec des widgets personnalisés et d'autres fonctionnalités.

FlutterDartMobileWidgets

Tests unitaires

J'ai appris à écrire des tests unitaires en PHP avec PHPUnit, pour garantir la qualité et la maintenabilité de mon code.

Tests unitairesPHPUnitQualité

Mes Projets

Voici plusieurs projets que j'ai réalisés, illustrant ma progression et l'amélioration de mes compétences au cours des 2 années

🧠 Qwizz – Application de quiz avec Symfony

Qwizz est une application de quiz développée avec Symfony. Elle permet aux utilisateurs de répondre à des séries de questions avec suivi des résultats et gestion des quiz par l'administrateur, possibilité de créer des qwizz personnalisés...

Aperçu du projet Qwizz
  • Application des cours de Symfony
  • Dans le src/Repository nous avions des class contenants plusieurs fonctions, méthodes qui seront appeller par la suite par un controller, voici un exemple de contenue d'un repository :
  • Et la voici un exemple de méthode contenue dans les repository
  • Tests unitaires avec PHPUnit pour garantir la qualité, donc comme dis nous avions énormement de test unitaires pour chaque méthodes les test unitaire se trouvent dans tests/Util/... voici un exemple de test unitaire:
  • Maintenant pour exploiter les methodes et class, des repository il nous fallait des controller, pour illustrant sa je vais vous montrer l'exemple du controller contact :
  • Et pour finir, ce qui nous permettais de tout test sous un format html, les twigs templates.
  • Nous avons mis longtemps a comprendre comment combiner toutes ces étapes pour arriver a un resultat final correct avec les twigs, mais une fois le precessus compris nous avions juste a répéter ces taches en boucles pour chaque pages de notre site qwizz.
PHPSymfonyTwigDoctrineTests unitaires

Code source GitHub

🧱 Jeu Tetris en JavaScript (p5.js)

Projet consistant à recréer le célèbre jeu Tetris en JavaScript à l’aide de la bibliothèque p5.js. Le joueur doit empiler des pièces pour compléter des lignes, avec une interface graphique responsive et des contrôles fluides.

  • Interface avec score, et grille dynamique
  • Contrôles clavier (flèches) pour une expérience intuitive
  • Difficulté progressive et gestion de la fin de partie

Architecture du code :

  • Game : Gestion globale du jeu
  • La boucle de jeu repose sur `setup()` et `draw()` : les pièces tombent automatiquement, le score augmente à chaque pièce fixée, et la détection de fin de partie s’effectue lorsque les blocs atteignent le haut de la grille. Ce système simple rend le jeu fluide et progressif.

  • Board : Affichage de la grille et vérification des lignes
  • La classe Grille gère l'affichage de la grille de jeu. Chaque case est dessinée en fonction de son état : colorée si occupée, grise si vide. La grille est représentée sous forme de matrice à deux dimensions, initialisée à zéro, et utilise p5.js pour dessiner les cases à l'écran.

  • ScoreManager : Calcul et stockage du score
  • Cette fonction JavaScript met à jour dynamiquement le score du joueur dans l'interface. Elle modifie le contenu textuel de l'élément HTML ayant pour ID score, en affichant la valeur actuelle de la variable score.

Technologies : JavaScript, p5.js, GitHub, éditeur en ligne p5.js

Code source : github.com/yanisyaniss/Tetris

A la fin de chaque partie il y a un ecran d'affichage "Game Over" et pour relancer une partie il faut appuyer sur F5

Code Game OVER

🔐 Gestionnaire de mots de passe (GDP)

Application web sécurisée développée après avoir étudié la sécurité informatique, hashage, requete sql préparer et d'autres aspects de la sécurités... Ce projet combine mes connaissances en PHP, sécurité et expérience.

Aperçu GDP
  • Implémentation des bonnes pratiques de sécurité apprises, comme les requetes SQL préparer voici un exemple ci-dessous:
  • Stockage sécurisé du mot de passe avec hachage et salage des mots de passe
  • Gestion de mot de passe sécurisé avec des minimum, et utilisation des regex
  • Et bien sur pour ce projet PHP nous avons utiliser le modele MVC
PHPMySQLSécuritéCryptographie

Code source GitHub

🌐 Serveur Web Java – Mini serveur HTTP local

Développement d'un serveur HTTP en Java, réalisé lors de mon apprentissage de la programmation réseau. Ce projet m'a permis de comprendre le fonctionnement bas niveau du web http en java.

Aperçu serveur Java
  • Initialisation du serveur mise en place:
  • Gestion des requêtes HTTP et des réponses
  • Support des codes statuts des responses (200, 404,...)
  • Service de fichiers statiques (HTML, CSS, images)
JavaHTTPSocketRéseau

Code source GitHub

🤖 BattleBots – Jeu de combat contre des bots

Application mobile développée avec Flutter, marquant mon initiation au développement mobile et à Dart. Ce projet combine gameplay, gestion d'état et interface utilisateur.

Aperçu BattleBots
  • Ce projet Flutter/Dart a pour but de faire combattre notre robot avec des équipements ou non contre d'autre robots.
  • Le code est composer de plusieurs class, comme une class robot objet, combat, inventaire et d'autres, voici un exemple de class avec ma class robot :
  • Système de combat tour par tour avec IA basique
  • Gestion d'inventaire, avec possibilité d'acheter ou équiper notre robots avec des items acheter préalablement dans la boutique d'objets, chaque objet procure des bonus comme de l'attaque defense etc. Voici un visuel :
  • Boutique intégrée avec système d'achats
  • Personnalisation du personnage et progression, avec par exemple des points de competences que l'on peut attribuer a notre robot, 5 par defaut, et la possibilité de changer le nom du robot.
FlutterDartMobileGameplay

Code source GitHub

👽 Space-BNB – Site de reservation dans l'éspace

Site web de réservation de séjour dans l'éspace

Aperçu BattleBots
  • Dans ce projet nous avons du utiliser PHP
  • Nous avons aborder les Transactions SQL
  • C'étais dans la periode ou on commencait a apprendre le modele MVC donc nous avons appris a utiliser des views ...
  • Et meme des triggers SQL dans phpmyadmin
  • Mais aussi des systemes de Logs, voici une image de la fonction pour les Logs
  • Voici un appercu d'une class, la class Reservation :
  • Voici un appercu d'un manager, le manager Reservation :
FlutterDartMobileGameplayState Management

Code source GitHub

📚 Biblio2024 – Bibliothèque/Médiathèque en PHP

Notre premier gros projet en PHP a été la création d’un site de bibliothèque/médiathèque connecté à une base de données. Il permettait de consulter le catalogue des contenus disponibles, avec diverses fonctionnalités de recherche, consultation et modification.

Aperçu Biblio2024
  • Développement en PHP natif avec architecture MVC
  • Base de données pour stocker livres, films et autres médias
  • Fonctionnalités CRUD pour chaque type de média
  • Recherche par titre, type ou auteur
  • Interface utilisateur simple et intuitive
PHPMySQLCRUDMVCHTML/CSS

Code source GitHub