Initialisation

🎯 NS’App v1.0

Ce projet vise Ă  crĂ©er une plateforme de gestion des sĂ©ances d’entraĂźnement, avec un tableau de bord administrateur et un espace utilisateur personnalisĂ©.

đŸ”č 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)

    diagrams.net

    —- (Use Case Diagram)

    Schematiser les interactions entre le systĂšme et les utilisateurs (acteurs).
    • 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)

    diagrams.net

    —-(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 :

    1. exercices
    2. entraĂźnements
    3. plans
    4. utilisateurs
    5. 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
    email
    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

    #21cfc6
    #21cfc6

    colormind.io

    #ec4996
    #ec4996

    coolors.co

    #484757
    #484757

    adobe

    #ecf0f3
    #ecf0f3

    canva

    #42a4a8
    #42a4a8

    hunt

    #0175c5
    #0175c5

    palettr

    mudcube