# OHMJ - Harmonie de Montpellier-Jacou Site web de l'Harmonie de Montpellier-Jacou pour la gestion et le partage de partitions de musique. ## Fonctionnalités - **Gestion des partitions** : Ajout, modification et suppression de partitions - **Upload PDF** : Upload de fichiers PDF avec options de watermark (numéro de partition) - **Consultation** : Visualisation des partitions par instrument, pièce et version - **Interface admin** : Tableau de bord pour la gestion du catalogue ## Stack technique - **Frontend** : SvelteKit (Svelte 5, runes) + Tailwind CSS — `partitions/` - **Backend** : PHP 8.5 REST API (sans framework) — `api/`, base `http://localhost:8000` (sans préfixe `/api`) - **Stockage** : Fichiers (PDF) dans le répertoire `legacy/Scores/` (pas de base de données) ## Installation ### Backend ```bash cd api php -c php-upload.ini -S localhost:8000 router.php ``` `-c php-upload.ini` est requis pour l'upload des PDF (64M). L'API répond sur `http://localhost:8000`. ### Frontend ```bash cd partitions npm install npm run dev # http://localhost:5173 npm run build # génère partitions/build ``` Le site déployé est exposé via le lien symbolique `frontend -> partitions/build`. ## Tests Tout en une commande (backend + couverture + frontend) : ```bash ./test.sh ``` Détail manuel : ```bash cd api rm -f /tmp/rate_* 2>/dev/null php tests.php # attendu : 181/181 ``` Frontend (serveurs API + dev lancés) : ```bash cd partitions npm run check # svelte-check : 0 erreur / 0 warning npm run test:e2e # smoke E2E navigateur (CDP) ``` ## Déploiement ```bash ./deploy/deploy.sh ``` Le build frontend doit être présent dans `frontend/`. `legacy/` et `api/tests.php` ne sont pas inclus dans l'archive. ## Documentation - [`AGENTS.md`](AGENTS.md) — guide de développement (stack, commandes, conventions) - [`NAMING.md`](NAMING.md) — convention des noms de partitions (`legacy/Scores`) - [`api/README.md`](api/README.md) — documentation de l'API REST ## Licence GPL v2