L’interface utilisateur de Châtaigne est construite avec une architecture
moderne et scalable permettant de gérer efficacement les commandes, les
clients et l’administration des restaurants via une interface web intuitive.
Principes Architecturaux Fondamentaux
Feature-Based Architecture
Organisation modulaire par fonctionnalités métier plutôt que par types de
fichiers
Séparation des Responsabilités
Distinction claire entre vues, logique métier, services et état
État Hybride
TanStack Query pour l’état serveur, Zustand pour l’état client
1. Feature-Based Architecture
Notre architecture suit une approche feature-first qui organise le code par fonctionnalités métier. Cela nous permet de :Maintenir une autonomie complète de chaque feature
Faciliter le développement en équipe avec moins de conflits
Faciliter la maintenance et l’évolution du code
2. Organisation Structurelle
L’application est organisée en modules distincts avec des responsabilités claires :1
App Router (src/app/)
Gestion du routing Next.js uniquement - les pages exportent simplement les
vues des features
2
Features (src/features/)
Modules métier autonomes contenant toute la logique spécifique à un domaine
3
Shared (src/shared/)
Composants UI, hooks, stores, services et utilitaires partagés entre toutes
les features
3. Gestion d’État Hybride
Notre système sépare intelligemment l’état serveur de l’état client pour éviter les conflits et optimiser les performances :Stack Technique
Technologies Principales
Framework
Next.js 15 avec App Router
Language
TypeScript pour la type safety
Styling
État Serveur
TanStack Query pour le data fetching
État Client
Zustand pour l’état local
Validation
Zod pour les schémas runtime
Outils de Développement
Monitoring
Sentry pour le tracking d’erreurs
Dev Tools
TanStack Query DevTools
Principes de Design Clés
1
Modularité
• Architecture feature-based pour l’autonomie des modules
2
Prévisibilité
• Type safety complète avec TypeScript et Zod
3
Performance
• Cache intelligent et synchronisation automatique
4
Maintenabilité
• Séparation claire des responsabilités
Avantages de cette Architecture
Cette approche feature-based avec gestion d’état hybride nous permet de maintenir une interface utilisateur moderne et scalable :Autonomie des Features
Chaque module peut évoluer indépendamment sans impacter les autres
Performance Optimale
Cache intelligent et synchronisation automatique des données
Expérience Développeur
Structure prévisible et outils de debugging intégrés
Type Safety Complète
Réduction drastique des erreurs avec TypeScript et Zod