Installation et tests
Prérequis
Section intitulée « Prérequis »PHP 8.3 avec pdo_pgsql, Composer, Node 22 ou plus récent, PostgreSQL 16 avec un rôle pls sans mot de passe sur 127.0.0.1:5432 et deux bases : pls et pls_test.
Première installation
Section intitulée « Première installation »composer install && npm installcp .env.example .env && php artisan key:generatephp artisan migrate:fresh --seednpm run buildphp artisan serveLe seeder crée le catalogue de démonstration, un administrateur (ADMIN_EMAIL / ADMIN_PASSWORD du .env) et trois testeurs invités.
| Adresse | Quoi |
|---|---|
/ |
Site public — oriente vers /ar ou /fr |
/admin |
Back-office |
/docs/api |
Référence interactive de l’API |
/api/v1/catalogue |
L’API elle-même |
/documentation |
Cette documentation |
Pour tester la connexion par code en local, le canal est log : demander un code puis lire storage/logs/laravel.log (ligne « OTP pour … »). Les segments de démonstration n’ont pas de fichier audio : php artisan demo:audios télécharge les trois livres audio de test et les attache à chaque segment, pour une lecture de bout en bout.
php artisan test # la suite complète, sur la base pls_test./vendor/bin/pint # le styleChaque règle du dossier d’architecture a son test, nommé d’après la règle. Deux tests sont des garde-fous transverses : l’un compare le contrat OpenAPI aux routes réelles, l’autre relit tout le code et échoue si une chaîne d’interface n’a pas sa traduction arabe.
Intégration continue
Section intitulée « Intégration continue »Un flux GitHub Actions exécute Pint, la construction de l’interface et la suite de tests sur PostgreSQL 16 à chaque push.
Cette documentation
Section intitulée « Cette documentation »Elle est construite avec Starlight (Astro) dans docs/site et publiée dans public/documentation, d’où l’application la sert.
npm run docs:dev # aperçu avec rechargementnpm run docs:build # construction, recherche compriseLes pages françaises sont dans docs/site/src/content/docs/fr, les arabes dans …/ar, même arborescence. La référence des tables est générée depuis le schéma réel : la régénérer après une migration.