đŻ NS’App v1.0
đč Objectif : Offrir une solution intuitive, performante et sĂ©curisĂ©e pour permettre aux sportifs de tous niveaux de s’entrainer individuelement Ă partir d’une ressources « plan, seances et exercices »  planifier, suivre et optimiser leurs activitĂ©s sportives.
đ FonctionnalitĂ©s DĂ©taillĂ©es
đč đ Ajout de seances au calendrier
â Calendrier Avec interface responsive modulable « Aujourd’hui, Cette semaine, Ce Mois, Cette AnnĂ©e ».
â IntĂ©gration par glisser deposer.
đč ⥠IntĂ©gration de sĂ©ances d’entraĂźnement Ă partir d’une librairie
â Catalogue de sĂ©ances classĂ©es par categorie.
â Ajout simplifiĂ© au calendrier personnel « Bouton Ajouter Ă mon agenda –>> l’utilisateur prcise une date ».
â Modification et suppression.
đč đââïž CrĂ©ation de sĂ©ances personnalisĂ©es natation
â Natation đ : Structuration en sĂ©ries (Disatnce , rĂ©petitions, rĂ©cupĂ©ration intra sĂ©rie, rĂ©cupĂ©ration inter sĂ©ries, Type : (crawl, papillon, dos, brasse, jambes, bras, educatif), % de la vitesse max, Distance Totale)
â Notes techniques : ( Consignes).
đč đȘ CrĂ©ation de sĂ©ances personnalisĂ©es musculation
â
Exercices organisés avec : répétitions, charge, temps de repos, image.
â
Intégration de vidéos explicatives pour une exécution correcte.
đ€ Parcours Utilisateur
đč Utilisateur :
â Sâinscrit, configure son profil et planifie ses entraĂźnements.
â Suit ses performances et interagit avec la communautĂ©.
â GĂšre ses abonnements et accĂšde au support si besoin.
Version 1.0
1ïžâŁ Inscription & Connexion
đ Ătape 1 : Inscription
- Lâutilisateur arrive sur la page dâaccueil et clique sur « Commencer ici … ».
- Il remplit un formulaire avec nom, email, mot de passe.
- Validation par email de confirmation.
đ Ătape 2 : Connexion & Authentification
- Lâutilisateur se connecte avec son email et mot de passe.
- Redirection vers son tableau de bord personnalisé.
2ïžâŁ Configuration du Profil & PrĂ©fĂ©rences
đ Ătape 3 : Personnalisation du Profil
- AccÚs à la page « Mon Profil » pour ajouter des informations :
â Photo de profil
â Objectifs sportifs
â PrĂ©fĂ©rences dâentraĂźnement
đ Ătape 4 : ParamĂ©trage des Notifications
- Activation des rappels et notifications push pour les entraĂźnements.
- Choix du mode de réception (email).
3ïžâŁ Planification & Gestion des EntraĂźnements
đ Ătape 5 : AccĂšs au Calendrier
- Lâutilisateur consulte son agenda avec une vue hebdomadaire/mensuelle.
- Il peut ajouter de nouvelles séances, modifier ou supprimer celles existantes.
- Intégration des entraßnements à Google Calendar en un clic.
đ Ătape 6 : Choix des SĂ©ances & Plans d’EntraĂźnement
- Consultation des plans dâentraĂźnement prĂ©dĂ©finis.
- Personnalisation des séances en fonction des objectifs.
- Ajout des séances sélectionnées au calendrier personnel. à son tableau de bord « Rubrique mon programme »
đ Ătape 7 : Suivi des Performances
- Visualisation des statistiques (Nombre de séances, distances).
- Ajout de notes et d’observations sur chaque sĂ©ance.
Version 2.0
4ïžâŁ Interaction avec la CommunautĂ©
đ Ătape 8 : Participation aux DĂ©fis & Classements
- AccÚs à des challenges sportifs et compétitions.
- Classement en fonction des performances et progression.
đ Ătape 9 : Partage & Ăchange
- Publication de commentaires et retours dâexpĂ©rience.
- PossibilitĂ© dâintĂ©grer des groupes dâentraĂźnement pour sâentraider.
5ïžâŁ Gestion des Abonnements & Paiements
đ Ătape 10 : Mise Ă Niveau & Paiements
- AccĂšs Ă lâonglet « Abonnement » pour gĂ©rer son plan (gratuit/premium).
- Paiement sécurisé via Stripe / PayPal.
- Suivi des paiements et historique des transactions.
đ Ătape 11 : Support & Assistance
- AccÚs à une FAQ détaillée.
- Possibilité de contacter le support via chat en ligne ou email.
đ ïž Parcours Administrateur
đč Administrateur :
â Supervise les utilisateurs et gĂšre les inscriptions  les abonnements.
â ModĂšre les contenus Publie des pages et met Ă jour les plans dâentraĂźnement.
â Assure la stabilitĂ© et la sĂ©curitĂ© de la plateforme.
1ïžâŁ Connexion & AccĂšs au Tableau de Bord
đ Ătape 1 : Connexion SĂ©curisĂ©e
- Lâadministrateur se connecte avec des identifiants privilĂ©giĂ©s.
- Utilisation dâune authentification renforcĂ©e (2FA). ( Version 2.0)
đ Ătape 2 : Accueil du Tableau de Bord
- Vue dâensemble des statistiques clĂ©s :
â Nombre dâutilisateurs actifs/inactifs  –> Plans, sĂ©ances et exercices.
â Nouveaux abonnements ( Version 2.0)
â Performances du site ( Version 2.0)
â Taux de renouvellement des abonnements ( Version 2.0)
2ïžâŁ Gestion des UtilisateursÂ
đ Ătape 3 : Supervision des Comptes Utilisateurs
- AccĂšs Ă la liste complĂšte des utilisateurs.
- Modification/suppression des comptes si nécessaire.
- Activation/désactivation des profils en un clic.
đ Ătape 4 : Suivi des Abonnements & Transactions ( Version 2.0)
- Gestion des abonnements gratuits et premium. ( Version 2.0)
- VĂ©rification des paiements et factures. ( Version 2.0)
- Envoi automatique de notifications de renouvellement. ( Version 2.0)
3ïžâŁ Gestion du Contenu & Blog
đ Ătape 5 : Administration des Pages Web
- Ajout/modification/suppression de contenus statiques (pages dâaccueil, mentions lĂ©gales, FAQ).
- Gestion des menus et navigation.
đ Ătape 6 : CrĂ©ation & ModĂ©ration des Articles de Blog
- RĂ©daction et publication de nouveaux articles.
- Modération des commentaires pour éviter les abus.
- Organisation des articles par catégories et tags.
4ïžâŁ Gestion des Plans d’EntraĂźnement & SĂ©ances
đ Ătape 7 : CrĂ©ation de Programmes Sportifs
- Ajout de nouveaux plans / sĂ©ances / exercices dâentraĂźnement prĂ©dĂ©finis.
- PossibilitĂ© dâinclure des vidĂ©os et conseils techniques.
- Organisation des plans par niveaux et disciplines.
đ Ătape 8 : Suivi des Statistiques Utilisateur
- Analyse des donnĂ©es dâentraĂźnement des utilisateurs.
- Détection des tendances (types de séances les plus populaires).
5ïžâŁ Support Technique & SĂ©curitĂ©
đ Ătape 9 : Gestion des ProblĂšmes Techniques
- Surveillance des performances du site et correction des bugs.
đ Tableau de Bord Administrateur
đč đ„ Gestion des Utilisateurs
â
Visualisation et gestion des profils (actifs, inactifs, premium, gratuits).
â
Ajout, modification et suppression des comptes.
â
Attribution de rÎles et permissions pour un contrÎle précis.
đč đł Gestion des Abonnements
â
Suivi des abonnements (gratuits et premium) avec historique des transactions.
â
Activation/désactivation des comptes en un clic.
â
Paiements et facturation via Stripe et PayPal, avec notifications automatiques.
đč đ Gestion du Contenu Web
â
Création, modification et suppression de pages statiques.
â
Configuration dynamique du contenu pour une personnalisation facile.
â
Gestion des menus et navigation pour une expérience fluide.
â
Personnalisation du thĂšme et de lâidentitĂ© visuelle.
đč đ Gestion des publicationsÂ
â
CrĂ©ation et publication de pages et d’articles .
â
Modération des commentaires pour une communauté saine.
â
Catégorisation et filtrage des articles.
â
Intégration de médias (images, vidéos).
đč đ Gestion des MĂ©dias
â
BibliothÚque de fichiers multimédias avec prévisualisation.
â
Organisation par catégories et tags pour un accÚs rapide.
đŻ Tableau de Bord Utilisateur
đč đ€ Gestion du Profil
â
Mise Ă jour des informations personnelles.
â
Personnalisation des notifications.
â
Changement et réinitialisation du mot de passe.
đč đ Gestion du Calendrier
â
Vue mensuelle et hebdomadaire interactive.
â
Ajout dâĂ©vĂ©nements et synchronisation avec Google Calendar.
â
Notifications et rappels personnalisés.
đč đïž Gestion des SĂ©ances d’EntraĂźnement
â
Consultation des séances passées et à venir.
â
Ajout, modification et suppression de séances à son tableau de bord  » Rubrique mes programmes ».
â
Suivi des performances et statistiques.
đč đ Gestion des Plans d’EntraĂźnement
â
AccĂšs Ă des plans dâentraĂźnement prĂ©dĂ©finis.
â
Personnalisation des séances.
â
Suivi des progrĂšs avec indicateurs de performance.
đ 3. FonctionnalitĂ©s DĂ©taillĂ©esÂ
đč đ Ajout d’Ă©vĂ©nements au calendrier
â
Interface intuitive et responsive.
â
Intégration de rappels et notifications push.
đč ⥠IntĂ©gration de sĂ©ances d’entraĂźnement
â
Catalogue de séances classées par discipline.
â
Ajout simplifié au calendrier personnel.
đč đââïž CrĂ©ation de sĂ©ances personnalisĂ©es
â
Natation đ : Structuration en sĂ©ries (crawl, papillon, dos, brasse)
â
Détails : distance, temps cible, récupération.
â
Suivi des performances et notes techniques.
â
PrĂ©paration physique đȘ : Exercices organisĂ©s avec rĂ©pĂ©titions, charge, temps de repos.
â
Intégration de vidéos explicatives pour une exécution correcte.
đč đ Ajout de sĂ©ances au calendrier personnel
â
Ajout rapide et ergonomique.
â
Affichage optimisé dans le calendrier.
â
Modification et suppression flexibles.
â
Suivi des séances réalisées pour une motivation constante.
đ 4. Technologies UtilisĂ©es
đč Backend đ„ïž : Laravel 11 (architecture robuste et Ă©volutive).
đč Frontend đ„ïž : React.js 19 (expĂ©rience utilisateur dynamique et performante).
đč Base de donnĂ©es đïž : MySQL avec phpMyAdmin.
đč Authentification đ : JWT / OAuth2 pour une sĂ©curitĂ© renforcĂ©e.
đč Paiements đł : Stripe / PayPal.
đč GitHub Actions pour une automatisation du dĂ©veloppement.
đ 5. Objectifs et DĂ©lais (Phases)
â
Phase 1 đš : Conception et maquettage .
â
Phase 2 âïž : DĂ©veloppement backend .
â
Phase 3 đ„ïž : DĂ©veloppement frontend .
â
Phase 4 đ : Tests et mise en production .
đź 6. AmĂ©liorations Potentielles
đč đ€ Intelligence Artificielle (IA)
â
đ Personnalisation des sĂ©ances : IA recommandant des entraĂźnements adaptĂ©s aux objectifs et au niveau de l’utilisateur.
â
đ Analyse des performances : Suggestions dâamĂ©lioration basĂ©es sur les progrĂšs.
đč đ CommunautĂ© et CompĂ©tition
â
đ
Classements : Comparaison entre utilisateurs.
â
đ„ DĂ©fis et compĂ©titions : Encourager lâengagement et la motivation.
â
đ€ Clubs et groupes : CrĂ©ation de communautĂ©s sportives.
đč Next Step : IntĂ©grer des fonctionnalitĂ©s IA et communautaires pour renforcer lâengagement et offrir une personnalisation encore plus poussĂ©e ! đ
đ Technologies UtilisĂ©es
đč Backend đ„ïž :
- Laravel 11 (architecture ).
đč Frontend đ„ïž :
- React.js 19 (expérience utilisateur ).
đč Base de donnĂ©es đïž :
- MySQL avec phpMyAdmin. « Via Mamp Serv »
đč Authentification đ :
- JWT / OAuth2 pour une sécurité renforcée.
đč Paiements đł :
- Stripe / PayPal.
đč Automatisation du dĂ©veloppement.
- GitHub.
đ 5. Organisation (Phases)
â Phase 1 đš :
- But, Cibles, Fonctionnalité, Données, Maquettage . S1
â Phase 2 âïž :
- DĂ©veloppement backend . S2 « Laravel 11 – Migrations, Controleurs CRUD, ModĂ©les, Seeders »
â Phase 3 đ„ïž :
- Développement frontend . S3 « SRC, Composantes, fonctinnalités »
â Phase 4 đ :
- Mise en production .S4  » —> nataswim.net O2Sw »
â Phase 6Â đš :
- Ajustement . S5 —>> design et foctinnalitĂ©s.
đź AmĂ©liorations futurs
Phase 1
â IntĂ©gration des fonctionnalitĂ©s abondonnĂ©es en V1.0
Phase 1
đč đ€ Integration d’outils de synchronisation  » Montres, Partages, Analyse de la forme …)Â
- â đ Personnalisation des sĂ©ances : IA recommandant des entraĂźnements adaptĂ©s aux objectifs et au niveau de l’utilisateur.
- â đ Analyse des performances : Suggestions dâamĂ©lioration basĂ©es sur les progrĂšs.
đč đ Mise en place de communautĂ© rĂ©gionnalisĂ©e
- â đ Classements : Comparaison entre utilisateurs.
- â đ„ DĂ©fis  : Encourager lâengagement et la motivation.
- â đ€ Groupes : CrĂ©ation de communautĂ©s sportives.
đ„ïž Organisation Technique
Â
En Local :
đ app
âââ đ§ backend
âââ đ§ fronted
Outils :
đąïžMySql « PhpMyAdmin » OS
đ MCD « MySqlWorkBench » »dbdiagram » OS
đ ïž Wireframe « canva » Gimp » OS
đïž Dossier « Word Pdf »
đŻ Digrammes « CU + Actvt » « drawio » OS
⥠Suvi du devellopement « GitHub » OS
đ Dictionaire des donnĂ©es « Excel »
đ ïž Test « Postman » OS
đŠ Conventions (Laravel 11)
Structure du code :
-
- Architecture MVC (ModĂšle-Vue-ContrĂŽleur) de Laravel pour organiser le code.
- ModÚles dans le répertoire app/Models, contrÎleurs dans app/Http/Controllerset vues dans resources/views.
- Dossiers de services (app/Services) pour la logique métier complexe.
- RĂ©pertoires de composants (app/View/Components) pour les Ă©lĂ©ments d’interface rĂ©utilisables.
Nommage :
-
- Noms de fichiers et de classes descriptifs et cohérents (ex : UserController.php , Product.php ).
- Conventions de nommage de Laravel (ex : snake_case pour les noms de tables, camelCase pour les noms de méthodes).
Routes :
-
- Routes dans les fichiers routes/web.php (pour les routes web traditionnelles) et routes/api.php (pour les routes d’API).
- Groupes de routes pour organiser les routes et appliquer des middlewares (ex : authentification).
ModĂšles :
-
- Utiliser Eloquent ORM pour interagir avec la base de données.
- DĂ©finir les relations entre les modĂšles (hasMany , belongsTo ).
- Validation :
- Utiliser les fonctionnalitĂ©s de validation de Laravel pour s’assurer que les donnĂ©es entrantes sont valides.
- Sécurité :
- ProtĂ©gez les routes avec des middlewares d’authentification et d’autorisation.
- Utiliser des requĂȘtes prĂ©parĂ©es pour Ă©viter les injections SQL.
- Protéger vos formulaires avec le jeton CSRF.
đŠ Conventions Frontend (React 19)
- Structure du code :
- Organiser les composants dans des dossiers logiques (ex : components/Product , components/Form ).
- Utiliser des composants fonctionnels avec des hooks pour la logique et l’Ă©tat.
- Utiliser un systĂšme de gestion d’Ă©tat comme Redux ou Context API pour gĂ©rer les donnĂ©es partagĂ©es entre les composants.
- Nommage :
- Utiliser des noms de fichiers et de composants descriptifs et cohérents (ex : Product.js , LoginForm.js ).
- Suiver les conventions de nommage de React (ex : PascalCase pour les noms de composants).
- Style :
- Utiliser un systĂšme de CSS-in-JS comme Styled Components ou Emotion pour styliser vos composants.
- Utiliser un guide de style pour assurer la cohérence du code.
- Gestion d’Ă©tat :
- Utiliser des hooks comme useState , useEffect et useContext pour gĂ©rer l’Ă©tat et les effets secondaires de vos composants.
- Utiliser Redux ou Context API pour gĂ©rer l’Ă©tat global de l application.
- Tests :
- Ăcrire des tests unitaires pour les composants et les fonctions utilitaires.
- Utiliser un framework de test comme Jest et React Testing Library.
đ ïž Packages Backend (Laravel 11)
đč Framework et gestion API
-
laravel/framework
â Base du framework Laravel
-
laravel/sanctum
â Authentification API avec tokens (JWT-like)
-
laravel/tinker
â ExĂ©cution de commandes Artisan en ligne de commande
-
guzzlehttp/guzzle
â RequĂȘtes HTTP (ex: consommation d’API tierces)
đïž Base de donnĂ©es et ORM
-
predis/predis
â Gestion du cache et de la file dâattente avec Redis
-
league/flysystem-aws-s3-v3
â Stockage distant sur AWS S3
-
maatwebsite/excel
â Import/export de donnĂ©es en Excel (optionnel)
-
league/csv
â Gestion de fichiers CSV (optionnel)
đ SĂ©curitĂ© et Validation
-
mews/purifier
â Filtrage des entrĂ©es utilisateur pour Ă©viter les failles XSS
-
propaganistas/laravel-phone
â Validation des numĂ©ros de tĂ©lĂ©phone
-
spatie/laravel-permission
â Gestion avancĂ©e des rĂŽles et permissions
-
web-token/jwt-library
â Gestion avancĂ©e des tokens JWT (optionnel)
đĄ API et communication externe
-
google/apiclient
â Connexion aux services Google (OAuth, Drive, etc.)
-
spatie/laravel-webhook-client
â RĂ©ception de webhooks
-
spatie/laravel-webhook-server
â Envoi de webhooks vers dâautres services
đ Logs et surveillance
-
spatie/laravel-activitylog
â Enregistrement des activitĂ©s utilisateurs
-
spatie/laravel-backup
â Sauvegarde automatique de lâapplication et base de donnĂ©es
-
barryvdh/laravel-ide-helper
â AutocomplĂ©tion et documentation pour IDE
-
laravel/telescope
â Outil de debug pour Laravel
-
nunomaduro/collision
â AmĂ©lioration de l’affichage des erreurs
-
mockery/mockery
â Tests unitaires et mocks
-
phpunit/phpunit
â Framework de tests unitaires PHP
-
fakerphp/faker
â GĂ©nĂ©ration de fausses donnĂ©es pour tests
-
friendsofphp/php-cs-fixer
â Formatage du code PHP
đ» Frontend (React 19)
Laravel Ă©tant un backend API-first, il nâa pas besoin de packages frontend. Mais pour React 19, voici les essentiels Ă installer cĂŽtĂ© frontend.
đč Core (React 19)
npm install react@19 react-dom@19 react-router-dom@latest
đ Authentification et API
npm install axios react-query
-
axios
â RequĂȘtes API
-
react-query
â Gestion avancĂ©e des requĂȘtes API et cache
đš UI & State Management
npm install tailwindcss zustand
-
tailwindcss
â Styling rapide et moderne
-
zustand
â Gestion simple de l’Ă©tat (alternative lĂ©gĂšre Ă Redux)
đŠ Formulaires & Validation
npm install react-hook-form yup
-
react-hook-form
â Gestion des formulaires efficace
-
yup
â Validation des formulaires cĂŽtĂ© frontend
đ Tables et UI
npm install @tanstack/react-table @headlessui/react
-
@tanstack/react-table
â Gestion avancĂ©e des tables (data tables)
-
@headlessui/react
â Composants UI accessibles (dropdown, modals, etc.)
đ§Ș Tests
npm install vitest @testing-library/react
-
vitest
â Tests unitaires rapide pour React
-
@testing-library/react
â Tests d’interfaces utilisateur
đ» Frontend (React 19)
đč Core (React 19)
npm install react@19 react-dom@19 react-router-dom@latest
đ Authentification et API
npm install axios react-query
-
axios
â RequĂȘtes API
-
react-query
â Gestion avancĂ©e des requĂȘtes API et cache
đš UI & State Management
npm install tailwindcss zustand
-
tailwindcss
â Styling rapide et moderne
-
zustand
â Gestion simple de l’Ă©tat (alternative lĂ©gĂšre Ă Redux)
đŠ Formulaires & Validation
npm install react-hook-form yup
-
react-hook-form
â Gestion des formulaires efficace
-
yup
â Validation des formulaires cĂŽtĂ© frontend
đ Tables et UI
npm install @tanstack/react-table @headlessui/react
-
@tanstack/react-table
â Gestion avancĂ©e des tables (data tables)
-
@headlessui/react
â Composants UI accessibles (dropdown, modals, etc.)
đ§Ș Tests
npm install vitest @testing-library/react
-
vitest
â Tests unitaires rapide pour React
-
@testing-library/react
â Tests d’interfaces utilisateur
đ„ïž UML ((Unified Modeling Language)
Pourquoi  ?
â
Clarifier et organiser le projet d’App
â
DĂ©tecter les eventuelles erreurs avant la creation
â
Documenter le projet
__________
VeilleÂ
UML (Unified Modeling Language) est un langage de modĂ©lisation visuelle utilisĂ© en ingĂ©nierie logicielle pour reprĂ©senter, concevoir et documenter des systĂšmes informatiques. Il permet de structurer et de visualiser les diffĂ©rentes composantes d’un projet sous forme de diagrammes.
Principaux objectifs d’UML :
Faciliter la conception et l’architecture logicielle.
Aider Ă la communication entre les parties prenantes (dĂ©veloppeurs, analystes, clients…).
Documenter le systĂšme pour en assurer la maintenance et l’Ă©volution.
Les types de diagrammes UML :
UML est composé de 14 types de diagrammes, répartis en deux catégories principales :
1. Diagrammes structurels (décrivent la structure statique du systÚme)
Diagramme de classes : représente les classes, leurs attributs, méthodes et relations.
Diagramme dâobjets : montre une instance spĂ©cifique des classes avec leurs valeurs.
Diagramme de composants : illustre la structure et lâorganisation des composants logiciels.
Diagramme de déploiement : décrit la répartition des composants sur le matériel (serveurs, bases de données, etc.).
Diagramme de structure composite : dĂ©taille l’organisation interne dâune classe ou dâun composant.
Diagramme de packages : organise les éléments du systÚme en regroupements logiques.
2. Diagrammes comportementaux (décrivent la dynamique du systÚme)
Diagramme de cas dâutilisation : montre les interactions entre les utilisateurs (acteurs) et le systĂšme.
Diagramme d’activitĂ©s : reprĂ©sente le flux des processus mĂ©tier ou des algorithmes.
Diagramme de séquence : illustre les interactions entre objets sous forme de messages échangés au fil du temps.
Diagramme de communication : met en avant les relations et Ă©changes entre objets.
Diagramme dâĂ©tats-transitions : dĂ©crit les diffĂ©rents Ă©tats d’un objet et leurs transitions.
Diagramme de synchronisation (temps réel) : montre comment les objets interagissent en respectant des contraintes temporelles.
UML est trĂšs utilisĂ© dans la modĂ©lisation orientĂ©e objet et peut ĂȘtre combinĂ© avec dâautres mĂ©thodologies comme SCRUM, Agile, et MERISE.
đ„ Diagramme de cas dâutilisation (Use Case Diagram)
—- (Use Case Diagram)
- Montrer les fonctionnalités principales du systÚme
- DĂ©finir les interactions entre les utilisateurs et le systĂšme
đ Diagramme dâactivitĂ© "processus" (Activity Diagram)
—-(Activity Diagram)
Le diagramme dâactivitĂ© reprĂ©sente le flux de travail ou le processus mĂ©tier du systĂšme. Il dĂ©crit les Ă©tapes sĂ©quentielles  dâun processus.
- DĂ©crire le dĂ©roulement dâune action
- Modéliser les décisions, conditions et boucles
- ReprĂ©senter le comportement dynamique dâun systĂšme
đ Dictionnaire Des DonnĂ©es
Introduction :
La base de données sera organisée autour des cinq tables principaux :
- exercices
- entraĂźnements
- plans
- utilisateurs
- rĂŽles
Le schéma initial globale sera composé de 11 tables, chacune aura un but spécifique dans le cadre de ce projet  :
- Gestion des utilisateurs et rĂŽles (users, roles)
- Gestion des contenus (exercises, workouts, plans, pages)
- Association des éléments (workout_exercises, plan_workouts, workout_swim_sets)
- Gestion des fichiers (uploads)
- Détails des series des séances de natation (swim_sets)
Table : exercises
Contient les exercices que les utilisateurs peuvent créer
id  — Identifiant unique de l’exercice
title  — Titre de l’exercice
description  — Description dĂ©taillĂ©e
exercise_level  — Niveau de difficultĂ©
exercise_category  — CatĂ©gorie de l’exercice
upload_id  — ID du fichier uploadĂ© associĂ©Â
user_id  — CrĂ©ateurÂ
created_at — Date de crĂ©ation
updated_at — Date de mise Ă jour
Table : pages
Contient les pages de contenu créées par les admins
id
title
content
page_category
upload_id — ID du fichier uploadĂ© associĂ©
user_id — CrĂ©ateurÂ
created_at
updated_at
Table : plans
Contient les plans d’entraĂźnement
id
title
description
plan_category
user_id — CrĂ©ateur
created_at
updated_at
Table : plan_workouts
Relation entre les plans et les séances
plan_id
workout_idÂ
Table : roles
DĂ©finit les rĂŽles des utilisateurs
id
name
created_at
updated_at
Table : swim_sets
Contient les séries de natation
id
workout_idÂ
exercise_idÂ
set_distance
set_repetition
rest_time
Table : uploads
— GĂšre les fichiers uploadĂ©s
id
filename
path
type
user_idÂ
created_at
updated_at
FOREIGN KEY
Table : users
Contient les informations des utilisateurs
id
role_idÂ
username
password
first_name
last_name
created_at
updated_at
Table : workouts
Contient les sĂ©ances d’entraĂźnement
id
title
description
workout_category
user_idÂ
created_at
updated_at
Table : workout_exercises
Relation entre les séances et les exercices
workout_idÂ
exercise_idÂ
Table : workout_swim_sets
Relation entre les séances et les swim_sets
workout_id
swim_set_id
Table : myliste
Contient les listes personnelles des utilisateurs
id
user_id
title
description
created_at
Table : myliste_items
Stocke les éléments ajoutés dans une liste (exercices, séances, plans)
id
myliste_id  –– Liste Ă laquelle l’Ă©lĂ©ment appartient
item_id — ID de l’exercice, sĂ©ance ou plan
item_type — ENUM(‘exercise’, ‘workout’, ‘plan’)  — Type de l’Ă©lĂ©ment
đ Analyse Des Relations
Les relations One-to-ManyÂ
- users â exercises —  1:N —- One-to-Many — Un utilisateur peut crĂ©er plusieurs exercices.
- users â pages 1:N —- One-to-Many — Un utilisateur peut crĂ©er plusieurs pages.
- users â workouts 1:N —- One-to-Many — Un utilisateur peut crĂ©er plusieurs sĂ©ances d’entraĂźnement.
- users â plans 1:N —- One-to-Many — Un utilisateur peut crĂ©er plusieurs plans d’entraĂźnement.
Les relations Many-to-ManyÂ
- workouts â exercises N:M —- Many-to-Many — Un entraĂźnement peut contenir plusieurs exercices, et un exercice peut ĂȘtre utilisĂ© dans plusieurs entraĂźnements.
- plans â workouts N:M —- Many-to-Many — Un plan peut contenir plusieurs sĂ©ances d’entraĂźnement, et une sĂ©ance peut ĂȘtre dans plusieurs plans.
- myliste â exercises/workouts/plans N:M —- Many-to-Many — Une liste peut contenir plusieurs types d’Ă©lĂ©ments, et un Ă©lĂ©ment peut ĂȘtre dans plusieurs listes.
MCD – PDF —->>MCD_NS_SW_V005
Design – Graphisme
colormind.io
coolors.co
adobe
canva
hunt
palettr
mudcube




