Skip to content

Commit 3dc78ee

Browse files
authored
Merge pull request #129 from RustyRory/feat/124-page-login
feat(next): Fixes #124 - Login & Register pages
2 parents 07cfae6 + 4964958 commit 3dc78ee

53 files changed

Lines changed: 9762 additions & 719 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

docs/README.md

Lines changed: 156 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -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
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.

0 commit comments

Comments
 (0)