- Add newsletter database table migration - Create newsletter controller with subscribe/unsubscribe endpoints - Add newsletter routes and validation - Implement newsletter service with email validation - Add setup documentation and migration scripts - Include test page for newsletter functionality 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
3.5 KiB
3.5 KiB
Newsletter Feature - Installation Guide
Vue d'ensemble
La fonctionnalité newsletter a été ajoutée au backend et frontend. Elle permet aux utilisateurs de s'abonner à la newsletter depuis le footer du site.
Backend
Fichiers créés :
- Migration de base de données :
database/migrations/add-newsletter-table.sql - Controller :
src/controllers/newsletter.controller.js - Service :
src/services/newsletter.service.js - Routes :
src/routes/newsletter.routes.js - Validation :
src/validations/newsletter.validation.js
Endpoints API :
POST /api/newsletter/subscribe- S'abonner (public)POST /api/newsletter/unsubscribe- Se désabonner (public)GET /api/newsletter/subscribers- Liste des abonnés (Admin seulement)GET /api/newsletter/count- Nombre d'abonnés actifs (Admin seulement)
Frontend
Fichiers modifiés/créés :
- Service :
services/newsletter.service.ts - Constants :
utils/constants.ts(ajout des endpoints newsletter) - Footer :
components/Footer.tsx(ajout du formulaire d'inscription)
Installation
1. Appliquer la migration de base de données
Exécutez le script SQL pour créer la table newsletters :
# Depuis le répertoire backend
psql -h 51.75.24.29 -U postgres -d thetiptop_dev -p 5433 -f database/migrations/add-newsletter-table.sql
Ou connectez-vous à votre base de données et exécutez manuellement le contenu du fichier database/migrations/add-newsletter-table.sql.
2. Redémarrer le backend
# Dans le répertoire backend
npm run dev
3. Redémarrer le frontend
# Dans le répertoire frontend
npm run dev
Fonctionnalités
Pour les utilisateurs :
- Formulaire d'inscription à la newsletter dans le footer
- Validation d'email en temps réel
- Messages de confirmation/erreur
- Email de confirmation d'abonnement automatique
- Possibilité de se désabonner
Pour les administrateurs :
- Voir la liste complète des abonnés
- Voir le nombre d'abonnés actifs
- API endpoints protégés par authentification et rôle ADMIN
Emails
Les emails de confirmation sont envoyés automatiquement lors de l'inscription. Configuration SMTP requise dans le fichier .env :
SMTP_HOST=your-smtp-host
SMTP_PORT=587
SMTP_USER=your-smtp-user
SMTP_PASS=your-smtp-password
EMAIL_FROM=noreply@thetiptop.fr
En mode développement sans configuration SMTP, les emails sont affichés dans la console.
Test
Test manuel :
- Ouvrez le frontend (http://localhost:3000)
- Scrollez jusqu'au footer
- Entrez votre email dans le champ "Newsletter"
- Cliquez sur "S'inscrire"
- Vérifiez le message de confirmation
Test API avec curl :
# S'abonner
curl -X POST http://localhost:4000/api/newsletter/subscribe \
-H "Content-Type: application/json" \
-d '{"email": "test@example.com"}'
# Nombre d'abonnés (nécessite un token admin)
curl -X GET http://localhost:4000/api/newsletter/count \
-H "Authorization: Bearer YOUR_ADMIN_TOKEN"
Sécurité
- Les endpoints publics (subscribe/unsubscribe) ne nécessitent pas d'authentification
- Les endpoints admin (subscribers/count) nécessitent un token JWT et le rôle ADMIN
- Validation Zod sur les entrées
- Protection contre les doublons d'email
- Sanitisation des données
Prochaines étapes possibles
- Ajout d'une page de gestion de newsletter pour les admins
- Export de la liste des abonnés en CSV
- Système de campagnes email
- Segmentation des abonnés
- Statistiques d'engagement