You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

171 lines
9.7 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

<!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">&#9776; 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">&times;</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">&times;</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">&times;</button>
<h3>ChesSAE</h3>
<p>Appuyer pour en savoir plus</p>
</div>
</div>
</section>
</div>
<footer class="basPage">
<p>&copy; 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. " +
"Lobjectif 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 daborder tous les aspects de la conception, de limplémentation et de lexploitation dune base de données, y compris la communication des informations extraites.<br><br>" +
"Nous avons choisi danalyser 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 den 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 louverture (code ECO) est crucial et très étudié par les grands maîtres, notamment grâce à linformatique.<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>