63 lines
2.1 KiB
Markdown
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
|
|
|
|
---
|