Application Frontend Nuxt.js - Remora
Cette spécification couvre l’application frontend principale de Remora, construite avec Nuxt.js 4 et Vue 3, dédiée à la gestion et au suivi des positions de trading.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
- 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 (A détailler)
- 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é
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