99 lines
3.9 KiB
Markdown
99 lines
3.9 KiB
Markdown
# 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.
|
|
|