|
|
<!DOCTYPE html>
|
|
|
<html lang="fr">
|
|
|
<head>
|
|
|
<meta charset="UTF-8">
|
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
|
<title>Projets</title>
|
|
|
<link rel="stylesheet" href="site.css">
|
|
|
</head>
|
|
|
<body>
|
|
|
<div class="wrapper">
|
|
|
<header class="bandeau">
|
|
|
<div class="photo_titre_bandeau">
|
|
|
<img src="image/user_arpoulain.jpeg" alt="photo" class="image_accueil">
|
|
|
<h1 style="margin-left: 10px; margin-top: 40px; margin-right: 10px; text-decoration: underline;">
|
|
|
<a href="index.html">Poulain <br> Arsène</a>
|
|
|
</h1>
|
|
|
</div>
|
|
|
<nav id="bouttons_liens_nav" class="dropdown-nav">
|
|
|
<button class="dropdown-toggle" aria-label="Menu">☰ Menu</button>
|
|
|
<div class="dropdown-menu">
|
|
|
<a href="Projets.html" class="bouttons_liens"><strong>Projets</strong></a>
|
|
|
<a href="Apropos.html" class="bouttons_liens"><strong>A propos</strong></a>
|
|
|
<a href="Competences.html" class="bouttons_liens"><strong>Compétences</strong></a>
|
|
|
<a href="contact.html" class="bouttons_liens"><strong>Contact</strong></a>
|
|
|
</div>
|
|
|
</nav>
|
|
|
</header>
|
|
|
|
|
|
<div class="background"></div>
|
|
|
|
|
|
<section class="container">
|
|
|
<h1 style="text-align: center;">Mes Projets</h1>
|
|
|
<br>
|
|
|
<!-- Projets personnels -->
|
|
|
<h2 class="section-title">Personnels</h2>
|
|
|
<div class="projects-grid">
|
|
|
<div class="project-card">
|
|
|
<button class="close-btn" style="display:none;" aria-label="Fermer">×</button>
|
|
|
<h3><span style="color:red;">We</span>Tube</h3>
|
|
|
<p>Appuyer pour en savoir plus</p>
|
|
|
</div>
|
|
|
</div>
|
|
|
|
|
|
<!-- Projets universitaires -->
|
|
|
<h2 class="section-title">Universitaires</h2>
|
|
|
<div class="projects-grid">
|
|
|
<div class="project-card">
|
|
|
<button class="close-btn" style="display:none;" aria-label="Fermer">×</button>
|
|
|
<h3>Kingdomino</h3>
|
|
|
<p>Appuyer pour en savoir plus</p>
|
|
|
</div>
|
|
|
<div class="project-card">
|
|
|
<button class="close-btn" style="display:none;" aria-label="Fermer">×</button>
|
|
|
<h3>ChesSAE</h3>
|
|
|
<p>Appuyer pour en savoir plus</p>
|
|
|
</div>
|
|
|
</div>
|
|
|
</section>
|
|
|
</div>
|
|
|
|
|
|
<footer class="basPage">
|
|
|
<p>© 2025 Poulain Arsène. Tous droits réservés.</p>
|
|
|
</footer>
|
|
|
|
|
|
<script>
|
|
|
// Texte par défaut et texte détaillé pour chaque projet
|
|
|
const details = {
|
|
|
"WeTube": "<strong>WeTube</strong> est un projet personnel que j'ai commencé lors de mon année de Terminale. " +
|
|
|
"Il s'agit d'une plateforme de partage de vidéos, inspirée de YouTube et d'Instagram.<br><br>" +
|
|
|
"J'ai eu l'idée de développer ce projet principalement pour apprendre et perfectionner mes compétences " +
|
|
|
"en développement web, notamment en HTML, CSS et PHP. Je gère également la base de données locale du site.<br><br>" +
|
|
|
"Le site n'est pas encore terminé : certaines fonctionnalités manquent et, comme j'ai commencé ce projet au lycée, " +
|
|
|
"je n'ai pas pu récupérer toutes les données. De plus, avec mes études, j'ai mis ce projet de côté pour le moment.<br><br>" +
|
|
|
"<em>Il devrait bientôt être disponible sur mon <u><a href='https://github.com/ArsenePoulain' target='_blank'>GitHub</a></u>.</em>" +
|
|
|
"<br><img src='image/accueil_wetube.png' style='max-width:250px; height:auto; display:block; margin:20px auto;'>",
|
|
|
|
|
|
"Kingdomino": "<strong>Kingdomino</strong> est un projet réalisé en groupe en fin de première année de BUT Informatique. " +
|
|
|
"L'objectif était de reproduire le jeu de société Kingdomino sous forme d'application, en utilisant <strong>C#</strong> et <strong>.NET MAUI</strong> pour le développement, avec un affichage graphique en <strong>XAML</strong>.<br><br>" +
|
|
|
"Ce projet m'a permis de participer activement au développement d'une application complète, tout en découvrant la gestion de projet et la collaboration au sein d'une équipe informatique. " +
|
|
|
"Nous avons dû organiser notre travail, répartir les tâches, et communiquer efficacement pour mener à bien le projet.<br><br>" +
|
|
|
"Ce fut une expérience enrichissante, mêlant technique, gestion de projet et travail d'équipe."+
|
|
|
"<br><img src='image/kingdomino.png' alt='Kingdomino' style='max-width:180px; display:block; margin:20px auto;'>",
|
|
|
|
|
|
"ChesSAE": "<strong>ChesSAE</strong> est une SAÉ de groupe réalisée en première année de BUT Informatique. " +
|
|
|
"L’objectif de ce projet était de récupérer des données ouvertes et libres, de les insérer dans une base de données puis de les exploiter. " +
|
|
|
"Cette SAÉ nous a permis d’aborder tous les aspects de la conception, de l’implémentation et de l’exploitation d’une base de données, y compris la communication des informations extraites.<br><br>" +
|
|
|
"Nous avons choisi d’analyser des datasets sur le jeu d’échecs, trouvés gratuitement en ligne. Un script Python a été développé pour trier, ranger, renommer et analyser ces données afin d’en tirer des informations sur les plus grands joueurs, les événements majeurs, etc.<br><br>" +
|
|
|
"<u>Principaux renseignements :</u><br>" +
|
|
|
"- L’âge des grands maîtres était historiquement élevé, mais de plus en plus de jeunes accèdent au haut niveau.<br>" +
|
|
|
"- Le choix de l’ouverture (code ECO) est crucial et très étudié par les grands maîtres, notamment grâce à l’informatique.<br>" +
|
|
|
"- Certaines villes comme Moscou et Tripoli ont joué un rôle historique dans les grands événements d’échecs.<br>" +
|
|
|
"En conclusion, ce projet nous a permis de transformer des données brutes en analyses visuelles et statistiques pertinentes, tout en développant nos compétences en gestion de données et en travail d’équipe." +
|
|
|
"<div style='display:flex; justify-content:center; gap:20px; margin-top:20px;'>" +
|
|
|
"<img src='image/mld.png' alt='ChesSAE' style='max-width:120px; height:auto; border-radius:8px;'>" +
|
|
|
"<img src='image/graph.png' alt='ChesSAE' style='max-width:120px; height:auto; border-radius:8px;'>" +
|
|
|
"</div>",
|
|
|
};
|
|
|
|
|
|
document.querySelectorAll('.project-card').forEach(card => {
|
|
|
const closeBtn = card.querySelector('.close-btn');
|
|
|
// Fermer la carte avec la croix
|
|
|
closeBtn.addEventListener('click', (e) => {
|
|
|
e.stopPropagation();
|
|
|
card.classList.remove('expanded');
|
|
|
card.querySelector('p').textContent = "Appuyer pour en savoir plus";
|
|
|
closeBtn.style.display = 'none';
|
|
|
// Réaffiche toutes les cartes
|
|
|
document.querySelectorAll('.project-card').forEach(c => c.style.visibility = 'visible');
|
|
|
});
|
|
|
|
|
|
card.addEventListener('click', (e) => {
|
|
|
// Si on clique sur la croix, ne rien faire ici
|
|
|
if (e.target.classList.contains('close-btn')) return;
|
|
|
|
|
|
// Retire 'expanded' de toutes les cartes sauf celle cliquée
|
|
|
document.querySelectorAll('.project-card.expanded').forEach(expandedCard => {
|
|
|
if (expandedCard !== card) {
|
|
|
expandedCard.classList.remove('expanded');
|
|
|
const p = expandedCard.querySelector('p');
|
|
|
p.textContent = "Appuyer pour en savoir plus";
|
|
|
const btn = expandedCard.querySelector('.close-btn');
|
|
|
btn.style.display = 'none';
|
|
|
}
|
|
|
});
|
|
|
|
|
|
// Bascule 'expanded' sur la carte cliquée
|
|
|
card.classList.toggle('expanded');
|
|
|
const h3 = card.querySelector('h3');
|
|
|
const p = card.querySelector('p');
|
|
|
if (card.classList.contains('expanded')) {
|
|
|
// Met le texte détaillé
|
|
|
if (details[h3.textContent]) {
|
|
|
p.innerHTML = details[h3.textContent];
|
|
|
} else {
|
|
|
p.textContent = "Description détaillée du projet.";
|
|
|
}
|
|
|
closeBtn.style.display = 'block';
|
|
|
// Masque les autres cartes
|
|
|
document.querySelectorAll('.project-card').forEach(otherCard => {
|
|
|
if (otherCard !== card) {
|
|
|
otherCard.style.visibility = 'hidden';
|
|
|
}
|
|
|
});
|
|
|
} else {
|
|
|
// Remet le texte par défaut
|
|
|
p.textContent = "Appuyer pour en savoir plus";
|
|
|
closeBtn.style.display = 'none';
|
|
|
// Réaffiche toutes les cartes
|
|
|
document.querySelectorAll('.project-card').forEach(c => c.style.visibility = 'visible');
|
|
|
}
|
|
|
});
|
|
|
});
|
|
|
</script>
|
|
|
<script>
|
|
|
document.addEventListener('DOMContentLoaded', function() {
|
|
|
const toggle = document.querySelector('.dropdown-toggle');
|
|
|
const menu = document.querySelector('.dropdown-menu');
|
|
|
if (toggle && menu) {
|
|
|
toggle.addEventListener('click', function() {
|
|
|
menu.classList.toggle('show');
|
|
|
});
|
|
|
document.addEventListener('click', function(e) {
|
|
|
if (!toggle.contains(e.target) && !menu.contains(e.target)) {
|
|
|
menu.classList.remove('show');
|
|
|
}
|
|
|
});
|
|
|
}
|
|
|
});
|
|
|
</script>
|
|
|
</body>
|
|
|
</html> |