# Architecture du projet ## Vue d'ensemble Le projet AJR Technology Radar est une application web statique construite avec le framework `aoe_technology_radar`. L'application génère un site web interactif à partir de fichiers Markdown organisés par dates de release. ## Structure des répertoires ``` TechradarDev/ ├── radar/ # Contenu du radar principal organisé par dates │ ├── 2017-03-01/ # Release de mars 2017 │ ├── 2018-03-01/ # Release de mars 2018 │ ├── 2019-11-01/ # Release de novembre 2019 │ ├── 2021-07-01/ # Release de juillet 2021 │ ├── 2022-03-28/ # Release de mars 2022 │ ├── 2023-02-23/ # Release de février 2023 │ ├── 2023-11-01/ # Release de novembre 2023 │ ├── 2024-07-10/ # Release de juillet 2024 │ └── 2025-04-10/ # Release d'avril 2025 (actuelle) ├── radar-business/ # Contenu du radar business │ ├── 2025-01-15/ # Release business de janvier 2025 │ ├── config-business.json # Configuration du radar business │ ├── FORMAT-BLIP.md # Format des blips business │ └── README.md # Documentation du radar business ├── public/ # Fichiers statiques publics │ ├── images/ # Images utilisées dans les descriptions │ ├── logo.svg # Logo AJR │ ├── favicon.ico # Icône du site │ ├── robots.txt # Configuration pour les robots │ └── strategie-script.js # Script pour les pages de stratégie dynamiques ├── scripts/ # Scripts utilitaires │ ├── serve-business.sh # Script pour servir le radar business en local │ ├── start-business.sh # Script de démarrage pour Docker │ ├── extract-technologies.js # Extraction des technologies depuis la doc │ └── analyze-business-metrics.js # Analyse des métriques business ├── docker/ # Configuration Docker pour le déploiement │ ├── Dockerfile # Image Docker de production │ ├── docker-compose.yml # Configuration Docker Compose │ ├── docker-compose.labels.yml # Labels pour le déploiement │ └── docker-compose.local.yml # Configuration locale ├── docs/ # Documentation du projet ├── config.json # Configuration principale du radar ├── config.json.backup # Backup de la config (généré par serve-business.sh) ├── custom.css # Styles personnalisés ├── about.md # Page "À propos" du radar ├── package.json # Dépendances Node.js ├── Dockerfile # Dockerfile alternatif (racine) ├── Dockerfile.business # Dockerfile pour le radar business ├── docker-compose.yml # Docker Compose alternatif (racine) ├── docker-compose.business.yml # Docker Compose pour le radar business ├── docker-entrypoint.sh # Script d'entrée Docker └── .drone.yml # Configuration CI/CD Drone ``` ## Format des fichiers radar Chaque technologie (blip) est définie dans un fichier Markdown avec un en-tête YAML front matter : ```markdown --- title: "Nom de la technologie" ring: adopt|trial|assess|hold quadrant: languages-and-frameworks|methods-and-patterns|platforms-and-aoe-services|tools tags: [tag1, tag2] --- Description de la technologie en Markdown. ``` ### Métadonnées - **title** : Nom de la technologie - **ring** : Anneau du radar (adopt, trial, assess, hold) - **quadrant** : Quadrant du radar - **tags** : Tags pour le filtrage (optionnel) ## Flux de traitement 1. **Lecture des fichiers** : Le framework lit tous les fichiers `.md` dans les dossiers `radar/` 2. **Parsing** : Extraction des métadonnées YAML et du contenu Markdown 3. **Génération** : Création d'une application React statique 4. **Build** : Compilation en fichiers HTML/CSS/JS statiques 5. **Serve** : Service via un serveur web statique ## Dépendances principales - **aoe_technology_radar** : Framework principal (dépendance GitHub) - **Node.js** : Runtime JavaScript (version 20+) - **npm** : Gestionnaire de paquets ## Configuration La configuration principale se trouve dans `config.json` et définit : - Les quadrants et leurs descriptions - Les anneaux (rings) et leurs significations - Les couleurs et le style - Les options d'affichage - Les métadonnées du site Voir [configuration.md](./configuration.md) pour plus de détails. ## Radar Technologique Laplank Le Radar Technologique Laplank est un tech radar classique avec : - **Configuration spécifique** : `radar-business/config-business.json` - **Quadrants business** : Technologies Différenciantes, Commodité, Risque, Émergentes - **Anneaux classiques** : Hold, Assess, Trial, Adopt - **Historique par release** : Organisation des technologies par date (radar-business/YYYY-MM-DD/) - **Pages de stratégie** : Pages dynamiques générées via `public/strategie-script.js` - **Protection par mot de passe** : Authentification client-side (mot de passe : `laplank-radar`) - **Base path** : `/` (racine, pas de sous-chemin) ### Scripts de stratégie Le fichier `public/strategie-script.js` contient : - La logique de protection par mot de passe - La conversion Markdown vers HTML pour les pages de stratégie - La gestion de la navigation dans le header - Le contenu des trois pages de stratégie : - Stratégie d'Évolution Technique - Stratégie Business - Opportunités DataViz Expert ## Build et déploiement Le projet utilise plusieurs commandes : - `npm run build` : Génère les fichiers statiques du radar principal - `npm run serve` : Lance un serveur de développement du radar principal (port 3000) - `npm run serve-business` : Lance un serveur de développement du radar business (port 3006) Le déploiement se fait via Docker avec plusieurs configurations selon l'environnement : - **Radar principal** : Via `docker/Dockerfile` ou `Dockerfile` - **Radar Technologique Laplank** : Via `Dockerfile.business` et `docker-compose.business.yml` (Portainer) Voir [deploiement.md](./deploiement.md) pour plus de détails.