> ## Documentation Index
> Fetch the complete documentation index at: https://docs.poihunter.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Présentation

> Architecture générale du monorepo Remora, système de trading automatisé

# Architecture du Monorepo Remora

Cette spécification couvre l'architecture générale du monorepo Remora, un système de trading automatisé basé sur l'analyse technique et l'intelligence artificielle.

## Vue d'ensemble du Projet

* Le projet Remora est un monorepo de trading automatisé
* Il utilise une architecture serverless moderne avec SST (Serverless Stack)
* Le système combine analyse technique, IA et exécution automatisée des ordres
* L'objectif est de gérer des positions avec un système fiable pour des positions spot ou futures (swap)

## Structure du Monorepo

### Organisation des Packages

* Le package principal est "poihunter" basé sur SST
* Le projet utilise un système de workspaces npm avec "packages/\*" afin de gérer le backend
* Le projet utilise avec "frontend/\*" pour le développement des applications frontend

### Packages Principaux

* **packages/functions/** : Logique métier et API serverless
* **packages/core/** : Fonctionnalités communes et utilitaires
* **frontend/** : Applications utilisateur : app (dashboard et saas sont des templates fournies par NuxtUI Pro)

### Configuration du Projet

* Le projet utilise TypeScript 5.8+ avec Node.js 24+ (LTS)
* ESLint et Prettier sont configurés pour la qualité du code
* Prisma 6.6.0 est utilisé pour la gestion de base de données
* SST 2.44.0 gère l'infrastructure serverless

## Infrastructure Serverless

### Stack SST Principal

* Le stack principal est défini dans "stacks/Stack.ts"
* L'infrastructure est déployée sur AWS avec CDK
* Les fonctions Lambda utilisent Node.js 18.x
* Une couche Prisma personnalisée est créée pour les dépendances

### Composants Infrastructure

* **API Gateway** : Point d'entrée pour les API REST
* **Lambda Functions** : Logique métier serverless
* **Cron Jobs** : Tâches automatisées (nettoyage des bougies, rapports)
* **Secrets** : Gestion sécurisée des clés API (Binance, TAAPI, Pusher, Mailjet)

### Configuration des Secrets

* BINANCE\_API\_KEY et BINANCE\_API\_SECRET pour l'exchange
* TAAPI\_API\_KEY pour l'analyse technique
* PUSHER\_API\_KEY et PUSHER\_SECRET pour les notifications temps réel
* MAILJET\_API\_KEY et MAILJET\_SECRET\_KEY pour les emails

## Architecture des Données

### Base de Données

* MongoDB Atlas est utilisé comme base de données principale
* Prisma ORM gère la modélisation et les requêtes
* Le schéma est défini dans "prisma/schema.prisma"
* Chiffrement des champs sensibles avec PRISMA\_FIELD\_ENCRYPTION\_KEY

### Modèles de Données

* **Candles** : Données OHLCV des marchés
* **SymbolPairs** : Paires de trading supportées
* **SwingPositions** : Positions de trading avec gestion des ordres
* **ExchangePairs** : Configuration des exchanges par paire
* **Timeframes** : Intervalles de temps supportés

## Système de Trading

### Composants Principaux

* **SwingPositionService** : Gestion des positions de trading
* **ExchangePositionService** : Interface avec les exchanges
* **CandleService** : Collecte et traitement des données de marché
* **TrendService** : Analyse des tendances et signaux

### Workflow de Trading

* Réception des signaux TradingView via webhooks
* Analyse des conditions de marché (LONG/SHORT)
* Placement automatique des ordres BUY1 (market) et BUY2 (limit)
* Gestion dynamique des take-profits et stop-loss
* Calcul en temps réel du PnL et des métriques

## Frontend et Interface Utilisateur

### Applications Frontend

* **frontend/app/** : Application Nuxt.js 4 principale

### Vue d'ensemble de l'Application

* L'application frontend est construite avec Nuxt.js 4
* Elle utilise Vue 3.5.17 avec Composition API
* L'interface est optimisée pour le trading et la gestion des positions
* L'application est configurée en mode SPA (SSR désactivé)

### Architecture Technique

#### Framework et Technologies

* **Nuxt.js 4.0.0** : Framework Vue.js avec configuration moderne
* **Vue 3.5.17** : Framework de composants réactifs
* **TypeScript 5.8.3** : Typage statique pour la robustesse
* **Tailwind CSS 4.1.10** : Framework CSS utilitaire moderne
* **Nuxt UI Pro 3.2.0** : Composants d'interface premium

#### Configuration Nuxt

* **SSR désactivé** : Mode SPA pour les performances
* **Preset static** : Génération de site statique
* **Devtools activés** : Outils de développement intégrés
* **Compatibilité** : Date de compatibilité 2024-07-11

#### Modules Nuxt

* **@nuxt/ui-pro** : Composants d'interface utilisateur premium
* **@vueuse/nuxt** : Utilitaires Vue.js et hooks réactifs
* **@nuxtjs/color-mode** : Gestion des thèmes clair/sombre
* **@tanstack/vue-query** : Gestion d'état et cache des données

### Structure de l'Application

#### Organisation des Dossiers

* **components/** : Composants Vue réutilisables
* **pages/** : Pages de l'application avec routage automatique
* **layouts/** : Layouts et templates de base
* **composables/** : Logique métier réutilisable
* **types/** : Définitions TypeScript
* **utils/** : Fonctions utilitaires
* **assets/** : Ressources statiques (CSS, images, icônes)
* **server/** : API routes côté serveur
* **public/** : Fichiers publics accessibles directement

#### Composants Principaux

* **SwingPositionCard** : Affichage des positions de trading
* **Workflow** : Visualisation du workflow des positions
* **Charts** : Graphiques de prix et indicateurs techniques
* **Notifications** : Système d'alertes et notifications
* **UI Components** : Composants d'interface basiques

### Interface Utilisateur

#### Design System

* **Tailwind CSS** : Classes utilitaires pour le styling
* **Nuxt UI Pro** : Composants d'interface cohérents
* **Responsive Design** : Interface adaptée à tous les écrans
* **Thème sombre/clair** : Support des préférences utilisateur

#### Composants d'Interface

* **Cards** : Conteneurs pour les informations de trading
* **Buttons** : Actions utilisateur avec variantes
* **Forms** : Saisie et validation des données
* **Tables** : Affichage tabulaire des positions
* **Modals** : Fenêtres modales pour les détails

### Gestion des Données

#### État de l'Application

* **Vue Query** : Gestion du cache et des requêtes API
* **Composables** : Logique métier réactive
* **Props et Emits** : Communication entre composants
* **Reactive References** : État local des composants

#### Intégration API

* **TRPC** : Client TypeScript pour les API
* **Base URL** : [https://api.poihunter.com](https://api.poihunter.com)
* **Websockets** : Communication temps réel via Pusher
* **Error Handling** : Gestion robuste des erreurs

### Fonctionnalités Principales

#### Gestion des Positions

* **Affichage des positions** : Liste des positions actives
* **Détails des positions** : Informations complètes et métriques
* **Workflow visuel** : Représentation graphique des étapes
* **Métriques en temps réel** : PnL, gaps, pourcentages

#### Tableau de Bord

* **Vue d'ensemble** : Résumé des performances
* **Graphiques** : Visualisation des tendances
* **Alertes** : Notifications importantes
* **Statistiques** : Métriques de trading

#### Notifications

* **Pusher** : Notifications temps réel
* **Alertes** : Notifications importantes
* **Historique** : Log des événements
* **Préférences** : Configuration des notifications

### Composants Spécifiques

#### SwingPositionCard

* **Affichage des données** : Prix, montants, pourcentages
* **Statuts visuels** : Indicateurs de progression
* **Actions utilisateur** : Boutons et interactions
* **Modal de détails** : Informations complètes

#### Workflow Component

* **Étapes visuelles** : Représentation du processus
* **Indicateurs de statut** : Progression des étapes
* **Interactions** : Clics et navigation
* **Responsive** : Adaptation mobile et desktop

### Gestion des Erreurs

#### Validation des Données

* **Zod** : Validation des schémas
* **TypeScript** : Vérification des types
* **Error Boundaries** : Gestion des erreurs de composants
* **Fallbacks** : Affichage de secours en cas d'erreur

#### Gestion des États

* **Loading States** : Indicateurs de chargement
* **Error States** : Affichage des erreurs
* **Empty States** : États vides et guides
* **Success States** : Confirmations et succès

### Performance et Optimisation

#### Optimisations Vue

* **Lazy Loading** : Chargement différé des composants
* **Memoization** : Mise en cache des calculs coûteux
* **Virtual Scrolling** : Défilement optimisé pour les longues listes
* **Code Splitting** : Division du bundle par routes

#### Optimisations CSS

* **PurgeCSS** : Suppression des classes inutilisées
* **Critical CSS** : CSS critique inline
* **Image Optimization** : Optimisation automatique des images
* **Font Loading** : Chargement optimisé des polices

### Tests et Qualité

#### Tests Frontend

* **Vitest** : Tests unitaires
* **Playwright** : Tests e2e
* **Vue Test Utils** : Tests des composants Vue
* **Testing Library** : Tests centrés sur l'utilisateur
* **Coverage** : Mesure de la couverture de tests

#### Qualité du Code

* **ESLint** : Règles de qualité du code
* **Prettier** : Formatage automatique
* **TypeScript** : Vérification des types
* **Husky** : Hooks Git pour la qualité

### Déploiement et Build

#### Processus de Build

* **Nuxt Build** : Construction de l'application
* **Static Generation** : Génération des pages statiques
* **Asset Optimization** : Optimisation des ressources
* **Bundle Analysis** : Analyse de la taille du bundle

#### Configuration de Production

* **Environment Variables** : Configuration par environnement
* **API Endpoints** : URLs des services backend
* **CDN** : Distribution des assets statiques
* **Monitoring** : Suivi des performances en production

### Accessibilité et UX

#### Standards d'Accessibilité

* **WCAG 2.1** : Conformité aux standards d'accessibilité
* **Navigation clavier** : Support complet du clavier
* **Screen Readers** : Compatibilité avec les lecteurs d'écran
* **Contraste** : Ratios de contraste appropriés

#### Expérience Utilisateur

* **Design intuitif** : Interface facile à utiliser
* **Feedback visuel** : Retours immédiats des actions
* **Responsive** : Adaptation à tous les appareils
* **Performance** : Temps de réponse rapides

### Intégrations

#### Services Externes

* **Pusher** : Notifications temps réel
* **Analytics** : Suivi des interactions utilisateur

#### APIs et Webhooks

* **REST APIs** : Endpoints standards servi par trpc
* **WebSockets** : Communication bidirectionnelle

### Monitoring et Observabilité

#### Métriques Frontend

* **Core Web Vitals** : Mesures de performance
* **Error Tracking** : Suivi des erreurs JavaScript
* **User Analytics** : Comportement des utilisateurs
* **Performance Monitoring** : Temps de chargement et rendu

#### Logs et Debugging

* **Console Logs** : Logs de développement
* **Error Reporting** : Rapport d'erreurs automatique
* **Performance Profiling** : Analyse des performances
* **User Feedback** : Retours utilisateur intégrés

### Sécurité Frontend

#### Protection Frontend

* **XSS Prevention** : Protection contre les attaques XSS
* **CSRF Protection** : Protection contre les attaques CSRF
* **Content Security Policy** : Politique de sécurité du contenu
* **Input Validation** : Validation côté client et serveur

#### Authentification

* **JWT Tokens** : Gestion des sessions
* **OAuth** : Authentification tierce
* **2FA** : Authentification à deux facteurs
* **Session Management** : Gestion sécurisée des sessions

## Système de Tests

### Tests Unitaires

* **Vitest** : Framework de tests pour Node.js
* **test** : Exécution des tests unitaires
* **test:watch** : Mode watch pour le développement
* **typecheck** : Vérification des types TypeScript

### Tests E2E

* **Playwright** : Tests end-to-end pour l'interface utilisateur
* **test:playwright** : Exécution des tests E2E

## Développement et Déploiement

### Scripts de Développement

* **dev** : Démarrage de l'environnement de développement SST
* **build** : Construction du projet pour la production
* **deploy** : Déploiement sur AWS via SST
* **remove** : Suppression de l'infrastructure déployée

### Qualité du Code

* **lint** : Vérification ESLint du code
* **format** : Formatage automatique avec Prettier
* **check** : Vérification complète (lint + typecheck)
* **prisma** : Génération du client Prisma et synchronisation DB

## Monitoring et Observabilité

### Logging et Traçage

* **Sentry** : Monitoring des erreurs et performance
* **Logs structurés** : Logs JSON pour l'analyse
* **Métriques** : Suivi des performances et KPIs

### Notifications

* **Pusher** : Notifications temps réel dans l'interface
* **Mailjet** : Notifications par email
* **Webhooks** : Intégration avec TradingView et autres services

## Sécurité et Conformité

### Gestion des Secrets

* **AWS Secrets Manager** : Stockage sécurisé des clés API
* **Chiffrement des champs** : Données sensibles chiffrées en base
* **IAM** : Contrôle d'accès aux ressources AWS

### Validation des Données

* **Zod** : Validation des schémas de données
* **Sanitisation** : Nettoyage des entrées utilisateur
* **Rate Limiting** : Protection contre les abus

## Intégrations Externes

### Exchanges de Trading

* **Binance** : Exchange principal pour le trading
* **CCXT** : Bibliothèque unifiée pour les exchanges
* **API REST** : Communication avec les exchanges

### Services d'Analyse Technique

* **TAAPI** : Indicateurs techniques et signaux
* **TradingView** : Webhooks pour les signaux de trading
* **Indicateurs personnalisés** : Calculs de tendance et filtres

## Performance et Scalabilité

### Architecture Serverless

* **Lambda Functions** : Mise à l'échelle automatique
* **API Gateway** : Gestion de la charge
* **CDN** : Distribution des assets statiques
* **Base de données** : MongoDB Atlas avec réplication

### Optimisations

* **Layers Lambda** : Réutilisation des dépendances
* **Cache** : Mise en cache des données fréquemment utilisées
* **Batch Processing** : Traitement en lot des opérations
* **Async Processing** : Traitement asynchrone des tâches lourdes

## Maintenance et Opérations

### Gestion des Versions

* **Semantic Versioning** : Versioning sémantique appliqué à tout le monorepo
* **Changelog** : Historique des modifications sur le monorepo

### Mises à Jour

* **Dependencies** : Mise à jour des dépendances
* **Security Patches** : Correctifs de sécurité
* **Feature Flags** : Activation progressive des fonctionnalités
* **Rollback** : Retour en arrière en cas de problème

### Tâches Automatisées

* **Nettoyage des bougies** : Suppression des données obsolètes
* **Rapports quotidiens** : Génération automatique des rapports
* **Monitoring** : Surveillance continue des systèmes
* **Backup** : Sauvegarde automatique des données

### Gestion des Erreurs

* **Retry Logic** : Tentatives automatiques en cas d'échec
* **Circuit Breaker** : Protection contre les défaillances en cascade
* **Fallback** : Mécanismes de repli en cas de problème
* **Alerting** : Notifications automatiques des incidents

## Documentation et Support

### Génération de Documentation

* **TypeDoc** : Documentation automatique des API
* **Mintlify** : Documentation utilisateur
* **Mermaid** : Diagrammes d'architecture
* **README** : Documentation du projet

### Support et Maintenance

* **Linear** : Gestion des tickets et tâches
* **Cursor** : Environnement de développement avec IA
* **Changelog** : Historique des modifications
