Problèmes résolus:
✅ Flux RSS ne s'affichaient pas → LEFT JOIN + COALESCE
✅ Pas de mise à jour automatique → Scheduler toutes les 5min
✅ Application lente → Cache serveur + client
Scheduler RSS (services/rss-scheduler.js):
- Mise à jour automatique des flux toutes les 5 minutes
- Première exécution 5 secondes après démarrage
- Gestion parallèle de tous les flux activés
- Logs détaillés pour debugging
- Protection contre les exécutions multiples simultanées
- Limite de 20 articles par flux pour performance
Routes RSS optimisées:
- Cache serveur 30 secondes pour /api/rss/articles
- Invalidation cache après fetch manuel
- LEFT JOIN au lieu de INNER JOIN (flux sans articles)
- COALESCE pour titre fallback
- Logs améliorés avec compteurs
Frontend vanilla JS:
- Auto-refresh RSS toutes les 30 secondes
- Cache settings client 1 minute
- Synchronisation avec scheduler serveur
- console.debug au lieu de console.error pour auto-refresh
Frontend React:
- Auto-refresh RSS toutes les 30 secondes
- loadRssData() séparée pour refresh indépendant
- useEffect cleanup proper (clearInterval)
- État lastUpdate pour tracking
Server.js:
- Démarrage scheduler au startup
- Log confirmation démarrage
Performances:
- Moins de requêtes DB grâce au cache
- Refresh automatique sans action utilisateur
- Articles toujours à jour (max 30s de délai)
- Support de beaucoup de flux RSS sans ralentissement
Architecture:
- Types TypeScript complets pour toutes les entités
- Service API avec axios et intercepteurs JWT
- AuthContext pour gestion authentification
- Router avec routes protégées (login, dashboard)
Composants:
- Login: page de connexion avec formulaire
- Dashboard: page principale avec 3 colonnes (notes, todos, rss)
- Affichage conditionnel articles vs résumés RSS
- Gestion todos en temps réel
- Design moderne et responsive
Configuration:
- Vite avec proxy API vers backend (:3000)
- Build vers /public-react
- Configuration TypeScript stricte
- CSS moderne avec variables et responsive
Features:
- Authentication complète
- Notes affichées en grille
- Todos sidebar avec CRUD
- RSS sidebar avec articles ou résumés
- Protection des routes
- UX fluide et moderne
- Création du dossier client/ avec Vite
- Configuration React 19 + TypeScript 5.9
- Installation react-router-dom pour le routing
- Installation axios pour les appels API
- Structure de dossiers: types, services, components, contexts, hooks, pages, utils
- Configuration ESLint + TypeScript
- Prêt pour la conversion de l'application