generated from Templates_CodeFirst/templateHtmlCss
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.
182 lines
9.1 KiB
182 lines
9.1 KiB
document.addEventListener("DOMContentLoaded", function () {
|
|
// Get project name from URL
|
|
const urlParams = new URLSearchParams(window.location.search);
|
|
const projectName = urlParams.get("name");
|
|
|
|
// Simulated "database" of projects
|
|
const projects = {
|
|
"mastermind": {
|
|
title: "Projet MasterMind",
|
|
subtitle: "Un projet de création du jeu MasterMind.",
|
|
description: "Le but de ce projet était de réaliser par groupe de 4 personnes sur une durée de 3 mois un jeu de MasterMind en .net Maui.",
|
|
images: [
|
|
{
|
|
src: "img/project/scolaire/mastermind_menu.png",
|
|
description: "Menu principal du jeu. Les joueurs peuvent consulter les meilleurs scores, lire les règles et lancer une partie."
|
|
},
|
|
{
|
|
src: "img/project/scolaire/mastermind_game.png",
|
|
description: "Plateau de jeux durant une partie. Les joueurs jouent en cliquant sur les cercles de couleurs afin de les placer sur le plateau."
|
|
},
|
|
{
|
|
src: "img/project/scolaire/mastermind_login.png",
|
|
description: "Écran de début de partie. Les joueurs peuvent choisir leurs pseudo ainsi que la difficulté. La difficulté influe sur le nombre de couleurs et d'essaies."
|
|
}
|
|
],
|
|
technologies: ["csharp", "xaml", "json"]
|
|
}, // ✅ Fixed comma placement
|
|
|
|
"etugestion": { // ✅ Removed incorrect semicolon before this key
|
|
title: "EtuGestion",
|
|
subtitle: "Création d'un outil de gestion en ligne de commande pour une école.",
|
|
description: "Ce projet réalisé en C par groupe de 2 à l'aide de l'outil git nécessitait d'avoir différentes interfaces pour des élèves, des professeurs et des jury...",
|
|
images: [
|
|
{
|
|
src: "img/project/scolaire/brico_menu.png",
|
|
description: "Menu principal de l'outil."
|
|
},
|
|
{
|
|
src: "img/project/scolaire/brico_add.png",
|
|
description: "Écran de connexion permettant à l'utilisateur d'accéder à ses scores enregistrés."
|
|
}, // ✅ Added missing comma here
|
|
{
|
|
src: "img/project/scolaire/brico_list.png",
|
|
description: "Écran permettant d'ajouter de nouveaux éléments à la base de données."
|
|
}
|
|
],
|
|
technologies: ["c", "git"]
|
|
},
|
|
|
|
"linux_install": {
|
|
title: "Linux et shell",
|
|
subtitle: "Installation d'une distribution Linux et création de scripts shell.",
|
|
description: `Dans le cadre de ma première année de BUT informatique, j'ai été amené à
|
|
installer une distribution Linux (Arch Linux) qui est rapidement devenue mon outil de travail principal.`,
|
|
images: [
|
|
{
|
|
src: "img/project/scolaire/arch_main.png",
|
|
description: "Écran principal après installation d'Arch Linux."
|
|
},
|
|
{
|
|
src: "img/project/scolaire/arch_script1.png",
|
|
description: "Exemple de script shell automatisant une tâche quotidienne."
|
|
}
|
|
],
|
|
technologies: ["bash"]
|
|
},
|
|
"monster_battle": {
|
|
title: "Monster Battle",
|
|
subtitle: "Un projet de création du jeu MasterMind.",
|
|
description: "Le but de ce projet était de réaliser par groupe de 4 personnes sur une durée de 3 mois un jeu de MasterMind en .net Maui.",
|
|
images: [
|
|
{
|
|
src: "img/project/perso/monsterBattle_logo.png",
|
|
description: "Menu principal du jeu. Les joueurs peuvent consulter les meilleurs scores, lire les règles et lancer une partie."
|
|
},
|
|
{
|
|
src: "img/project/perso/monsterBattle_menu.png",
|
|
description: "Plateau de jeux durant une partie. Les joueurs jouent en cliquant sur les cercles de couleurs afin de les placer sur le plateau."
|
|
},
|
|
{
|
|
src: "img/project/perso/monsterBattle_main.png",
|
|
description: "Écran de début de partie. Les joueurs peuvent choisir leurs pseudo ainsi que la difficulté. La difficulté influe sur le nombre de couleurs et d'essaies."
|
|
}
|
|
],
|
|
technologies: ["python", "tkinter"]
|
|
}, // ✅ Fixed comma placement
|
|
|
|
"etugestion": { // ✅ Removed incorrect semicolon before this key
|
|
title: "EtuGestion",
|
|
subtitle: "Création d'un outil de gestion en ligne de commande pour une école.",
|
|
description: "Ce projet réalisé en C par groupe de 2 à l'aide de l'outil git nécessitait d'avoir différentes interfaces pour des élèves, des professeurs et des jury...",
|
|
images: [
|
|
{
|
|
src: "img/project/scolaire/brico_menu.png",
|
|
description: "Menu principal de l'outil."
|
|
},
|
|
{
|
|
src: "img/project/scolaire/brico_add.png",
|
|
description: "Écran de connexion permettant à l'utilisateur d'accéder à ses scores enregistrés."
|
|
}, // ✅ Added missing comma here
|
|
{
|
|
src: "img/project/scolaire/brico_list.png",
|
|
description: "Écran permettant d'ajouter de nouveaux éléments à la base de données."
|
|
}
|
|
],
|
|
technologies: ["c", "git"]
|
|
},
|
|
|
|
"linux_install": {
|
|
title: "Linux et shell",
|
|
subtitle: "Installation d'une distribution Linux et création de scripts shell.",
|
|
description: `Dans le cadre de ma première année de BUT informatique, j'ai été amené à
|
|
installer une distribution Linux (Arch Linux) qui est rapidement devenue mon outil de travail principal.`,
|
|
images: [
|
|
{
|
|
src: "img/project/scolaire/arch_main.png",
|
|
description: "Écran principal après installation d'Arch Linux."
|
|
},
|
|
{
|
|
src: "img/project/scolaire/arch_script1.png",
|
|
description: "Exemple de script shell automatisant une tâche quotidienne."
|
|
}
|
|
],
|
|
technologies: ["bash"]
|
|
}
|
|
};
|
|
|
|
// Get project data or fallback
|
|
const project = projects[projectName] || {
|
|
title: "Projet Inconnu",
|
|
subtitle: "Désolé, ce projet n'existe pas.",
|
|
description: "Nous n'avons pas trouvé d'informations sur ce projet.",
|
|
images: [],
|
|
technologies: []
|
|
};
|
|
|
|
// Update HTML content
|
|
document.getElementById("project-title").innerText = project.title;
|
|
document.getElementById("project-subtitle").innerText = project.subtitle;
|
|
document.getElementById("project-description").innerText = project.description;
|
|
|
|
const galleryContainer = document.getElementById("project-gallery");
|
|
|
|
project.images.forEach((imgObj, index) => {
|
|
const wrapper = document.createElement("div");
|
|
wrapper.classList.add("image-wrapper");
|
|
|
|
const img = document.createElement("img");
|
|
img.src = imgObj.src;
|
|
img.alt = `Image ${index + 1}`;
|
|
|
|
const desc = document.createElement("div");
|
|
desc.classList.add("image-description");
|
|
desc.innerText = imgObj.description; // Custom description here
|
|
|
|
wrapper.appendChild(img);
|
|
wrapper.appendChild(desc);
|
|
galleryContainer.appendChild(wrapper);
|
|
});
|
|
|
|
// Update technologies
|
|
const techContainer = document.getElementById("project-tech-icons");
|
|
project.technologies.forEach(tech => {
|
|
const div = document.createElement("div");
|
|
div.classList.add("tech-box", `${tech}-box`); // Ensure the correct class is added
|
|
|
|
const img = document.createElement("img");
|
|
img.src = `logos/${tech}.jpeg`;
|
|
img.alt = tech.toUpperCase();
|
|
|
|
const text = document.createElement("span");
|
|
text.innerText = tech.toUpperCase();
|
|
|
|
div.appendChild(img);
|
|
div.appendChild(text);
|
|
techContainer.appendChild(div);
|
|
});
|
|
|
|
// Fade-in effect when page loads
|
|
document.body.classList.remove("fade-out");
|
|
});
|