Vue d'ensemble Documentation technique de la plateforme etouch - SaaS B2B pour la retouche photo professionnelle
etouch est une plateforme SaaS B2B conçue pour les studios photo professionnels afin de gérer leurs workflows de retouche. Elle connecte studios, clients et retoucheurs dans un processus structuré : review, selection, retouch, validation, delivery.
Propriete Valeur Type Turborepo Monorepo Langage TypeScript Node >= 20 Package Manager pnpm 10.4.1 Base de donnees PostgreSQL (Prisma ORM) Cache / Queues Redis (BullMQ)
Technologie Version Usage Next.js 15.5.7 Framework React avec App Router React 19.1.2 Librairie UI Tailwind CSS 4.1.9 Styling Radix UI Various Composants accessibles TanStack Query 5.90.3 State management serveur TanStack Table 8.21.3 Tables de donnees react-hook-form 7.65.0 Gestion de formulaires Framer Motion 12.23.24 Animations next-intl 4.3.12 Internationalisation
Technologie Version Usage Hono 4.7.6 Framework web GraphQL Yoga 5.12.0 Serveur GraphQL Prisma 6.17.1 ORM base de donnees BullMQ 5.42.0 Files d'attente Stripe 20.0.0 Paiements Resend 4.8.0 Emails transactionnels Pino 9.5.0 Logging Sharp 0.34.4 Traitement d'images
Technologie Version Usage better-auth 1.3.10-beta.6 Authentification Sentry 10.22.0 Suivi d'erreurs Zod 4.1.12 Validation de schemas
Technologie Usage Cloudflare R2 Stockage objets Cloudflare Images Optimisation d'images Redis Cache et queues Docker Conteneurisation
etouch/
├── apps/
│ ├── api/ # Hono + GraphQL backend
│ ├── web/ # Next.js 15 frontend
│ ├── docs/ # Documentation Fumadocs
│ └── mobile/ # Application mobile (planifiee)
├── packages/
│ ├── auth/ # Utilitaires d'authentification
│ ├── config/ # Configuration partagee
│ ├── db/ # Schema Prisma et client
│ ├── email/ # Templates email (React Email)
│ ├── eslint-config/ # Config ESLint partagee
│ ├── sdk/ # SDK GraphQL pour le web
│ ├── shared/ # Utilitaires partages
│ ├── typescript-config/ # Config TypeScript partagee
│ ├── ui/ # Composants UI partages
│ └── workers/ # Workers BullMQ
├── docs/ # Documentation markdown source
└── scripts/ # Scripts de build et maintenance
La plateforme supporte quatre types d'organisations :
PLATFORM -- Administrateurs systeme
STUDIO -- Studios photo (utilisateurs principaux)
CLIENT -- Clients des studios
RETOUCHER -- Retoucheurs professionnels
Les projets progressent a travers ces etats :
STUDIO_REVIEW -- Upload et revue initiale
CLIENT_REVIEW -- Selection client des photos
SELECTION_CONFIRMATION -- Confirmation de la selection
IN_RETOUCH -- Retouche en cours
CLIENT_VALIDATION -- Approbation client des retouches
DONE -- Projet termine
ARCHIVED -- Projet archive
Organization -- Entreprises utilisant la plateforme (studios, clients, retoucheurs)
User -- Utilisateurs individuels avec appartenances multi-organisations
Project -- Projets de retouche photo assignes a des clients
Asset -- Fichiers individuels (photos/videos) dans les projets
GuidelineFile -- Guidelines de retouche avec specifications
Invoice / Payment -- Facturation via integration Stripe
Service Usage Stripe Traitement des paiements, facturation Pennylane Integration comptable (import clients) FTP Servers Transfert de fichiers pour retoucheurs externes Cloudflare R2 Stockage objets Cloudflare Images Transformations d'images Resend Emails transactionnels
pnpm install
pnpm prisma:generate
pnpm dev
Composant Point d'entree Web App apps/web/app/layout.tsxAPI Server apps/api/src/index.tsSchema DB packages/db/prisma/schema.prismaSchema GraphQL apps/api/src/graphql/schema.graphql