# Suivi des notes — Cours optionnel

Site de gestion des notes (SQL/PHP + HTML/CSS/JS/AJAX) : login enseignants,
gestion des élèves et des groupes, saisie des notes de séance et de projet,
calcul des moyennes, espace élève en lecture seule, historique par année scolaire.

## 1. Mise en place de la base de données

1. Créez une base MySQL/MariaDB et importez `db/schema.sql`.
2. Renseignez vos identifiants dans `config/config.php` (`DB_HOST`, `DB_NAME`, `DB_USER`, `DB_PASS`, `BASE_URL`).
3. Créez une première année scolaire :
   ```sql
   INSERT INTO annees_scolaires (libelle, statut, date_debut, date_fin)
   VALUES ('2026-2027', 'ouverte', '2026-08-17', '2027-07-04');
   ```
4. Créez votre premier compte enseignant (le hash se génère en PHP) :
   ```bash
   php -r "echo password_hash('votre_mot_de_passe', PASSWORD_DEFAULT);"
   ```
   puis :
   ```sql
   INSERT INTO enseignants (nom, prenom, email, mot_de_passe_hash)
   VALUES ('Votre nom', 'Votre prénom', 'vous@exemple.ch', 'LE_HASH_COPIÉ');
   ```
5. (Optionnel) Pré-remplissez le catalogue de métiers :
   ```sql
   INSERT INTO metiers_catalogue (nom) VALUES ('Développeur IA'), ('Créateur de contenu WordPress');
   ```

Une fois connecté·e, créez vos groupes et vos périodes de vacances depuis
la page **Groupes & vacances**.

## 2. Déploiement

- Pointez votre hébergement (PHP 8.1+ recommandé, extension PDO MySQL) sur ce dossier.
- Le point d'entrée est `public/index.php`.
- Aucune dépendance externe (pas de Composer requis) dans cette version.

## 3. Emails

`includes/mailer.php` utilise la fonction `mail()` de PHP par défaut, qui part
souvent en spam ou ne fonctionne pas selon l'hébergeur. **Avant la mise en
production**, remplacez son contenu par un envoi SMTP fiable (ex. PHPMailer
avec les identifiants SMTP de votre hébergeur).

## 4. Charte graphique

Le logo et le favicon sont actuellement chargés directement depuis
mediamatique.ch (hotlinking), et la palette de couleurs dans
`assets/css/style.css` (variables CSS en haut du fichier) est une
approximation — je n'ai pas pu extraire les couleurs et polices exactes du
site depuis mon environnement. Pour finaliser l'identité visuelle :
1. téléchargez le logo et le favicon et placez-les dans un dossier `assets/img/`,
   puis mettez à jour les balises `<img>` et `<link rel="icon">` ;
2. ajustez les variables `--couleur-primaire`, `--couleur-accent`, `--police`
   etc. dans `assets/css/style.css` avec les vraies valeurs de la charte.

## 5. Points volontairement simplifiés (MVP)

- Pas de page dédiée pour ajouter/gérer les comptes enseignants depuis
  l'interface (fonctionnalité annoncée comme peu prioritaire) — à faire par SQL
  ou à développer plus tard sur le même modèle que `ajouter_eleve.php`.
- La note de projet final est une note unique (comme demandé) ; si vous
  souhaitez plus tard scinder "projet" et "entretien oral" avec une
  pondération propre, il suffit d'ajouter une colonne et d'ajuster
  `note_finale_metier()` dans `includes/functions.php`.
- "Semaine ouvrable précédente" = lundi-vendredi de la semaine calendaire
  passée, moins les jours couverts par une période dans `vacances_scolaires`.
  Si aujourd'hui tombe un week-end ou pendant les vacances, le jour est quand
  même affiché pour permettre un rattrapage ponctuel — dites-moi si vous
  préférez un autre comportement.
