Files
TechradarDev/docs/app/architecture.md
syoul 055e4a9281 refactor: réorganiser la documentation en séparant app et data
- Création de docs/app/ pour la documentation de l'application
- Création de docs/data/ pour les données utilisées par l'application
- Déplacement de la documentation technique vers docs/app/
- Déplacement des données métier vers docs/data/
- Mise à jour de tous les liens et références dans les fichiers
- Mise à jour des scripts (extract-technologies.js, analyze-business-metrics.js)
- Mise à jour des fichiers JavaScript (custom.js, strategie-link.js)
- Création de README.md dans docs/, docs/app/ et docs/data/
- Mise à jour du Readme.md principal avec les nouveaux chemins
2025-12-03 14:35:36 +01:00

6.2 KiB

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 :

---
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 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 pour plus de détails.