260fcfc4f8
Move the "Publier le package" section from DEV.md to a new PUBLICATION.md file, and add references to ARCHITECTURE.md and PUBLICATION.md in the main DEV.md index. This reduces the size of DEV.md and improves discoverability by grouping related content into focused documents.
34 lines
2.0 KiB
Markdown
34 lines
2.0 KiB
Markdown
# Architecture partagée
|
|
|
|
Ces modules existent pour éviter la duplication. Avant d'écrire du code utilitaire, vérifier s'il est déjà couvert ici.
|
|
|
|
### Utilitaires serveur
|
|
|
|
| Besoin | Module |
|
|
|--------|--------|
|
|
| Logs serveur | `src/shared/lib/logger.js` |
|
|
| Manipulation de dates | `src/shared/lib/dates.js` |
|
|
| Configuration de l'app | `src/shared/lib/appConfig.js` |
|
|
| Formatage de devises | `src/shared/utils/currency.js` |
|
|
|
|
### Composants et icônes
|
|
|
|
**Icônes** — Toutes les icônes sont centralisées dans `src/shared/Icons.js`. Ne pas créer d'icône directement dans un composant. Si une icône manque, l'ajouter dans `Icons.js`.
|
|
|
|
**Composants** — Utiliser `src/shared/components` en priorité. Si un besoin est réutilisable à plusieurs endroits et que le composant n'existe pas encore, le créer dans `src/shared/components` plutôt que dans le module.
|
|
|
|
### Modules core
|
|
|
|
**Notifications client** — Utiliser `src/core/toast` pour toutes les notifications côté client.
|
|
|
|
**Stockage** — Utiliser `src/core/storage`. Toujours supprimer l'ancien fichier avant d'en écrire un nouveau à la même place. Éviter les fichiers fantômes (présents dans le stockage mais plus référencés dans l'app).
|
|
|
|
**Paiements** — Utiliser `src/core/payments` pour tout ce qui touche au système de paiement.
|
|
|
|
**Courriel** — Utiliser `src/core/email` pour l'envoi d'emails. Les gabarits réutilisables à l'échelle de l'app vont dans `src/core/email/templates`. Les gabarits spécifiques à un module peuvent rester dans les fichiers du module.
|
|
|
|
**Base de données** — Utiliser `src/core/database` pour toutes les communications avec la BD. Toujours utiliser des requêtes paramétrées (voir la section Sécurité ci-dessus).
|
|
|
|
**Tâches planifiées** — Utiliser `src/core/cron` pour créer des tâches cron.
|
|
|
|
**API** — Utiliser `src/core/api` pour l'API admin et publique. Toujours définir l'API privée/admin en premier, puis exposer seulement ce qui doit l'être. Toujours vérifier l'authentification sur les routes qui l'exigent. |