- Intégration du code source du framework dans radar-app/ (vendoring) - Suppression de la dépendance npm aoe_technology_radar - Création de scripts build-radar.js et serve-radar.js pour remplacer le CLI techradar - Adaptation de tous les scripts et Docker pour utiliser radar-app/ au lieu de .techradar - Refactorisation complète de Dockerfile.business - Mise à jour de la documentation (architecture, déploiement, développement) - Mise à jour de .gitignore pour ignorer les artefacts de build de radar-app/ - Ajout de postcss dans les dépendances Docker pour le build Next.js Le projet est maintenant complètement indépendant du package externe. Co-authored-by: Cursor <cursoragent@cursor.com>
374 lines
9.1 KiB
Markdown
374 lines
9.1 KiB
Markdown
# Guide de développement
|
|
|
|
## Prérequis
|
|
|
|
- **Node.js** : Version 20 ou supérieure
|
|
- **npm** : Gestionnaire de paquets Node.js
|
|
- **Git** : Pour cloner et gérer le dépôt
|
|
- **Python 3** : Pour les scripts de modification (optionnel, utilisé dans Docker)
|
|
|
|
## Installation
|
|
|
|
### Cloner le dépôt
|
|
|
|
```bash
|
|
git clone https://git.open.us.org/AJR/TechradarDev.git
|
|
cd TechradarDev
|
|
```
|
|
|
|
### Installer les dépendances
|
|
|
|
```bash
|
|
npm install
|
|
```
|
|
|
|
Cette commande installe les dépendances racine (pour les scripts utilitaires). Le framework Next.js est déjà présent dans `radar-app/` (code vendu dans le repo).
|
|
|
|
## Développement local
|
|
|
|
### Démarrer le serveur de développement (Radar Principal)
|
|
|
|
```bash
|
|
npm run serve
|
|
```
|
|
|
|
Le serveur démarre sur http://localhost:3000/techradar
|
|
|
|
### Démarrer le serveur de développement (Radar Business)
|
|
|
|
```bash
|
|
npm run serve-business
|
|
```
|
|
|
|
Le serveur démarre sur http://localhost:3006
|
|
|
|
**Note importante** : Le script `serve-business.sh` :
|
|
- Sauvegarde temporairement `config.json` et le dossier `radar/`
|
|
- Copie `radar-business/config-business.json` vers `config.json`
|
|
- Copie `radar-business/2025-01-15/` vers `radar/`
|
|
- Restaure la configuration originale à la sortie (Ctrl+C)
|
|
|
|
Le Radar Technologique Laplank est protégé par un mot de passe : `laplank-radar`
|
|
|
|
### Build de production
|
|
|
|
Pour générer les fichiers statiques :
|
|
|
|
```bash
|
|
npm run build
|
|
```
|
|
|
|
Les fichiers générés sont créés dans le répertoire `build/` (copiés depuis `radar-app/out/`).
|
|
|
|
## Structure des fichiers radar
|
|
|
|
### Créer un nouveau blip
|
|
|
|
1. Créer un nouveau fichier Markdown dans le dossier de release approprié :
|
|
```
|
|
radar-business/2025-01-15/nom-technologie.md
|
|
```
|
|
|
|
2. Utiliser le format suivant :
|
|
|
|
```markdown
|
|
---
|
|
title: "Nom de la technologie"
|
|
ring: adopt|trial|assess|hold
|
|
quadrant: technologies-differentiantes|technologies-commodite|technologies-risque|technologies-emergentes
|
|
tags: [tag1, tag2]
|
|
businessImpact: high|medium|low
|
|
costToReplace: 0
|
|
revenueImpact: indirect
|
|
riskLevel: medium
|
|
competencyLevel: beginner
|
|
maintenanceCost: 0
|
|
differentiation: high
|
|
teamCoverage: 1
|
|
skillGap: high
|
|
---
|
|
|
|
Description de la technologie en Markdown.
|
|
|
|
## Impact Business
|
|
|
|
Description de l'impact sur le business.
|
|
|
|
## Coûts
|
|
|
|
- Coût de remplacement : 0€
|
|
- Coût de maintenance annuel : 0€
|
|
|
|
## Compétences
|
|
|
|
- Nombre de personnes maîtrisant : 1
|
|
- Membres de l'équipe : pseudo
|
|
- Niveau moyen : beginner
|
|
- Risque de compétence manquante : high
|
|
|
|
## Recommandations
|
|
|
|
Recommandations stratégiques pour cette technologie.
|
|
```
|
|
|
|
### Format des métadonnées
|
|
|
|
- **title** (obligatoire) : Nom de la technologie
|
|
- **ring** (obligatoire) : `adopt`, `trial`, `assess`, ou `hold` (voir [configuration.md](./configuration.md))
|
|
- **quadrant** (obligatoire) : Un des quatre quadrants définis dans `radar-business/config-business.json`
|
|
- **tags** (optionnel) : Tableau de tags pour le filtrage
|
|
- **Métadonnées business** : Voir `radar-business/FORMAT-BLIP.md` pour la liste complète
|
|
|
|
**Important** : Tous les blips doivent utiliser les rings standards (adopt, trial, assess, hold). Les anciens rings (core, strategic, support) ne sont plus utilisés.
|
|
|
|
### Exemple complet
|
|
|
|
```markdown
|
|
---
|
|
title: "Docker"
|
|
ring: adopt
|
|
quadrant: technologies-commodite
|
|
tags: [devops, ci/cd, infrastructure]
|
|
businessImpact: medium
|
|
costToReplace: 0
|
|
revenueImpact: indirect
|
|
riskLevel: low
|
|
competencyLevel: intermediate
|
|
maintenanceCost: 5000
|
|
differentiation: low
|
|
teamCoverage: 3
|
|
skillGap: low
|
|
---
|
|
|
|
Docker est une plateforme de conteneurisation qui permet de packager des applications avec leurs dépendances.
|
|
|
|
## Impact Business
|
|
|
|
Technologie essentielle pour le déploiement et la gestion des environnements.
|
|
|
|
## Coûts
|
|
|
|
- Coût de remplacement : 0€ (pas de remplacement prévu)
|
|
- Coût de maintenance annuel : 5 000€ (licences, support)
|
|
|
|
## Compétences
|
|
|
|
- Nombre de personnes maîtrisant : 3
|
|
- Membres de l'équipe : pseudo1, pseudo2, pseudo3
|
|
- Niveau moyen : intermediate
|
|
- Risque de compétence manquante : low
|
|
|
|
## Recommandations
|
|
|
|
Continuer à utiliser Docker pour tous les nouveaux projets. Standardiser les pratiques de conteneurisation.
|
|
```
|
|
|
|
## Modifier un blip existant
|
|
|
|
1. Localiser le fichier dans `radar-business/2025-01-15/`
|
|
2. Modifier le contenu Markdown
|
|
3. Si nécessaire, modifier les métadonnées (ring, quadrant, tags)
|
|
4. Tester localement avec `npm run serve-business`
|
|
|
|
## Créer une nouvelle release
|
|
|
|
1. Créer un nouveau dossier avec la date au format `YYYY-MM-DD` :
|
|
```bash
|
|
mkdir radar-business/2025-07-15
|
|
```
|
|
|
|
2. Copier les blips pertinents depuis la release précédente ou créer de nouveaux blips
|
|
|
|
3. Mettre à jour les blips existants si nécessaire (changement de ring, quadrant, description)
|
|
|
|
## Gestion des profils équipe
|
|
|
|
### Créer un profil équipe
|
|
|
|
1. Créer un fichier Markdown dans `docs/data/team/` :
|
|
```
|
|
docs/data/team/pseudo.md
|
|
```
|
|
|
|
2. Utiliser le format suivant :
|
|
|
|
```markdown
|
|
---
|
|
name: "pseudo"
|
|
fullName: "Nom complet"
|
|
role: "Rôle"
|
|
availability: 50
|
|
seniorityLevel: expert
|
|
yearsExperience: 8
|
|
joinDate: "2016-01"
|
|
interests: ["Mobile", "Infrastructure"]
|
|
skills:
|
|
- name: "Flutter"
|
|
level: expert
|
|
years: 4
|
|
lastUsed: "2024-12"
|
|
- name: "Python"
|
|
level: intermediate
|
|
years: 5
|
|
lastUsed: "2024-11"
|
|
softSkills:
|
|
- "Autonomie"
|
|
- "Pédagogie"
|
|
projects:
|
|
- "Projet1"
|
|
- "Projet2"
|
|
---
|
|
|
|
Description du membre de l'équipe.
|
|
```
|
|
|
|
### Générer les données de visualisation
|
|
|
|
Après avoir modifié les profils équipe ou les technologies, régénérer les données :
|
|
|
|
```bash
|
|
node scripts/generate-team-visualization-data.js
|
|
```
|
|
|
|
Ce script génère `public/team-visualization-data.json` utilisé par la page `/team`.
|
|
|
|
## Ajouter des images
|
|
|
|
1. Placer les images dans `public/images/`
|
|
2. Référencer dans les fichiers Markdown :
|
|
|
|
```markdown
|
|

|
|
```
|
|
|
|
## Personnalisation CSS
|
|
|
|
Le fichier `custom.css` permet d'ajouter des styles personnalisés. Les styles sont appliqués globalement à l'application.
|
|
|
|
## Scripts disponibles
|
|
|
|
### Extraction des technologies
|
|
|
|
```bash
|
|
npm run extract-tech
|
|
# ou
|
|
node scripts/extract-technologies.js
|
|
```
|
|
|
|
Extrait les technologies depuis `docs/data/technologies-duniter.md` et génère les blips dans `radar-business/2025-01-15/`.
|
|
|
|
### Analyse des métriques business
|
|
|
|
```bash
|
|
npm run analyze-business
|
|
# ou
|
|
node scripts/analyze-business-metrics.js
|
|
```
|
|
|
|
Analyse les métriques business et génère un rapport dans `docs/data/analyse-strategique.md`.
|
|
|
|
### Génération des données équipe
|
|
|
|
```bash
|
|
node scripts/generate-team-visualization-data.js
|
|
```
|
|
|
|
Génère `public/team-visualization-data.json` à partir des profils équipe et des technologies.
|
|
|
|
## Débogage
|
|
|
|
### Vérifier les erreurs de format
|
|
|
|
Le framework valide les fichiers Markdown. En cas d'erreur :
|
|
- Vérifier la syntaxe YAML front matter
|
|
- Vérifier que les valeurs de `ring` et `quadrant` correspondent aux valeurs définies dans `radar-business/config-business.json`
|
|
- Vérifier la syntaxe Markdown
|
|
|
|
### Problèmes courants
|
|
|
|
1. **Erreur de parsing YAML** : Vérifier les guillemets et l'indentation
|
|
2. **Blip non affiché** : Vérifier que le quadrant et le ring sont corrects (adopt, trial, assess, hold)
|
|
3. **Images non chargées** : Vérifier le chemin relatif depuis `public/`
|
|
4. **Rings invalides** : Vérifier que tous les blips utilisent les rings standards
|
|
|
|
### Vérifier les rings utilisés
|
|
|
|
```bash
|
|
cd radar-business/2025-01-15
|
|
grep -h "^ring:" *.md | sort | uniq -c
|
|
```
|
|
|
|
Doit retourner uniquement : adopt, trial, assess, hold
|
|
|
|
## Workflow recommandé
|
|
|
|
1. Créer une branche Git pour vos modifications
|
|
2. Ajouter/modifier les fichiers radar dans `radar-business/2025-01-15/`
|
|
3. Modifier les profils équipe dans `docs/data/team/` si nécessaire
|
|
4. Régénérer les données équipe : `node scripts/generate-team-visualization-data.js`
|
|
5. Tester localement avec `npm run serve-business`
|
|
6. Vérifier l'affichage et le formatage
|
|
7. Commiter et pousser les changements
|
|
8. Créer une pull request si applicable
|
|
|
|
## Commandes utiles
|
|
|
|
```bash
|
|
# Installer les dépendances
|
|
npm install
|
|
|
|
# Démarrer le serveur de développement (business)
|
|
npm run serve-business
|
|
|
|
# Build de production
|
|
npm run build
|
|
|
|
# Extraire les technologies
|
|
npm run extract-tech
|
|
|
|
# Analyser les métriques
|
|
npm run analyze-business
|
|
|
|
# Générer les données équipe
|
|
node scripts/generate-team-visualization-data.js
|
|
|
|
# Vérifier les fichiers modifiés
|
|
git status
|
|
|
|
# Voir les différences
|
|
git diff
|
|
```
|
|
|
|
## Intégration continue
|
|
|
|
Le projet utilise Drone CI pour l'intégration continue. Voir `.drone.yml` pour la configuration.
|
|
|
|
Les builds automatiques :
|
|
- Construisent l'image Docker
|
|
- Déploient sur l'environnement de test
|
|
- Envoient des notifications Telegram
|
|
|
|
## Tests locaux avant déploiement
|
|
|
|
Avant de déployer, vérifier :
|
|
|
|
1. **Tous les blips utilisent les rings standards** :
|
|
```bash
|
|
cd radar-business/2025-01-15
|
|
grep -h "^ring:" *.md | sort | uniq
|
|
```
|
|
|
|
2. **Les données équipe sont à jour** :
|
|
```bash
|
|
node scripts/generate-team-visualization-data.js
|
|
```
|
|
|
|
3. **La page équipe fonctionne** :
|
|
- Démarrer `npm run serve-business`
|
|
- Accéder à http://localhost:3006/team
|
|
- Vérifier que les visualisations se chargent
|
|
|
|
4. **La navigation est correcte** :
|
|
- Vérifier qu'il n'y a qu'un seul lien "Équipe"
|
|
- Vérifier que tous les liens fonctionnent
|