# 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 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) ├── 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 ├── 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 ├── custom.css # Styles personnalisés ├── about.md # Page "À propos" du radar ├── package.json # Dépendances Node.js ├── Dockerfile # Dockerfile alternatif (racine) ├── docker-compose.yml # Docker Compose alternatif (racine) ├── 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. ## Build et déploiement Le projet utilise deux commandes principales : - `npm run build` : Génère les fichiers statiques - `npm run serve` : Lance un serveur de développement Le déploiement se fait via Docker avec plusieurs configurations selon l'environnement. Voir [deploiement.md](./deploiement.md) pour plus de détails.