Files
TechradarDev/docs/app/developpement.md
syoul 9d8ae3d32a refactor: projet stand-alone sans dépendance aoe_technology_radar
- 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>
2026-02-25 18:11:40 +01:00

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
![Description](images/nom-image.png)
```
## 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