Corrections pour résoudre les conflits de dépendances npm:
- @dyad-sh/react-vite-component-tagger: 0.0.6 → 0.8.0 (version valide)
- date-fns: 4.1.0 → 3.6.0 (compatible avec react-day-picker)
- react-day-picker: 8.10.1 → 9.11.1 (compatible avec React 19)
Génération de package-lock.json avec toutes les dépendances résolues.
Installation réussie avec 702 packages.
Configuration de l'application pour le build et déploiement React:
Package.json:
- Ajout de toutes les dépendances React/TypeScript/Vite
- Ajout des dépendances shadcn/ui et Radix UI
- Ajout des scripts de build (dev, build, preview)
- Dépendances ajoutées: react, react-dom, @tanstack/react-query,
react-router-dom, tailwindcss, vite, typescript, lucide-react,
sonner, next-themes, et toutes les primitives @radix-ui
Vite.config.ts:
- Configuration du build pour générer dans le dossier dist/
- Configuration correcte de l'alias @ pour les imports
Server.js:
- Modification pour servir les fichiers statiques depuis dist/
- Maintien du dossier /uploads depuis public/uploads
- SPA fallback pour servir dist/index.html
Dockerfile:
- Multi-stage build pour optimiser la taille
- Stage 1 (builder): Installation des dépendances et build React
- Stage 2 (production): Copie du build + dépendances serveur uniquement
- Réduction significative de la taille de l'image finale
.dockerignore:
- Nouveau fichier pour exclure les fichiers inutiles du contexte Docker
- Exclusion de node_modules, dist, .git, logs, etc.
L'application est maintenant prête pour le déploiement avec Docker.
## Base de données:
- Table settings (key-value pour paramètres globaux)
- Table rss_feeds (url, title, description, enabled, last_fetched_at)
- Table rss_articles (feed_id, title, link, description, pub_date, content)
- Index optimisés pour performance
## Routes Settings (/api/settings):
- GET /api/settings - Récupérer tous les paramètres
- GET /api/settings/:key - Récupérer un paramètre
- PUT /api/settings/:key - Mettre à jour un paramètre
- DELETE /api/settings/:key - Supprimer un paramètre
- Middleware requireAdmin sur toutes les routes
## Routes RSS (/api/rss):
- GET /api/rss/feeds - Liste des flux RSS (admin)
- POST /api/rss/feeds - Ajouter flux RSS avec parsing validation (admin)
- PUT /api/rss/feeds/:id - Activer/désactiver flux (admin)
- DELETE /api/rss/feeds/:id - Supprimer flux (admin)
- POST /api/rss/fetch - Récupérer articles de tous flux actifs (admin)
- GET /api/rss/articles - Récupérer 10 derniers articles (tous users)
- POST /api/rss/summarize - Générer résumé OpenRouter (admin)
- GET /api/rss/models - Liste modèles OpenRouter (admin)
## Intégration OpenRouter:
- Appel API avec clé, modèle et prompt configurables
- Résumé intelligent des 10 derniers articles
- Prompt par défaut optimisé pour résumés d'actualités
- Support GPT-4, Claude 3, Gemini, Llama 3, Mistral, etc.
- Gestion erreurs et timeout
## Parser RSS:
- rss-parser installé pour parsing flux
- Gestion articles avec contenu, description, date
- Détection doublons par URL
- Update automatique infos flux
## Frontend HTML:
- Modal admin avec système à onglets (Users/RSS/OpenRouter)
- Modal changement mot de passe sans prompt navigateur
- Box RSS dans page principale affichage 10 derniers articles
- Bouton résumé IA dans header box RSS
- Inputs pour gestion flux RSS
- Configuration OpenRouter (API key, modèle, prompt, activation)
- Sélecteur modèles avec recherche
Prochaine étape: CSS + JavaScript pour fonctionnalités