# Projet Nukunu Mofiala

Plateforme de gestion scolaire (écoles, élèves, notes, bulletins, paiements, comptes parents, résultats du bac).

## Structure du projet

```
nukunu_mofiala/
├── config/          # Configuration (base de données, constantes, BASE_URL auto)
├── includes/        # Fichiers communs (header, footer, fonctions, auth_check)
├── assets/          # CSS / JS
├── auth/            # Login, logout
├── admin/           # Espace administrateur (notes, bulletins, élèves, classes...)
├── portal/          # Espace parents / élèves / enseignants
├── scripts/         # Scripts internes (bloqués en production)
├── uploads/         # Fichiers uploadés (logos, modèles de bulletin, cartes)
├── cache/           # Cache des exports
├── vendor/          # Dépendances Composer (dompdf, mpdf)
├── index.php        # Point d'entrée
└── database.sql     # Dump complet de la base (importable)
```

## Prérequis

- PHP 8.0+ avec extensions `pdo_mysql`, `gd`, `mbstring`, `zip` (nécessaires pour les PDF et les images)
- MySQL 5.7+ / MariaDB 10.3+
- Apache avec `mod_rewrite` (utilisé par `.htaccess`)

## Installation locale (XAMPP / WAMP)

1. Placer le dossier dans `htdocs` (ex. `C:\xampp\htdocs\nukunu_mofiala`)
2. Créer la base `nukunu_mofiala` dans phpMyAdmin
3. Importer `database.sql` (encodage UTF-8)
4. Adapter `config/database.php` si vos identifiants diffèrent de `root` / mot de passe vide
5. Accéder via `http://localhost/nukunu_mofiala/`

L'application détecte automatiquement la racine ou le sous-dossier : aucune variable `BASE_URL` à modifier.

## Déploiement sur serveur distant

1. **Base de données** : créer la base et importer `database.sql` (via phpMyAdmin ou `mysql < database.sql`)
2. **Identifiants** : dans `config/database.php`, remplacer `DB_USER` et `DB_PASS`, et (si besoin) `DB_HOST` et `DB_NAME`
3. **Envoyer les fichiers** par FTP/SFTP : `index.php`, `config/`, `includes/`, `assets/`, `auth/`, `admin/`, `portal/`, `vendor/`, `scripts/`, `uploads/`, `cache/`, `.htaccess`
4. **Ne PAS uploader** : `database.sql`, `database_legacy.sql`, `composer.lock`, `README.md` (ils sont de toute façon bloqués par `.htaccess` si présents)
5. **Permissions** : donner l'écriture à `uploads/` et `cache/` (ex. `chmod 775`)
6. **Mode production** : définir la variable d'environnement `APP_ENV=production` (ex. dans la config PHP du serveur, `.htaccess` via `SetEnv`, ou le gestionnaire d'hébergement). Les erreurs techniques détaillées seront alors masquées aux visiteurs.
7. **HTTPS** : si un certificat SSL est actif, décommenter la redirection HTTPS en haut de `.htaccess`

## Comptes administrateur initiaux

Le compte `super_admin` est présent dans `database.sql` (celui créé lors de l'installation initiale). Modifiez son mot de passe après la première connexion.

## Base de données

- **Nom** : `nukunu_mofiala`
- **Encodage** : `utf8mb4_unicode_ci`

## Notes de sécurité

- Les fichiers sensibles (`database.sql`, `vendor`, scripts de migration) sont bloqués par `.htaccess`
- `X-Frame-Options`, `X-Content-Type-Options` sont appliqués sur toutes les pages
- Cookies de session `HttpOnly` + `SameSite=Strict`, drapeau `Secure` actif automatiquement en HTTPS
- Requêtes SQL : prepared statements (PDO)
