Une application web moderne pour générer et partager des citations d'anime.
- Génération de citations aléatoires
- Interface moderne avec animations
- Fond dynamique avec pétales qui tombent
- Design responsive
- Partage sur les réseaux sociaux
- Système de favoris
- Frontend: React, Material-UI, Framer Motion
- Backend: Node.js, Express
Avant de lancer l'application, vous devez configurer les variables d'environnement.
Le backend peut démarrer sans configuration, mais pour activer la génération IA avec Pollination, ajoutez un fichier .env à la racine:
POLLINATION_API_KEY=VOTRE_CLE_API
POLLINATION_MODEL=openai
POLLINATION_BASE_URL=https://gen.pollinations.ai/v1
POLLINATION_TIMEOUT_MS=15000
APP_PUBLIC_URL=http://localhost:3000
AI_RATE_LIMIT_WINDOW_MS=60000
AI_RATE_LIMIT_MAX=8
LOG_LEVEL=infoPour le déploiement en production, vous devez configurer l'URL de votre backend.
-
À la racine du dossier
client, un fichier.enva été créé. -
Il contient la variable suivante :
REACT_APP_API_URL=https://YOUR_BACKEND_URLPour le développement local, cette variable n'est pas utilisée car un proxy est configuré. Pour la production, vous devez la configurer dans les réglages de votre plateforme de déploiement (ex: Netlify, Vercel, Dualite) avec l'URL publique de votre serveur backend.
-
Cloner le repository (si ce n'est pas déjà fait).
-
Installer les dépendances pour le serveur et le client :
npm install npm install --prefix client
-
Lancer l'application en mode développement (frontend et backend simultanément) :
npm run dev:full
L'application sera disponible sur http://localhost:3000 et le serveur sur http://localhost:5000.
Depuis la racine du projet :
npm run test:server
npm run test:client
npm run build:clientCes scripts fonctionnent sur Windows, macOS et Linux.
- Endpoint backend:
POST /api/ai/quote - Body JSON:
{ "prompt": "motivation, résilience..." }(optionnel) - Le backend tente Pollination puis bascule automatiquement sur une citation locale en cas d'indisponibilité.
- Protection anti-abus: rate limit par IP configurable via
AI_RATE_LIMIT_WINDOW_MSetAI_RATE_LIMIT_MAX.
- Rodrigue GBADOU