🏊🏊‍♂️🏊‍♀️

NS’App v1.0

🛠️ 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

📦 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.

📦 Arborescence

🗂 app/
🗂🗂 Http
🗂🗂 🗂 Controllers/
🗂 🗂 🗂 🗂 Api/
📝 ⚙ RoleController.php
📝 ⚙ UserController.php
📝 ⚙ UploadController.php
📝 ⚙ PageController.php
📝 ⚙ ExerciseController.php
📝 ⚙ PlanController.php
📝 ⚙ WorkoutController.php
📝 ⚙ MylistController.php
📝 ⚙ SwimSetController.php
📝 ⚙ PlanWorkoutController.php
📝 ⚙ WorkoutExerciseController.php
📝 ⚙ WorkoutSwimSetController.php
📝 ⚙ MylistItemController.php
🗂🗂🗂 Models/
📝 ⚙ Role.php
📝 ⚙ ser.php
📝 ⚙ Upload.php
📝 ⚙ Page.php
📝 ⚙ Exercise.php
📝 ⚙ Plan.php
📝 ⚙ Workout.php
📝 ⚙ Mylist.php
📝 ⚙ SwimSet.php
📝 ⚙ MylistItem.php
🗂 database/
🗂🗂 migrations/
🗂🗂 seeders/
🗂 routes/
📝 ⚙ api.php
📝 .env