@@ -13,7 +13,7 @@ Ce README agit comme un **sommaire détaillé**, expliquant le rôle de chaque d
1313## 🧭 Vue d’ensemble du projet
1414
1515- ** Type de projet** : Site web + back-office
16- - ** Architecture** : MERN (MongoDB, Express, React , Node.js)
16+ - ** Architecture** : MERN (MongoDB, Express, Next.js , Node.js)
1717- ** Public cible** : visiteurs, adhérents, bénévoles, administrateurs du club
1818- ** Objectif principal** : structurer et professionnaliser la présence numérique du club
1919
@@ -148,7 +148,7 @@ Chaque dossier correspond à une étape clé du cycle projet, de l’idée au co
148148
149149## 7. Backend
150150
151- ** [ docs/backend] ( ./project /backend.md/ ) **
151+ ** [ docs/backend] ( ./projet/backend /backend.md/ ) **
152152
153153### Contenu
154154- Installation et configuration de Node.js et Express
@@ -164,18 +164,169 @@ Chaque dossier correspond à une étape clé du cycle projet, de l’idée au co
164164- Utiliser MongoDB de manière flexible, avec création automatique des bases et collections à l’insertion de documents
165165- Permettre le développement rapide grâce à nodemon et à une configuration simple des routes et contrôleurs
166166
167- ** [ docs/scraping] ( ./projet/scraping.md/ ) **
167+ ** [ docs/scraping] ( ./projet/backend/ scraping.md/ ) **
168168
169169### Contenu
170+ - Analyse de la structure HTML du site FFVB
171+ - Identification des tableaux :
172+ - Classement (standings)
173+ - Matchs
174+ - Mapping HTML → objets JavaScript
175+ - Mapping JS → modèles MongoDB
176+ - Gestion des relations :
177+ - Season
178+ - Team
179+ - Championship
180+ - Script de scraping avec Puppeteer + Cheerio
181+ - Upsert MongoDB (mise à jour sans doublons)
182+ - Normalisation des données
183+ - Gestion des erreurs
184+ - Automatisation (script manuel / cron / tâche admin)
170185
171186### Objectifs
187+ - Automatiser la récupération des données sportives officielles
188+ - Garantir la cohérence des classements et matchs
189+ - Éviter les doublons en base
190+ - Permettre la mise à jour régulière des données
191+ - Préparer une future automatisation (cron ou tâche planifiée)
192+ - Respecter la structure et les contraintes du site FFVB
172193
173- ** [ docs/authentification] ( ./project /auth.md/ ) **
194+ ** [ docs/authentification] ( ./projet/backend /auth.md/ ) **
174195
175196### Contenu
197+ - Modèle ` User ` (Mongoose)
198+ - Hashage sécurisé des mots de passe (bcrypt)
199+ - Méthodes intégrées (` setPassword ` , ` comparePassword ` )
200+ - Routes :
201+ - ` /auth/register `
202+ - ` /auth/login `
203+ - ` /auth/me `
204+ - Middleware :
205+ - Vérification JWT
206+ - Vérification rôle (` requireRole ` )
207+ - Gestion des rôles :
208+ - admin
209+ - editor
210+ - user
211+ - other
212+ - Routes d’administration :
213+ - Activation compte
214+ - Modification rôle
215+ - Seed admin automatique
216+ - Tests Postman
217+ - Sécurité (JWT expiration, comptes inactifs)
176218
177219### Objectifs
220+ - Sécuriser l’accès au back-office
221+ - Garantir la protection des données utilisateurs
222+ - Implémenter un système RBAC (Role Based Access Control)
223+ - Permettre une validation des comptes par administrateur
224+ - Préparer une architecture évolutive (refresh token, audit logs)
225+ - Empêcher tout accès non autorisé aux routes sensibles
178226
179227---
180228
181- ## 8. Frontend
229+ ## 8. Frontend
230+
231+ ** [ docs/frontend] ( ./projet/frontend/frontend.md ) **
232+
233+ ### Contenu
234+ - Installation Next.js (App Router)
235+ - Structure du projet (` app ` , ` components ` , ` lib ` , etc.)
236+ - Configuration des variables d’environnement
237+ - Helper API centralisé
238+ - Communication frontend ↔ backend
239+ - Architecture globale MERN
240+ - Workflow inscription / connexion / admin
241+ - Bonnes pratiques (structure, scalabilité, organisation par feature)
242+
243+ ### Objectifs
244+ - Structurer le frontend de manière professionnelle
245+ - Centraliser les appels API
246+ - Préparer l’application à évoluer (ajout de fonctionnalités)
247+ - Assurer la cohérence avec le backend
248+ - Mettre en place une base scalable et maintenable
249+
250+ ** [ docs/pages] ( ./projet/frontend/pages.md ) **
251+
252+ ### Contenu
253+ - Structure App Router
254+ - Organisation pages publiques
255+ - Organisation pages protégées
256+ - Layout global
257+ - Gestion des metadata SEO
258+ - Séparation logique :
259+ - pages vitrine
260+ - pages auth
261+ - pages admin
262+
263+ ### Objectifs
264+ - Garantir une navigation claire
265+ - Séparer public / privé
266+ - Préparer l’optimisation SEO
267+ - Faciliter l’ajout de nouvelles pages
268+ - Maintenir une arborescence propre
269+
270+ ** [ docs/login] ( ./projet/frontend/login.md ) **
271+
272+ ### Contenu
273+ - Flow complet d’authentification
274+ - Cookie httpOnly
275+ - Route Next proxy ` /api/auth/login `
276+ - Route ` /api/auth/me `
277+ - Middleware de protection
278+ - Vérification rôle côté layout admin
279+ - Route logout
280+ - Bonnes pratiques sécurité
281+
282+ ### Objectifs
283+ - Ne jamais exposer le JWT côté client
284+ - Sécuriser la session utilisateur
285+ - Protéger les routes sensibles
286+ - Gérer les rôles côté frontend
287+ - Garantir une authentification production-ready
288+
289+ ** [ docs/dashboard] ( ./projet/frontend/dashboard.md ) **
290+
291+ ### Contenu
292+ - Structure ` /admin `
293+ - Layout admin (sidebar + contenu)
294+ - Page gestion utilisateurs
295+ - Intégration routes API Next
296+ - Activation / modification rôle
297+ - Sécurisation via middleware
298+ - Évolutions futures (pagination, filtres, recherche)
299+
300+ ### Objectifs
301+ - Fournir un back-office sécurisé
302+ - Centraliser la gestion des comptes
303+ - Simplifier l’administration du club
304+ - Préparer une future gestion de contenu (CMS interne)
305+ - Assurer un contrôle strict des accès
306+
307+ ** [ docs/vitrine] ( ./projet/frontend/vitrine.md ) **
308+
309+ ### Contenu
310+ - Liste complète des pages publiques :
311+ - Accueil
312+ - Club
313+ - Équipes
314+ - Actualités (+ slug)
315+ - Partenaires
316+ - Informations pratiques
317+ - Galeries (+ id dynamique)
318+ - Contact
319+ - Mentions légales
320+ - Politique de confidentialité
321+ - Redirection SportEasy (licences / boutique)
322+ - Pages dynamiques
323+ - SEO par page
324+ - Formulaire contact
325+ - Évolutions futures (CMS, multilingue)
326+
327+ ### Objectifs
328+ - Professionnaliser la présence numérique du club
329+ - Structurer l’information pour les visiteurs
330+ - Optimiser le référencement naturel
331+ - Offrir une navigation claire et intuitive
332+ - Permettre l’évolution vers un CMS interne
0 commit comments