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
This commit is contained in:
138
docs/app/architecture.md
Normal file
138
docs/app/architecture.md
Normal file
@@ -0,0 +1,138 @@
|
||||
# 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.
|
||||
|
||||
Reference in New Issue
Block a user