# Guide de Déploiement OVH Starter (Hébergement Web & PHP/MySQL)

Ce projet est conçu **sans aucun framework ni build Node.js**, spécialement pour votre hébergement **OVH Starter** :
- **Frontend** : HTML5 vanilla, CSS3 natif, JavaScript ES6 pur (`index.html`, `style.css`, `app.js`).
- **PWA** : Installable sur écran d'accueil de la tablette ou des smartphones (`manifest.json`, `sw.js`).
- **Backend** : Scripts PHP légers (`api/taches.php`, `api/medicaments.php`, `api/presences.php`, `api/rdv.php`, `api/db.php`).
- **Base de données** : MySQL (`schema.sql`).
- **Cron Minuit** : `cron_minuit.php` pour l'instanciation automatique et l'alerte email en cas de trou de planning J+1/J+2.

---

## 🚀 Étape 1 : Créer la Base de Données MySQL sur OVH
1. Rendez-vous sur votre **Espace Client OVHcloud** : `Hébergements` > `fondamental-app.ovh` > onglet **Bases de données**.
2. Cliquez sur **Créer une base de données**.
3. Notez les informations fournies par OVH :
   - **Adresse du serveur** (ex. : `fondamexxx.mysql.db`)
   - **Nom de la base** (ex. : `fondamexxx`)
   - **Nom d'utilisateur** (ex. : `fondamexxx`)
   - **Mot de passe** que vous avez défini.

---

## 🗄️ Étape 2 : Importer la structure MySQL (`schema.sql`)
1. Dans l'onglet **Bases de données** d'OVH, cliquez sur les trois petits points `...` à droite de votre base > **Accéder à phpMyAdmin**.
2. Connectez-vous avec vos identifiants de base de données.
3. Cliquez sur l'onglet **Importer** en haut.
4. Cliquez sur **Parcourir** et choisissez le fichier `schema.sql`.
5. Cliquez sur **Exécuter** en bas.
6. Toutes les tables (`utilisateurs`, `taches`, `medicaments`, `presences`, `calendrier_rdv`, etc.) sont créées avec la fratrie des 7 enfants et les soins types.

---

## ⚙️ Étape 3 : Renseigner vos identifiants dans `api/db.php`
Ouvrez le fichier `api/db.php` dans un éditeur de texte (ou via le gestionnaire de fichiers OVH) et modifiez ces 5 lignes :

```php
define('DB_HOST', 'VOTRE_SERVEUR.mysql.db');      // Exemple : xxx.mysql.db
define('DB_NAME', 'VOTRE_NOM_DE_BASE');
define('DB_USER', 'VOTRE_UTILISATEUR');
define('DB_PASS', 'VOTRE_MOT_DE_PASSE_MYSQL');
define('ADMIN_EMAIL', 'famille@fondamental-app.ovh'); // Reçoit les alertes de trou de planning
```

---

## 📁 Étape 4 : Transférer les fichiers par FTP (FileZilla ou Cyberduck)
1. Connectez-vous en FTP à votre hébergement OVH (identifiants reçus par email ou dans l'onglet `FTP - SSH`).
2. Rendez-vous dans le dossier **`www`** (le dossier racine de votre site).
3. **Supprimez les anciens fichiers si nécessaire** puis déposez directement tout le contenu :
   ```text
   /www/
   ├── index.html               (Kiosk tablette épuré pour les parents et fratrie)
   ├── admin.html               (Page d'administration dédiée : planning, RDV récurrents, médicaments)
   ├── style.css                (Feuille de styles unifiée jour/nuit)
   ├── app.js                   (Moteur du Kiosk tablette)
   ├── admin.js                 (Moteur de l'espace d'administration)
   ├── manifest.json            (PWA pour tablette)
   ├── sw.js                    (Service worker)
   ├── icon.svg
   ├── cron_minuit.php
   ├── schema.sql               (Schéma complet neuf)
   ├── migration_complete.sql   (Script SQL à exécuter dans phpMyAdmin si tables déjà créées)
   └── api/
       ├── db.php               (Connexion PDO MySQL OVH)
       ├── auth_check.php       (Vérification des droits et rôle admin)
       ├── auth.php             (Connexion et sélection de profil)
       ├── utilisateurs.php     (Gestion des membres et des rôles admin/membre)
       ├── taches.php           (Tâches maîtresses récurrentes et suivi du jour)
       ├── medicaments.php      (Ordonnances et prises quotidiennes)
       ├── presences.php        (Tournante hebdomadaire + dérogations/remplacements)
       ├── rdv.php              (RDV ponctuels et passages récurrents infirmiers/kiné)
       └── diagnostic.php       (Page de vérification de santé)
   ```
4. Testez immédiatement dans votre navigateur :
   - Kiosk tablette : `https://fondamental-app.ovh/`
   - Espace d'administration : `https://fondamental-app.ovh/admin.html` (Code PIN admin par défaut : **1234**)
   - Page diagnostic santé : `https://fondamental-app.ovh/api/diagnostic.php`

---

## 🔐 Rôles et Permissions (Admin vs Membres)
- **👑 Administrateur (ex: PIN 1234) :** Droits complets en écriture. Peut modifier le planning de tournante, déclarer des absences/remplacements, programmer des passages réguliers de soignants (infirmiers, kiné), mettre à jour les ordonnances de médicaments, et ajuster les rôles.
- **👤 Membre (Consultation seule) :** Tout membre de la fratrie peut se connecter avec son nom pour consulter l'intégralité des informations en temps réel sans risque d'altérer la configuration. Les modifications sont verrouillées pour préserver la sécurité des soins.

---

## ⏰ Étape 5 : Activer la Tâche Planifiée (CRON Minuit)
Pour que les tâches et médicaments soient instanciés chaque nuit et que l'alerte email parte si personne n'est de garde demain ou après-demain :
1. Dans votre espace OVH > `Hébergements` > `fondamental-app.ovh` > onglet **Plus (+)** > **Tâches planifiées**.
2. Cliquez sur **Ajouter une planification**.
3. Commande du script : `cron_minuit.php` (ou `./cron_minuit.php`).
4. Version de PHP : **PHP 8.2** ou **PHP 8.1**.
5. Fréquence : **Tous les jours à minuit** (`0 0 * * *`).
6. Validez.
