Progression
Retracez mon évolution et l'acquisition de mes compétences en développement informatique durant mon BTS SIO
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.

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.

JavaScript - L'interactivité
Pour rendre mes pages interactives, j'ai utiliser 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.

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.
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.

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

Java - Programmation orientée objet
J'ai découvert Java et ses concepts avancés de POO, les collections ...
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.
Tests unitaires
J'ai appris à écrire des tests unitaires en PHP avec PHPUnit, pour garantir la qualité et la maintenabilité de mon code.
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...

- 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.





🧱 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 jeuBoard
: Affichage de la grille et vérification des lignesScoreManager
: Calcul et stockage du score

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.

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.


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.

- 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




🌐 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.

- 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)




🤖 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.

- 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.






👽 Space-BNB – Site de reservation dans l'éspace
Site web de réservation de séjour dans l'éspace

- 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 :



📚 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.

- 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
