Spécifications Techniques de Besoin (STB)
STB
Introduction
Ce document détaille les exigences fonctionnelles et les contraintes techniques du système EDPI-Docs. Il définit les capacités de l’infrastructure à répondre aux besoins d’édition mobile, de résilience hors-ligne et de diffusion haute performance.
1. Spécifications Fonctionnelles Détaillées (SFD)
1.1 Cas d’Utilisation (Use Cases)
- UC-01 : Consultation Multi-format : L’utilisateur accède au contenu en HTML5 via navigateur ou télécharge une version PDF générée dynamiquement.
- UC-02 : Navigation Sémantique : Recherche plein texte intégrée et navigation hiérarchique structurée selon le cycle SDLC.
- UC-03 : Visualisation Technique : Rendu natif des équations \(LaTeX\) et des diagrammes de flux Mermaid.js.
- UC-04 : Édition Mobile Agnostique : Un contributeur doit pouvoir éditer, valider et prévisualiser une note depuis un smartphone (Android/iOS) ou un PC.
1.2 Règles de Gestion (Business Rules)
- RG-01 (Conformité YAML) : Tout document doit posséder un en-tête YAML valide conforme au standard
EDPI-STD. - RG-02 (Parité de Rendu) : La version PDF (via Typst) doit être strictement identique au contenu HTML au moment du build.
- RG-03 (Validation Source) : Aucun document ne peut être fusionné sur la branche
mains’il présente une erreur détectée parmarkdownlint.
2. Spécifications Techniques Détaillées (STD)
2.1 Architecture de l’Infrastructure (IaaS)
Le système repose sur un pipeline Docs-as-Code entièrement automatisé:
- Source : Markdown étendu Quarto (
.qmd). - Moteur de Build : Quarto CLI v1.3+ exploitant Typst pour une compilation éclair.
- Validation : Markdownlint pour la cohérence structurelle.
- CI/CD : GitHub Actions pour l’automatisation du build et Cloudflare Pages pour la distribution mondiale via Edge Computing.
2.2 Environnement Cible
| Composant | Spécification | Rôle |
|---|---|---|
| Hébergement | Cloudflare Pages | Distribution résiliente et rapide. |
| Runtime Local | Windows / Linux / macOS | Environnement de rédaction native. |
| Édition Mobile | Obsidian + Zettel Notes | Capturation du savoir en déplacement. |
| Pipeline | GitHub Actions | Orchestration des tests et déploiements. |
3. Exigences Non-Fonctionnelles (ENF)
3.1 Performance et Sûreté
- ENF-01 (Rapidité d’Affichage) : Le “First Contentful Paint” (FCP) doit être inférieur à 0.8s.
- ENF-02 (Légèreté locale) : L’empreinte de la stack locale (Quarto + Typst) ne doit pas excéder 500 Mo.
- ENF-03 (Disponibilité) : L’infrastructure doit garantir un accès au contenu même en cas d’instabilité réseau via le cache navigateur (PWA).
3.2 Sécurité (Security by Design)
- ENF-04 (Intégrité) : Protection stricte de la branche
main; passage obligatoire par une Pull Request validée surdevelop. - ENF-05 (Secrets) : Interdiction d’inclure des jetons d’accès en clair ; usage exclusif de
GitHub Secrets.
4. Matrice de Traçabilité des Exigences
| ID Exigence | Description | Priorité | Statut |
|---|---|---|---|
| REQ-01 | Support natif de Typst pour les rapports PDF | Haute | Validé |
| REQ-02 | Déploiement automatique lors d’un Push sur develop |
Haute | Validé |
| REQ-03 | Synchronisation bidirectionnelle PC/Mobile via Git | Haute | Validé |
| REQ-04 | Indexation sémantique pour la recherche globale | Moyenne | Défini |
| REQ-05 | Le système doit générer un PDF via Typst. | Moyenne | Defini |
| REQ-06 | Le pipeline doit valider la structure YAML avant toute publication. Si un champ obligatoire (Code, Projet) manque, le build doit échouer | Haute | Validé |
Dernière mise à jour : r Sys.Date()