🏊🏊♂️🏊♀️
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