Files
dofus-manager/docs/prd/technical-assumptions.md
2026-01-19 08:52:38 +01:00

63 lines
2.1 KiB
Markdown

# 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
---