Aller au contenu

Installation et tests

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.

Fenêtre de terminal
composer install && npm install
cp .env.example .env && php artisan key:generate
php artisan migrate:fresh --seed
npm run build
php artisan serve

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

Fenêtre de terminal
php artisan test # la suite complète, sur la base pls_test
./vendor/bin/pint # le style

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

Un flux GitHub Actions exécute Pint, la construction de l’interface et la suite de tests sur PostgreSQL 16 à chaque push.

Elle est construite avec Starlight (Astro) dans docs/site et publiée dans public/documentation, d’où l’application la sert.

Fenêtre de terminal
npm run docs:dev # aperçu avec rechargement
npm run docs:build # construction, recherche comprise

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