- update tagline in README.md and docs to reflect multi-purpose scope - rephrase project description in PROJECT.md to position zen as an extensible admin platform - remove detailed core documentation sections from PROJECT.md - fix typo "palteforme" in directory structure comment - replace cms references with platform wording in DEV.md
2.1 KiB
ZEN — Plan du projet
Une plateforme multi-usage construite sur l'essentiel, rien de plus, rien de moins.
ZEN est une plateforme admin Next.js qui sert de base à tout type d'application : site vitrine, système de facturation, espace cloud, boutique en ligne, ou n'importe quoi d'autre. L'admin est extensible, on y greffe ce qu'on veut, sans modifier le core.
Elle s'installe automatiquement dans n'importe quel projet Next.js via :
npx @zen/start
Le package principal est @zen/core. Il fournit toute l'infrastructure fondamentale : authentification, base de données, stockage, courriels, paiements, PDF, tâches planifiées, notifications. Chaque fonctionnalité est indépendante — les cores ne se connaissent pas entre eux. Le reste de la plateforme s'appuie sur chacun d'eux sans les coupler.
Principes directeurs
Core purity — Chaque core contient uniquement du code propre à son domaine. Aucune logique métier, aucune dépendance vers un autre core.
Minimal by default — Pas de fonctionnalité superflue. Si ce n'est pas nécessaire, ça n'existe pas.
Sécuritaire par défaut — Requêtes paramétrées, protection CSRF, limitation de débit, validation en entrée, erreurs opaques vers le client.
Performant — Connexions en pool, cache HTTP, génération différée des services.
Structure du projet
src/
core/ # Infrastructure fondamentale — la base de tout
features/ # Fonctionnalités de la palteforme utilisant les cores
shared/ # Utilitaires, composants et styles partagés
Résumé des règles absolues
| Domaine | Règle |
|---|---|
| API | Toutes les routes HTTP passent par core/api. Aucune autre route API. |
| Base de données | Tout accès DB passe par core/database. Jamais de requêtes directes. |
| Courriels | Tout envoi de courriel passe par core/email. |
| Cron | Toutes les tâches planifiées s'enregistrent dans core/cron. |
| Stockage | Tout accès fichier passe par core/storage. |
| Notifications | Un seul système de toast dans toute l'app : core/toast. |
| Authentification | Toute auth de site passe par features/auth. |