{
  "title": "Projets récents",
  "tabs": {
    "professional": "Projets professionnels",
    "personal": "Projets personnels"
  },
  "additional_details": "Détails du projet",
  "skills_used": "Technos utilisées",
  "project1": {
    "title": "Mise en place d'un environnement de développement",
    "company": "Startup média",
    "description": "Portage d'un environnement de dev vers Docker pour standardiser les configurations",
    "task1": "Conception de Dockerfiles et de configurations Docker Compose",
    "task2": "Intégration des différents services et dépendances dans des conteneurs isolés",
    "task3": "Intégration des repos Git existants dans le nouvel environnement Docker"
  },
  "project2": {
    "title": "Intégration d'une API de paiement",
    "company": "Startup média",
    "description": "Ajout d'une API de paiement à une plateforme multimédia pour permettre la monétisation des contenus",
    "task1": "Conception d'une API modulaire pour gérer les transactions et les abonnements",
    "task2": "Architecture de la base de données pour ajouter la monétisation sur le contenu existant"
  },
  "project3": {
    "title": "Automatisation d’un système de réservation de paniers",
    "company": "Projet client local",
    "description": "Mise en place d’un site statique avec paiements Stripe, base de données et emailing automatisé",
    "task1": "Création du site en HTML/CSS/JS pour présenter les offres",
    "task2": "Automatisation des flux de commande avec mails et gestion logistique",
    "task3": "Connexion sécurisée entre formulaire, paiements et gestion logistique",
    "detailedDescription": "Projet conçu pour une entreprise de paniers de légumes, avec un objectif de déploiement rapide et de maintenance minimale. J’ai développé une architecture légère mais robuste autour d’un site statique, de liens Stripe pour les paiements, et de scénarios Make pour relier les paiements, la base de données logistique et la communication client. Résultat : un système fluide, sans saisie manuelle, fonctionnel dès les premiers jours.",
    "technos": "Stripe, Make, Google Sheets, HTML, JavaScript"
  },
  "project4": {
    "title": "Infrastructure personnelle",
    "company": "",
    "description": "Mise en place d'une infrastructure auto-hébergée pour divers services web",
    "task1": "Déploiement d'un gitea pour l'hébergement de dépôts Git",
    "task2": "Déploiement d'une instance infisical pour la gestion des secrets"
  },
  "customs": {
    "docker": {
      "title": "Environnement de développement Docker LAMP",
      "subtitle": "Standardisation et conteneurisation de l'environnement de développement",
      "overview": {
        "title": "Vue d'ensemble",
        "description": "Mise en place d'un environnement de développement complet basé sur Docker pour standardiser les configurations de développement au sein de l'équipe.",
        "problem": "L'entreprise utilisait une stack LAMP en production, ce qui rendait le setup de développement hyper dépendant du poste de chaque développeur. L'objectif était de créer un environnement reproductible et facile à déployer."
      },
      "architecture": {
        "title": "Architecture Technique",
        "services": {
          "title": "Services Docker",
          "php": "Serveur web avec compilation native des modules PHP",
          "mysql": "Base de données avec scripts d'initialisation automatique",
          "phpmyadmin": "Interface de gestion de base de données"
        },
        "features": {
          "title": "Fonctionnalités",
          "dependencies": "Installation et compilation automatique de toutes les dépendances PHP au build",
          "repos": "Récupération automatique des sources depuis Bitbucket de l'entreprise",
          "devcontainer": "Intégration VSCode Dev Containers pour une meilleure expérience développeur",
          "apache": "Configuration Apache éditable (modules, virtualhost, etc.)",
          "vhosts": "Configuration automatique des VirtualHosts pour accès direct aux services",
          "php_config": "Possibilité de changer de configuration PHP selon l'environnement (dev/prod)"
        },
        "devcontainer": {
          "title": "Intégration VSCode",
          "description": "Utilisation des Dev Containers VSCode pour permettre un travail plus simple avec les workspaces.",
          "debugging": "Debugger XDebug intégré fonctionnel avec breakpoints",
          "composer": "Accès terminal au conteneur pour commandes Composer",
          "terminal": "Attach terminal directement dans le conteneur via Remote Explorer"
        }
      },
      "challenges": {
        "title": "Défis Techniques Relevés",
        "modules": {
          "title": "Compilation native des modules PHP",
          "description": "Compilation à partir des sources de tous les modules PHP nécessaires pour PHP 8.2, avec gestion des dépendances système complexes. Le changement de version PHP peut nécessiter des ajustements dans les fichiers de configuration."
        },
        "standardization": {
          "title": "Standardisation multi-poste",
          "description": "Création d'un environnement complètement reproductible indépendant du système d'exploitation du développeur (Windows, macOS, Linux), éliminant les problèmes de configuration locaux."
        },
        "automation": {
          "title": "Automatisation complète du setup",
          "description": "Mise en place d'un processus d'installation en une commande (docker-compose up) incluant : build des images, installation des dépendances, initialisation des bases de données, configuration des VirtualHosts et clonage des repositories."
        }
      },
      "stack": {
        "title": "Stack Technologique",
        "core": {
          "title": "Stack principale"
        },
        "tools": {
          "title": "Outils"
        },
        "vscode": {
          "title": "Extensions VSCode"
        }
      },
      "results": {
        "title": "Résultats",
        "standardization": "Environnement de développement standardisé pour toute l'équipe",
        "onboarding": "Onboarding des nouveaux développeurs réduit à quelques minutes",
        "debugging": "Débogage facilité avec XDebug intégré et fonctionnel",
        "flexibility": "Configuration flexible (Apache, PHP, VirtualHosts) sans toucher au code",
        "productivity": "Gain de productivité majeur : plus de problèmes de \"ça marche sur ma machine\""
      },
      "tags": "Docker • Docker Compose • PHP 8.2 • Apache • MySQL • VSCode Dev Containers • XDebug • LAMP Stack"
    },
    "stripe": {
      "title": "Intégration Stripe & Design d'API de paiement",
      "subtitle": "Système de monétisation de contenu pour plateforme vidéo",
      "overview": {
        "title": "Vue d'ensemble",
        "description": "Développement d'un système de paiement intégré pour une plateforme de diffusion de contenus vidéo premium. L'objectif était de permettre l'achat ou l'accès à des vidéos à la demande, avec une architecture suffisamment souple pour accueillir d'autres fournisseurs que Stripe selon les besoins des clients finaux."
      },
      "architecture": {
        "title": "Architecture Technique",
        "frontend": {
          "title": "Frontend",
          "tech": "Technologies",
          "features": "Fonctionnalités",
          "features_list": "Gestion des redirections vers les pages de paiement, récupération de statuts, optimisation des requêtes et design d'un affichage spécifique pour le contenu payant"
        },
        "backend": {
          "title": "Backend",
          "integration": "Intégration de l'API Stripe : création de sessions de paiement, écoute des webhooks (success, failure, refund)",
          "abstraction": "Conception d'une couche d'abstraction au-dessus de Stripe pour standardiser les opérations de paiement (initiation, statut, remboursement)",
          "extensibility": "Préparation à l'ajout de moyens de paiement alternatifs sans impacter le code client",
          "logging": "Journalisation complète des flux de paiement pour audit et réconciliation"
        },
        "security": {
          "title": "Sécurité & Robustesse",
          "webhooks": "Utilisation de webhooks sécurisés avec vérification de signature Stripe",
          "idempotence": "Idempotence des opérations critiques (éviter les doublons lors des retries)",
          "reconciliation": "Stockage des statuts de paiement et logique de réconciliation périodique"
        }
      },
      "challenges": {
        "title": "Défis Techniques Relevés",
        "decoupling": {
          "title": "Conception d'une API de paiement découplée",
          "description": "Design d'une architecture permettant d'intégrer facilement d'autres fournisseurs de paiement que Stripe sans refonte majeure du code existant."
        },
        "errors": {
          "title": "Gestion des erreurs critiques",
          "description": "Implémentation de mécanismes robustes pour gérer les paiements abandonnés, utilisateurs déconnectés, retries de webhooks et autres cas limites."
        }
      },
      "stack": {
        "title": "Stack Technologique",
        "frontend": {
          "title": "Frontend"
        },
        "backend": {
          "title": "Backend"
        },
        "tools": {
          "title": "Outils",
          "abstraction": "Abstraction maison des opérations de paiement"
        }
      },
      "results": {
        "title": "Résultats",
        "operational": "Paiement Stripe opérationnel rapidement (avec test complet des cas d'usage)",
        "extensible": "API prête pour l'ajout de nouveaux moyens de paiement sans refonte",
        "stable": "Logique de paiement stable et testée en conditions réelles (avec utilisateurs finaux)"
      },
      "tags": "Stripe • PHP • MySQL • JavaScript • Webhooks • API Design • Payment Gateway"
    },
    "veggie": {
      "title": "Système de réservation de paniers de légumes",
      "subtitle": "Plateforme automatisée de gestion d'abonnements et de réservations avec paiement en ligne",
      "overview": {
        "title": "Vue d'ensemble",
        "description": "Développement d'un système complet de réservation et de gestion d'abonnements à des paniers de légumes hebdomadaires. Le projet devait être rapide à mettre en production, fiable et peu coûteux à maintenir, tout en garantissant la traçabilité des paiements et la fluidité logistique.",
        "evolution": "L'architecture a d'abord reposé sur un prototype low-code (Make, Google Sheets) pour valider les usages. Elle a ensuite évolué vers une solution backend personnalisée avec gestion par webhook, automatisation sécurisée des flux et intégration emailing."
      },
      "architecture": {
        "title": "Architecture Technique",
        "frontend": {
          "title": "Frontend",
          "hosting": "Hébergement",
          "tech": "Technologies",
          "features": "Fonctionnalités",
          "features_list": "Présentation des offres, FAQ, formulaire externe, et boutons de paiement Stripe"
        },
        "backend": {
          "title": "Backend & Automatisation",
          "webhooks": "Webhooks Stripe sécurisés : traitement des événements de paiement en temps réel",
          "pipeline": "Pipeline backend : réception du paiement → enrichissement des données utilisateur → ajout en base de données → déclenchement d'emails",
          "emailing": "Intégration emailing (Brevo/MailerLite) avec segmentation automatique par cohorte",
          "logistics": "Génération de vues logistiques hebdomadaires pour l'équipe livraison (export PDF ou table filtrée)"
        },
        "security": {
          "title": "Sécurité & Résilience",
          "payment": "Paiement 100% géré par Stripe (3D Secure, conformité PCI)",
          "access": "Accès restreint aux données sensibles, séparation claire des rôles (admin / équipe terrain)",
          "backup": "Backups automatisés et journalisation des événements critiques"
        }
      },
      "challenges": {
        "title": "Défis Techniques Relevés",
        "iteration": {
          "title": "Itération rapide vers fiabilité",
          "description": "Validation initiale via Make et Google Sheets, remplacée progressivement par une architecture plus robuste, capable de supporter la montée en charge et les cas limites (échecs de paiement, double soumission, etc.)"
        },
        "cohorts": {
          "title": "Gestion sans faille des cohortes",
          "description": "Système conçu pour suivre automatiquement les cycles d'abonnement (12 semaines), notifier les utilisateurs, et générer les bons fichiers de livraison à J‑1."
        }
      },
      "stack": {
        "title": "Stack Technologique",
        "frontend": {
          "title": "Frontend"
        },
        "backend": {
          "title": "Backend"
        },
        "tools": {
          "title": "Outils"
        }
      },
      "results": {
        "title": "Résultats",
        "deployment": "Mise en production en <10 jours",
        "reliability": "0 événement perdu depuis lancement",
        "scalability": "Système extensible (ajout de formules, segmentation, suivis personnalisés)",
        "maintenance": "Maintenance minimale pour l'équipe terrain",
        "cost": "Coût infra maîtrisé (<10€/mois hors emails)"
      },
      "tags": "Stripe • Node.js • Webhooks • Automation • Make • Cloudflare Pages • Brevo"
    },
    "infrastructure": {
      "title": "Infrastructure as Code (IaC) & DevOps",
      "description": "Mise en place d'une infrastructure cloud automatisée et scalable utilisant des outils modernes.",
      "task1": "Déploiement automatisé avec Terraform et Ansible.",
      "task2": "Surveillance et alertes avec Prometheus et Grafana.",
      "task3": "CI/CD avec GitHub/Gitea Actions pour des déploiements fluides et fiables.",
      "subtitle": "Conception et déploiement d'une infrastructure cloud complète en Infrastructure as Code",
        "overview": {
          "title": "Vue d'ensemble",
          "description": "Conception et déploiement d'une infrastructure cloud complète en Infrastructure as Code, hébergeant plusieurs services web sur des serveurs Hetzner Cloud. L'ensemble est provisionné automatiquement via Terraform et configuré avec Ansible pour garantir reproductibilité et maintenabilité."
        },
        "architecture": {
          "title": "Architecture Technique",
          "provisioning": {
            "title": "Provisioning & Configuration",
            "terraform": "Provisioning automatisé de 2 serveurs Ubuntu sur Hetzner Cloud (Allemagne, Finlande)",
            "ansible": "Configuration système, déploiement des applications et gestion des secrets",
            "dns": "Gestion automatisée des enregistrements DNS via API"
          },
          "services": {
            "title": "Services Déployés",
            "website": {
              "name": "Site web statique",
              "description": "Portfolio et présentation"
            },
            "gitea": {
              "name": "Gitea",
              "description": "Plateforme Git auto-hébergée avec MySQL"
            },
            "infisical": {
              "name": "Infisical",
              "description": "Gestionnaire de secrets avec PostgreSQL + Redis"
            }
          },
          "security": {
            "title": "Sécurité & Performance",
            "ssl": "SSL/TLS automatisé via Let's Encrypt (Certbot)",
            "nginx": "Reverse proxy Nginx avec configuration HTTPS uniquement",
            "firewall": "Firewall UFW + protection anti-bruteforce Fail2ban",
            "docker": "Conteneurisation Docker Compose pour isolation des services"
          }
        },
        "challenges": {
          "title": "Défis Techniques Relevés",
          "secrets": {
            "title": "Gestion des Secrets",
            "description": "Mise en place d'un système de gestion des variables d'environnement avec scripts de validation pour éviter les valeurs par défaut en production. Les secrets sont chargés depuis des fichiers locaux avant déploiement via Ansible."
          },
          "multiservice": {
            "title": "Architecture Multi-Services",
            "description": "Configuration de Nginx comme reverse proxy pour router intelligemment le trafic HTTPS vers plusieurs applications conteneurisées sur un même serveur, avec gestion des certificats SSL distincts par sous-domaine."
          },
          "automation": {
            "title": "Automatisation Complète",
            "description": "Développement de scripts Bash pour automatiser le workflow de déploiement : validation des variables, chargement des secrets, exécution des playbooks Ansible avec gestion d'erreurs."
          }
        },
        "stack": {
          "title": "Stack Technologique",
          "infrastructure": {
            "title": "Infrastructure",
            "cloud": "Cloud Provider: Hetzner Cloud",
            "os": "OS: Ubuntu 24.04 LTS",
            "iac": "IaC: Terraform 1.10, Ansible 2.19",
            "containers": "Conteneurisation: Docker, Docker Compose"
          },
          "applications": {
            "title": "Applications",
            "webserver": "Web Server: Nginx",
            "gitea": "Git Hosting: Gitea (MySQL 8)",
            "infisical": "Secret Management: Infisical (PostgreSQL 14, Redis 7)",
            "ssl": "SSL/TLS: Let's Encrypt, Certbot"
          },
          "security": {
            "title": "Sécurité",
            "firewall": "Firewall: UFW",
            "ids": "IDS/IPS: Fail2ban",
            "smtp": "SMTP: Brevo (notifications sécurisées)"
          }
        },
        "results": {
          "title": "Résultats",
          "automation": "Infrastructure entièrement automatisée : déploiement reproductible en une seule commande",
          "availability": "Haute disponibilité : services conteneurisés avec restart automatique",
          "security": "Sécurité renforcée : HTTPS obligatoire, firewall, anti-bruteforce",
          "maintainability": "Maintenabilité : code versionné, configuration as code, secrets externalisés",
          "cost": "Coût optimisé : ~15€/mois pour 3 services en production"
        },
        "links": {
          "title": "Liens",
          "website": "Site web",
          "gitea": "Instance Gitea",
          "infisical": "Gestionnaire de secrets",
          "source": "Code source sur GitHub",
          "alert": "Vous y êtes déjà !"
        }
    }
  }
}
