Files
portfolio/src/data/projets.js
T
2026-04-20 00:32:21 +02:00

242 lines
11 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
/** Cartes projet (page Projets) : titre, compétences, visuel, texte, lien externe. */
export const PROJETS = [
{
id: 'androidpayload',
title: 'androidpayload',
skills: ['Linux', 'Bash', 'Java', 'Hardware'],
imageSrc: 'https://picsum.photos/seed/pacmanc/640/360',
imageAlt: 'Visuel du projet androidpayload',
description:
'Application pour récupérer tous les droits sur un appareil Android (ROOT).',
link: 'https://github.com/topjohnwu/Magisk',
linkLabel: 'Magisk sur GitHub',
},
{
id: 'wikicyber',
title: 'WIKICYBER',
skills: ['Web', 'OSINT', 'Cybersécurité', 'Documentation'],
imageSrc: '/images/wikicyber-preview.png',
imageAlt: 'Aperçu du projet WIKICYBER',
description:
'Wiki informatique, réseau social anonyme WIKICYBER.\nSite web regroupant des outils informatiques / réseau social anonyme.\nCyber sécurité, OSINT, documentation…\nProjet perso — GitHub.',
link: 'https://github.com/Foufure13/wiki.cyber',
linkLabel: 'wiki.cyber sur GitHub',
},
{
id: 'lk-find-post',
title: 'LK-Find-Post',
skills: ['Scraping', 'API', 'Base de données', 'Python'],
imageSrc: '/images/lk-find-post-preview.png',
imageAlt: 'Aperçu du projet LK-Find-Post',
description:
'Outil de scraping de posts et de filtrage pour récupérer un thème spécifique.\nEnvoi par API vers la base de données.\nProjet perso — GitHub.',
link: 'https://github.com/Foufure13/Linkedin-find-post',
linkLabel: 'Linkedin-find-post sur GitHub',
},
{
id: 'rotmg-like',
title: 'ROTMG-LIKE',
skills: ['C#', 'Multijoueur', 'Jeu vidéo'],
imageSrc: '/images/rotmglike-preview.png',
imageAlt: 'Aperçu du jeu ROTMG-LIKE',
description:
'Jeu vidéo en C# multijoueur / solo.\nGraphisme et gameplay inspirés du jeu dorigine, avec les fonctionnalités de base : 1 type de classe, niveau max 20.\nStuff : arme, collier, armure, anneau — 4 types par catégorie.\n4 types dennemis : à leur mort, gain dXP et 1 drop darme par ennemi.\nProjet scolaire personnel — GitHub.',
link: 'https://github.com/Foufure13/ROTMG-LIKE-Csharp',
linkLabel: 'ROTMG-LIKE sur GitHub',
},
{
id: 'twitch-bot-interactif',
title: 'Twitch Bot Interactif',
skills: ['Twitch', 'API', 'STT', 'Bot'],
imageSrc: '/images/twitch-bot-preview.png',
imageAlt: 'Aperçu du bot Twitch',
description:
'Bot connecté au flux de chat et au streaming dun live Twitch.\nFonctionnalité 1 : écouter le chat et répondre quand il est mentionné.\nFonctionnalité 2 : enregistrer les voix du flux, traduire en texte et interagir selon les détections.\nProjet personnel — GitHub.',
link: 'https://github.com/Foufure13/twitchBot-intelligent',
linkLabel: 'twitchBot-intelligent sur GitHub',
},
{
id: 'billeterie-cinema',
title: 'Billeterie cinéma',
skills: ['Web', 'E-mail', 'Base de données'],
imageSrc: '/images/billeterie-cinema-preview.png',
imageAlt: 'Aperçu de la billetterie cinéma',
description:
'Site web de réservation de places avec choix du siège dans la salle.\nConfirmation par e-mail.\nProjet scolaire en groupe — GitHub.',
link: 'https://github.com/Foufure13/Billetterie-en-ligne',
linkLabel: 'Billetterie-en-ligne sur GitHub',
},
{
id: 'realmaster',
title: 'RealMaster',
skills: ['Web', 'Social', 'Stats'],
imageSrc: 'https://picsum.photos/seed/lkfindpost/640/360',
imageAlt: 'Aperçu du projet RealMaster',
description:
'Réseau social sécurisé sur le thème du jeu vidéo ROTMG.\nOutils pour le jeu : prévisualisation avatar, statistiques stuff.\nProjet scolaire personnel — GitHub.',
link: 'https://github.com/Foufure13/realmaster',
linkLabel: 'realmaster sur GitHub',
},
{
id: 'pacman-c',
title: 'Pacman C',
skills: ['C', 'Jeux vidéo', 'Procédural', 'Carte'],
imageSrc: '/images/pacman-c-preview.png',
imageAlt: 'Aperçu du Pacman en C',
description:
'Pacman codé en C avec modifications.\nGénération procédurale de la carte, choix de la taille de la carte.\nProjet scolaire personnel — GitHub.',
link: 'https://github.com/Foufure13/Pacman_C',
linkLabel: 'Pacman_C sur GitHub',
},
{
id: 'airsoft-vitrine',
title: 'Airsoft vitrine',
skills: ['Web', 'Association', 'Vitrine'],
imageSrc: '/images/airsoft-vitrine-preview.png',
imageAlt: 'Aperçu du site Airsoft',
description:
'Site web créé pour une association.\nProjet personnel — GitHub.',
link: 'https://github.com/Foufure13/Airsoft',
linkLabel: 'Airsoft sur GitHub',
},
{
id: 'cryptobot',
title: 'CryptoBot',
skills: ['API', 'Dashboard', 'Crypto', 'Trading'],
imageSrc: '/images/cryptobot-preview.png',
imageAlt: 'Aperçu du projet CryptoBot',
description:
'Outil complet de gestion de comptes crypto par API.\nSite web dashboard, sécurité compte / base de données.\nRécupération des flux marché (API), aide à la décision dinvestissement, trading sur portefeuille (API).\nDépôt GitHub privé.',
link: 'https://github.com/Foufure13',
linkLabel: 'Profil GitHub (dépôt privé)',
},
{
id: 'bot-instagram',
title: 'Bot autonome Instagram',
skills: ['Social', 'IA', 'API', 'Génération'],
imageSrc: 'https://www.thispersondoesnotexist.com',
imageAlt: 'Aperçu du bot Instagram',
description:
'Outils pour générer du contenu pour les réseaux sociaux et publier (yoloGenerator, Controler_prompt).\nGénération dimages générique dans un même style ou thème ; API pour communiquer avec un outil de génération dimage et ladministrer.\nProjet personnel — GitHub privé.',
link: 'https://github.com/Foufure13',
linkLabel: 'Profil GitHub (dépôt privé)',
},
{
id: 'site-partage-info',
title: 'Site web de partage dinformation',
skills: ['Web', 'Forum', 'Light'],
imageSrc: '/images/site-partage-preview.png',
imageAlt: 'Aperçu du site de partage',
description:
'Forum léger : possibilité dajouter du contenu pour tout utilisateur.\nProjet webjoke — GitHub privé.',
link: 'https://github.com/Foufure13',
linkLabel: 'Profil GitHub (dépôt privé)',
},
{
id: 'mecafollow',
title: 'mecaFollow',
skills: ['Web', 'Suivi', 'E-mail'],
imageSrc: '/images/mecafollow-preview.png',
imageAlt: 'Aperçu du projet mecaFollow',
description:
'Site web personnel ou professionnel : enregistrement et suivi dune voiture ou autre véhicule pour faciliter le suivi des entretiens (un ou plusieurs véhicules).\nNotifications par e-mail lorsquune intervention est nécessaire.\nProjet personnel et professionnel — GitHub sécurisé.',
link: 'https://github.com/Foufure13',
linkLabel: 'Profil GitHub (dépôt sécurisé)',
},
{
id: 'clipautocs2',
title: 'clipAutoCS2',
skills: ['Vidéo', 'YouTube'],
imageSrc: 'https://picsum.photos/seed/billeterie/640/360',
imageAlt: 'Aperçu du projet clipAutoCS2',
description:
'Création de clips highlight pro sur CS2.\nRécupération dun match e-sport et traitement des données.\nEnregistrement automatisé des meilleurs moments, montage vidéo, publication sur YouTube.\nProjet personnel — GitHub perso.',
link: 'https://github.com/Foufure13',
linkLabel: 'Profil GitHub',
},
{
id: 'wiki-documentation',
title: 'Wiki Documentation',
skills: ['Documentation', 'Docker', 'BookStack', 'Web'],
imageSrc: 'https://picsum.photos/seed/wiki-mira-ceti/640/360',
imageAlt: 'Aperçu du wiki BookStack Mira-Ceti',
description:
'Documentation des services, configurations et modes dutilisation pour serveurs et projets personnels ou professionnels.\nTechnologie : wiki BookStack, déployé avec Docker.\nInstance publique en lecture.',
link: 'https://wiki.mira-ceti.ovh',
linkLabel: 'wiki.mira-ceti.ovh',
},
{
id: 'seafile',
title: 'Seafile',
skills: ['Docker', 'Stockage', 'Web', 'API'],
imageSrc: 'https://picsum.photos/seed/seafile-stack/640/360',
imageAlt: 'Aperçu du déploiement Seafile',
description:
'Synchronisation et partage de fichiers en auto-hébergement (clients desktop et mobile), espaces d’équipe et historique de versions.\nStack conteneurisée, intégration sauvegardes et accès contrôlé.\nProjet personnel / professionnel.',
link: 'https://www.seafile.com/',
linkLabel: 'Seafile — site officiel',
},
{
id: 'gitea',
title: 'Gitea',
skills: ['Docker', 'Git', 'Web', 'API'],
imageSrc: 'https://picsum.photos/seed/gitea-selfhosted/640/360',
imageAlt: 'Aperçu du déploiement Gitea',
description:
'Forge Git légère : dépôts, issues, pull requests, actions CI.\nHébergement de code perso et projets internes derrière authentification.\nDéploiement Docker, sauvegardes et mise à jour documentés sur le wiki.',
link: 'https://gitea.io/',
linkLabel: 'Gitea — site officiel',
},
{
id: 'immich',
title: 'Immich',
skills: ['Docker', 'Photos', 'Web', 'Stockage'],
imageSrc: 'https://picsum.photos/seed/immich-gallery/640/360',
imageAlt: 'Aperçu du déploiement Immich',
description:
'Galerie photos et vidéos auto-hébergée : import depuis mobile, reconnaissance faciale optionnelle, albums et partage contrôlé.\nAlternative aux clouds grand public, stack Docker avec stockage objet ou disque.',
link: 'https://immich.app/',
linkLabel: 'Immich — site officiel',
},
{
id: 'authelia',
title: 'Authelia',
skills: ['Docker', 'Authentification', 'Cybersécurité', 'Web'],
imageSrc: 'https://picsum.photos/seed/authelia-sso/640/360',
imageAlt: 'Aperçu du déploiement Authelia',
description:
'Couche dauthentification et dautorisation (SSO, 2FA, politiques daccès) devant les services exposés.\nProtection des applications internes, intégration reverse proxy.\nConfiguration Docker et bonnes pratiques documentées sur le wiki.',
link: 'https://www.authelia.com/',
linkLabel: 'Authelia — site officiel',
},
{
id: 'jellyfin',
title: 'Jellyfin',
skills: ['Docker', 'Vidéo', 'Streaming', 'Web'],
imageSrc: 'https://picsum.photos/seed/jellyfin-media/640/360',
imageAlt: 'Aperçu du déploiement Jellyfin',
description:
'Serveur multimédia libre : films, séries, musique et livres audio pour le réseau local ou à distance.\nTranscodage optionnel, clients TV et mobile.\nStack Docker, bibliothèques et accès utilisateurs gérés localement.',
link: 'https://jellyfin.org/',
linkLabel: 'Jellyfin — site officiel',
},
]
/** Projets Docker auto-hébergés : section « Ecosystem Docker » sur la page Projets. */
export const ECOSYSTEM_DOCKER_IDS = [
'jellyfin',
'authelia',
'seafile',
'gitea',
'immich',
'wiki-documentation',
]
const projetById = Object.fromEntries(PROJETS.map((p) => [p.id, p]))
export const PROJETS_ECOSYSTEM_DOCKER = ECOSYSTEM_DOCKER_IDS.map((id) => projetById[id]).filter(
Boolean,
)
export const PROJETS_MAIN = PROJETS.filter((p) => !ECOSYSTEM_DOCKER_IDS.includes(p.id))