Portfolio BUT1

Ayman MAAROUFI

Étudiant en BUT Informatique à l'Université Marie et Louis Pasteur. Ce portfolio présente une analyse détaillée de mes savoirs et savoir-faire acquis durant ma première année, illustrés par des traces concrètes de mes projets.

HTML/CSS JavaScript Python Java JavaScript C SQL Git
AM
BUT Informatique

Projets récents

Description

TitanGrip

Site e-commerce pour sports de combat

HTML CSS JavaScript

Site e-commerce dédié aux sports de combat, inspiré par des marques comme Venum.

Description

Atos

Site web d'information sur l'entreprise

HTML CSS JavaScript

Site web présentant l'entreprise Atos, ses activités, son organisation et son historique.

Description

Flask E-commerce

Application web avec Python Flask

Python Flask SQL

Application e-commerce développée avec le framework Flask et une base de données SQL.

En développement

Puissance X

Jeu de plateau avec interface graphique JavaFX

Java JavaFX Boardifier

SAÉ Développement IHM - Version graphique du jeu Puissance 4 avec grille personnalisable.

Mes Projets

TitanGrip - Site E-commerce

HTML CSS JavaScript Compétence 1 Compétence 4

TitanGrip est un site e-commerce dédié aux sports de combat, inspiré par des marques comme Venum. Le site propose une large gamme d'équipements de boxe, MMA, et autres sports de combat, pour amateurs et professionnels.

Description

Figure 1 : Interface de la page d'accueil du site TitanGrip

Description

Analyse des savoirs et savoir-faire

Savoirs identifiés :
  • Structure sĂ©mantique HTML5
  • Mise en page responsive avec CSS
  • Manipulation du DOM avec JavaScript
  • Gestion des Ă©vĂ©nements utilisateur
Savoir-faire associés :
  • Concevoir une interface utilisateur intuitive et responsive
  • ImplĂ©menter une navigation fluide entre les pages
  • Structurer le contenu de manière sĂ©mantique pour l'accessibilitĂ©
  • Optimiser les performances de chargement des pages
Commentaire d'analyse :

La Figure 1 présente l'interface de la page d'accueil du site TitanGrip que j'ai développée dans le cadre d'un projet de groupe. En tant que référent du projet et responsable de cette page, j'ai mis en œuvre plusieurs savoirs fondamentaux du développement web.

La structure HTML5 utilisée démontre ma compréhension de l'importance d'un balisage sémantique pour l'accessibilité et le référencement. J'ai utilisé des balises comme <header>, <nav>, <main> et <footer> pour organiser clairement le contenu. Cette approche structurée est essentielle dans le développement web moderne et constitue un fondamental que j'ai maîtrisé.

Pour la mise en page, j'ai implémenté un design responsive utilisant CSS Flexbox et Grid, permettant au site de s'adapter à différentes tailles d'écran. Cette compétence est cruciale dans un contexte où la navigation mobile représente plus de 50% du trafic web. J'ai également optimisé les performances en minimisant les requêtes HTTP et en utilisant des formats d'image appropriés.

Le JavaScript a été utilisé pour améliorer l'expérience utilisateur, notamment pour le carrousel de produits vedettes visible sur la capture d'écran et pour la validation des formulaires. J'ai implémenté ces fonctionnalités en utilisant des événements comme click, submit et DOMContentLoaded, démontrant ma capacité à créer des interactions dynamiques.

Ce projet m'a permis de développer des savoir-faire essentiels comme la collaboration via Git, la résolution de problèmes de compatibilité entre navigateurs, et l'optimisation des performances. Ces compétences sont directement applicables dans un contexte professionnel et constituent une base solide pour ma progression en développement web.

Figure 2 : Implémentation du panier d'achat avec JavaScript

Description

Analyse des savoirs et savoir-faire

Savoirs identifiés :
  • Manipulation de donnĂ©es avec JavaScript
  • Stockage local (localStorage)
  • Gestion d'Ă©tat d'une application
  • Calculs dynamiques cĂ´tĂ© client
Savoir-faire associés :
  • ImplĂ©menter un système de panier persistant
  • GĂ©rer les mises Ă  jour dynamiques de l'interface utilisateur
  • Calculer des totaux et appliquer des règles mĂ©tier
  • Valider les donnĂ©es cĂ´tĂ© client
Commentaire d'analyse :

La Figure 2 illustre l'implémentation du panier d'achat que j'ai développé pour le site TitanGrip. Cette fonctionnalité représente un aspect critique d'un site e-commerce et démontre ma maîtrise de plusieurs concepts fondamentaux en développement web front-end.

Le panier utilise le localStorage pour persister les données entre les sessions, un concept essentiel pour améliorer l'expérience utilisateur. Cette approche permet aux utilisateurs de retrouver leur panier même après avoir fermé leur navigateur, ce qui est une pratique standard dans le développement e-commerce moderne.

J'ai développé un système de mise à jour dynamique qui recalcule instantanément les totaux lorsque l'utilisateur modifie les quantités. Cette fonctionnalité utilise des écouteurs d'événements et démontre ma capacité à créer des interfaces réactives.

Atos - Site Web Informatif

HTML CSS JavaScript Compétence 1 Compétence 5 Compétence 6

Site web développé en HTML, CSS et JavaScript dans le cadre de la SAÉ 05-06, fournissant des informations sur l'entreprise Atos, ses activités, son organisation et son historique.

Description

Figure 3 : Utilisation de Git pour le versioning du projet Atos

Description

Analyse des savoirs et savoir-faire

Savoirs identifiés :
  • Principes et utilitĂ© du versioning
  • Versioning avec Git
  • Collaboration en Ă©quipe sur un dĂ©pĂ´t partagĂ©
  • Gestion des branches et des conflits
Savoir-faire associés :
  • Utiliser les opĂ©rations Git basiques dans un dĂ©veloppement en Ă©quipe
  • CrĂ©er et gĂ©rer des branches de dĂ©veloppement
  • RĂ©soudre des conflits de fusion
  • Utiliser les logs Git pour suivre l'Ă©volution du projet
Commentaire d'analyse :

La Figure 3 est une capture d'écran de l'interface Git utilisée pour le versioning du projet Atos. Cette trace illustre ma compréhension et mon application des principes fondamentaux du versioning dans un contexte de développement collaboratif.

Le versioning est un concept fondamental en développement logiciel qui permet de garder une trace des modifications successives sur les fichiers d'un projet. Dans le cadre du projet Atos, nous avons utilisé Git comme système de versioning, car c'est devenu le standard de l'industrie.

L'utilisation de Git dans ce projet m'a permis de développer des compétences relevant des domaines 5 (Conduire un projet) et 6 (Travailler dans une équipe informatique). Ces compétences sont directement transférables dans un contexte professionnel.

Figure 4 : Validation W3C et éco-conception du site Atos

Description

Analyse des savoirs et savoir-faire

Savoirs identifiés :
  • Standards du web (W3C)
  • Principes d'Ă©co-conception web
  • Validation et conformitĂ© du code
  • AccessibilitĂ© web
Savoir-faire associés :
  • Valider la conformitĂ© d'une page web aux standards
  • Optimiser les performances et l'impact environnemental d'un site
  • Corriger les erreurs de validation
  • Appliquer les bonnes pratiques d'accessibilitĂ©
Commentaire d'analyse :

La Figure 4 présente les résultats de validation W3C et d'éco-conception pour le site Atos que j'ai développé avec mon équipe. Cette trace illustre ma compréhension de l'importance des standards web et de l'impact environnemental du développement web.

La validation W3C est un processus fondamental pour s'assurer que le code HTML et CSS respecte les standards internationaux du web. Ces standards garantissent la compatibilité entre navigateurs, l'accessibilité et la pérennité du code.

Flask E-commerce - Application Web

Python Flask SQL Compétence 1 Compétence 2 Compétence 4

Application e-commerce développée avec le framework Flask et une base de données SQL, permettant la gestion de produits, utilisateurs et commandes.

Description

Figure 5 : Architecture MVC de l'application Flask

Description

Analyse des savoirs et savoir-faire

Savoirs identifiés :
  • Paradigme MVC (Modèle-Vue-ContrĂ´leur)
  • Framework Flask et son Ă©cosystème
  • Routage d'une application web
  • Templates et moteurs de templates
Savoir-faire associés :
  • Structurer une application selon le pattern MVC
  • ImplĂ©menter des routes et contrĂ´leurs
  • CrĂ©er des modèles de donnĂ©es
  • DĂ©velopper des templates pour l'affichage
Commentaire d'analyse :

La Figure 5 illustre l'architecture MVC (Modèle-Vue-Contrôleur) que j'ai implémentée dans mon application Flask E-commerce. Cette trace démontre ma compréhension et mon application d'un paradigme fondamental en développement d'applications web.

Le paradigme MVC est un concept architectural essentiel qui permet de structurer une application en séparant les responsabilités entre trois composants principaux : le Modèle (données), la Vue (interface utilisateur) et le Contrôleur (logique métier).

Figure 6 : Modèle de données et requêtes SQL de l'application

Description

Analyse des savoirs et savoir-faire

Savoirs identifiés :
  • ModĂ©lisation de donnĂ©es relationnelles
  • Langage SQL et requĂŞtes complexes
  • ORM (Object-Relational Mapping)
  • Normalisation de bases de donnĂ©es
Savoir-faire associés :
  • Concevoir un schĂ©ma de base de donnĂ©es normalisĂ©
  • ImplĂ©menter des relations entre tables
  • Optimiser les requĂŞtes SQL
  • Utiliser un ORM pour abstraire les opĂ©rations de base de donnĂ©es
Commentaire d'analyse :

La Figure 6 présente le modèle de données relationnel et des exemples de requêtes SQL que j'ai développés pour l'application Flask E-commerce. Cette trace illustre ma compréhension des concepts fondamentaux de gestion de données.

La modélisation de données relationnelles est un savoir fondamental en informatique qui permet de structurer l'information de manière cohérente et efficace.

SAÉ Puissance X - Développement IHM

Java JavaFX Boardifier Compétence 1 Compétence 2 Compétence 5

Projet en cours de développement - SAÉ (Situation d'Apprentissage et d'Évaluation) portant sur le développement d'une interface graphique pour un jeu de plateau. Version modifiée du Puissance 4 avec grille personnalisable et interface JavaFX.

Interface graphique
en développement

Aperçu du projet SAÉ Développement IHM

Puissance X - Jeu de plateau graphique

Version modifiée du Puissance 4 avec grille personnalisable (5x5 à 10x10) et nombre de jetons à aligner variable (3 à N).

Architecture MVC
Interactions souris
Animations JavaFX

Spécifications techniques et fonctionnelles

Fonctionnalités implémentées :
  • Interface graphique JavaFX avec menu
  • Grille personnalisable (5-10 colonnes/lignes)
  • Choix du nombre de jetons Ă  aligner (3-N)
  • Gestion des modes de jeu (2 humains, 2 IA, mixte)
  • Interactions souris pour sĂ©lection/dĂ©placement
  • Animations de chute des jetons
  • DĂ©tection automatique des alignements gagnants
Technologies et méthodologie :
  • Java avec framework JavaFX pour l'interface
  • Framework Boardifier pour la gestion du plateau
  • Architecture MVC (Modèle-Vue-ContrĂ´leur)
  • Tests unitaires avec couverture de code
  • Gestion d'Ă©vĂ©nements et animations
  • Conception orientĂ©e objet avancĂ©e
Description du projet :

Cette SAÉ (Situation d'Apprentissage et d'Évaluation) porte sur le développement d'une interface graphique pour un jeu de plateau. Le projet consiste à créer une version graphique du jeu "Puissance X", une variante personnalisable du célèbre Puissance 4.

Le défi principal réside dans l'adaptation d'une version console existante vers une interface graphique complète utilisant JavaFX et le framework Boardifier. Cette transition implique la refactorisation de l'architecture MVC pour intégrer la gestion des événements souris, les animations visuelles et une interface utilisateur intuitive.

Les aspects techniques couvrent la gestion des interactions utilisateur (sélection de colonnes par clic souris), l'implémentation d'animations fluides pour la chute des jetons, et la création d'une interface configurable permettant de personnaliser la taille du plateau et les règles de victoire.

Ce projet me permet d'approfondir mes compétences en développement d'interfaces graphiques, en architecture logicielle et en programmation orientée objet avancée, tout en appliquant une méthodologie rigoureuse incluant tests unitaires et conception modulaire.

🎯 Objectif : Livraison prévue fin mars 2024 avec interface complète et fonctionnalités avancées.

Règles du jeu et spécifications

Règles du Puissance X

Alignez N jetons de votre couleur (horizontalement, verticalement ou en diagonale) pour gagner !

Grille 5x5 Ă  10x10

3 à N jetons alignés

2 joueurs ou IA

Attendus techniques et méthodologiques

Interface graphique :
  • Menu principal (nouvelle partie, quitter)
  • BoĂ®te de dialogue pour configuration de partie
  • SĂ©lection par clic souris avec feedback visuel
  • Animation de chute des jetons
  • Affichage du rĂ©sultat en fin de partie
Architecture et tests :
  • SĂ©paration Modèle-Vue-ContrĂ´leur stricte
  • RĂ©utilisation du modèle de la version console
  • Tests unitaires avec couverture maximale
  • Gestion d'Ă©vĂ©nements souris et clavier
  • Code modulaire et maintenable
Défis techniques :

Le principal défi de ce projet réside dans la transition d'une interface console vers une interface graphique tout en conservant la logique métier existante. Cela nécessite une compréhension approfondie de l'architecture MVC et de la séparation des responsabilités.

L'utilisation du framework Boardifier simplifie la gestion du plateau de jeu et des animations, mais demande une adaptation de la logique de contrôle pour gérer les interactions souris plutôt que les saisies clavier.

Les tests unitaires constituent un aspect crucial, particulièrement pour la partie contrôle qui change radicalement entre les deux versions. Il faut tester la gestion des événements souris, la validation des coups et les transitions d'état du jeu.

Compétences

Cette section présente une synthèse des savoirs et savoir-faire que j'ai développés au cours de ma première année de BUT Informatique, organisés selon les six domaines de compétence du programme.

Compétence 1

Réaliser un développement d'application

Savoirs acquis :

  • Paradigme MVC et architecture logicielle
  • Programmation orientĂ©e objet (Java, Python)
  • DĂ©veloppement web front-end (HTML, CSS, JavaScript)
  • Frameworks web (Flask)
  • Manipulation du DOM et gestion d'Ă©vĂ©nements

Savoir-faire développés :

  • Structurer une application selon le pattern MVC
  • Concevoir des interfaces utilisateur responsives
  • ImplĂ©menter des fonctionnalitĂ©s front-end dynamiques
  • DĂ©velopper des API et services web
  • CrĂ©er des applications web complètes

Niveau d'acquisition :

Bon niveau - Capable de développer des applications web complètes avec une architecture structurée

Compétence 2

Optimiser des applications informatiques

Savoirs acquis :

  • Optimisation de requĂŞtes SQL
  • Techniques d'optimisation front-end (minification, compression)
  • Principes d'Ă©co-conception web
  • Analyse de performance d'applications
  • Structures de donnĂ©es efficientes

Savoir-faire développés :

  • Optimiser les performances d'un site web
  • AmĂ©liorer l'efficacitĂ© des requĂŞtes de base de donnĂ©es
  • Appliquer des techniques d'Ă©co-conception
  • Identifier et rĂ©soudre des goulots d'Ă©tranglement
  • Mesurer l'impact des optimisations

Niveau d'acquisition :

Niveau intermédiaire - Capable d'identifier et d'appliquer des optimisations basiques

Compétence 3

Administrer des systèmes informatiques communicants complexes

Savoirs acquis :

  • Principes des rĂ©seaux informatiques
  • Protocoles de communication web
  • Bases de l'administration système
  • SĂ©curitĂ© des applications web

Savoir-faire développés :

  • Configurer un environnement de dĂ©veloppement
  • Comprendre les interactions client-serveur
  • Appliquer des principes de sĂ©curitĂ© basiques

Niveau d'acquisition :

Niveau basique - Connaissances théoriques et applications limitées

Compétence 4

Gérer des données de l'information

Savoirs acquis :

  • ModĂ©lisation de donnĂ©es relationnelles
  • Langage SQL et requĂŞtes complexes
  • ORM (Object-Relational Mapping)
  • Normalisation de bases de donnĂ©es
  • Gestion de donnĂ©es cĂ´tĂ© client (localStorage)

Savoir-faire développés :

  • Concevoir un schĂ©ma de base de donnĂ©es normalisĂ©
  • ImplĂ©menter des relations entre tables
  • Optimiser les requĂŞtes SQL
  • Utiliser un ORM pour abstraire les opĂ©rations de base de donnĂ©es
  • GĂ©rer la persistance des donnĂ©es utilisateur

Niveau d'acquisition :

Bon niveau - Capable de concevoir et d'implémenter des modèles de données efficaces

Compétence 5

Conduire un projet

Savoirs acquis :

  • Principes et utilitĂ© du versioning
  • Versioning avec Git
  • MĂ©thodologie de gestion de projet
  • Planification et suivi de tâches

Savoir-faire développés :

  • Utiliser les opĂ©rations Git basiques dans un dĂ©veloppement en Ă©quipe
  • CrĂ©er et gĂ©rer des branches de dĂ©veloppement
  • Planifier et rĂ©partir les tâches d'un projet
  • Documenter un projet informatique

Niveau d'acquisition :

Niveau intermédiaire - Expérience pratique dans des projets académiques

Compétence 6

Travailler dans une équipe informatique

Savoirs acquis :

  • Collaboration via Git et dĂ©pĂ´ts partagĂ©s
  • Gestion des conflits et des fusions
  • Communication technique en Ă©quipe
  • RĂ©partition des tâches et responsabilitĂ©s

Savoir-faire développés :

  • Collaborer efficacement sur un projet informatique
  • RĂ©soudre des conflits de fusion de code
  • Communiquer sur des aspects techniques
  • Coordonner le dĂ©veloppement avec d'autres dĂ©veloppeurs

Niveau d'acquisition :

Niveau basique - Première expérience de travail en équipe sur des projets informatiques

Synthèse des compétences

Au terme de ma première année de BUT Informatique, j'ai développé un ensemble cohérent de savoirs et savoir-faire couvrant les six domaines de compétence du programme. Mes points forts se situent dans le développement d'applications (compétence 1) et la gestion de données (compétence 4), où j'ai acquis une expérience pratique significative.

Les compétences en optimisation (compétence 2) et en gestion de projet (compétence 5) sont en cours de développement, avec une base solide établie qui nécessite encore de l'approfondissement. Les domaines d'administration système (compétence 3) et de travail en équipe (compétence 6) représentent mes axes d'amélioration prioritaires pour la suite de ma formation.

Cette première année m'a permis d'acquérir les fondamentaux nécessaires pour aborder les années suivantes avec confiance et de développer une vision globale des enjeux du développement informatique moderne.

Ă€ propos

Informations personnelles

Nom complet

MAAROUFI Ayman

Date de naissance

08/06/2006

Numéro étudiant

*********

Code INE

**********

Formation

BUT Informatique - 1ère année

Université Marie et Louis Pasteur

2024-2025

Formation en informatique couvrant les aspects théoriques et pratiques du développement logiciel, de la gestion de données, de l'administration système et de la gestion de projet.

Technologies maîtrisées

Langages de programmation

Java Python JavaScript HTML/CSS SQL C C++ Lua

Frameworks et outils

Flask JavaFX Git MySQL MongoDB IDE (IntelliJ, VS Code)

Objectifs et perspectives

Ce portfolio présente une analyse détaillée de mes apprentissages durant ma première année de BUT Informatique. Il illustre ma progression dans les six domaines de compétence du programme et démontre ma capacité à appliquer les concepts théoriques dans des projets concrets.

Pour les années à venir, je souhaite approfondir mes compétences en développement d'applications complexes, explorer les technologies émergentes comme l'intelligence artificielle et le cloud computing, et développer mes compétences en gestion de projet et en travail collaboratif.

Mon objectif professionnel est de devenir un développeur full-stack capable de concevoir et d'implémenter des solutions informatiques complètes, en alliant expertise technique et vision stratégique.

Contact

Email

ayman.maaroufi@edu.univ-fcomte.fr

GitHub

github.com/ayman-maaroufi

Statistiques du portfolio

6

Figures analysées

4

Projets présentés

15+

Savoirs identifiés

20+

Savoir-faire

Téléchargements