# Technical Assumptions ## Repository Structure: Monorepo Projet organisé en **monorepo** : ``` / ├── src/ │ ├── routes/ # Pages et API routes (TanStack Start) │ ├── components/ # Composants React réutilisables │ ├── lib/ # Utilitaires, clients API, helpers │ └── server/ # Server functions, services ├── prisma/ # Schéma et migrations Prisma ├── docker/ # Configuration Docker └── docs/ # Documentation projet ``` ## Service Architecture: Monolith Full-Stack **Architecture monolithique** avec TanStack Start : - **Frontend** : React avec TanStack Router (file-based routing) - **Backend** : Server functions intégrées à TanStack Start - **Base de données** : PostgreSQL avec Prisma ORM ## Testing Requirements: Unit + Integration | Type | Scope | Outils | |------|-------|--------| | **Unit** | Logique métier, validations, helpers | Vitest | | **Integration** | API routes, queries DB | Vitest + testcontainers | | **E2E** | Non prioritaire MVP | (Playwright en V2) | ## Additional Technical Assumptions and Requests **Stack technique :** - **Framework** : TanStack Start (React full-stack) - **ORM** : Prisma (type-safe, migrations robustes, écosystème mature) - **UI Components** : shadcn/ui (composants copiés, personnalisables) - **Tables** : TanStack Table (tri, filtres, pagination) - **Database** : PostgreSQL 16+ - **Container** : Docker + Docker Compose **Infrastructure :** - **Reverse proxy** : Traefik (existant sur le serveur) - **CI/CD** : GitLab personnel (pipelines de build et déploiement) - **Hébergement** : Serveur dédié personnel **Intégration externe :** - **DofusDB API** : Client HTTP pour récupérer les données de référence - Sync manuelle ou cron pour mise à jour des données de jeu **Conventions de code :** - TypeScript strict mode - ESLint + Prettier - Conventional commits (feat:, fix:, chore:, etc.) **Déploiement :** - Docker Compose (app + postgres) - Pipeline GitLab CI pour build et push des images - Labels Traefik pour routing automatique ---