Actualiser README.md

This commit is contained in:
lprik 2025-08-20 08:28:53 +00:00
parent 63fdb055dd
commit b05866042f

247
README.md
View file

@ -1,3 +1,246 @@
# NextcloudSNT # Système Nextcloud SNT - Résumé Complet
Pour envoyer et récupérer activités des élèves via Nextcloud ## 🎯 Objectif Accompli
Système automatisé pour l'enseignement SNT avec Nextcloud gérant **180 élèves** (6 classes × 30 élèves) avec distribution et collecte automatique des devoirs.
## 🏗️ Architecture Finale
### Structure serveur
```
/var/www/html/nextcloud/data/
├── profsnt/files/
│ ├── Modeles_SNT/ # Modèles pour toutes classes
│ │ ├── Sequence1_Introduction_SNT/
│ │ ├── Sequence2_Web/
│ │ └── ... (7 séquences SNT)
│ └── Classes_SNT/ # Rendus par classe
│ ├── 2nde1/Rendus/
│ ├── 2nde2/Rendus/
│ └── ...
└── [eleve]/files/SNT/ # Espace de travail élève
├── Sequence1_Introduction_SNT/
└── ...
```
### Configuration
- **Quotas :** 125MB par élève (optimisé pour 25GB serveur)
- **Groupe :** "eleves" pour gestion centralisée
- **Comptes :** Allégés (sans fichiers par défaut Nextcloud)
- **Sécurité :** Politique mots de passe assouplie (4 caractères minimum)
## 🔧 Scripts Opérationnels
### 1. `setup_complet_snt_v2.sh` - Création des comptes
```bash
# Usage
./setup_complet_snt_v2.sh eleves.csv
# Format CSV
Classe,Nom,Prenom,Email,MotDePasse
2nde1,Martin,Paul,paul.martin@lycee.fr,1234
```
**Fonctions :**
- Création 180 comptes avec mots de passe du CSV
- Ajout au groupe "eleves"
- Quotas 125MB
- Structure SNT/ dans chaque espace élève
- Création Modeles_SNT/ chez prof
- Suppression fichiers par défaut Nextcloud
### 2. `distribution_modeles_v2.sh` - Distribution intelligente
```bash
# Usage
./distribution_modeles_v2.sh # Toutes classes
./distribution_modeles_v2.sh 2nde1 # Classe spécifique
./distribution_modeles_v2.sh 2nde1 csv # Avec CSV custom
```
**Fonctions :**
- Distribue depuis Modeles_SNT/ unique
- Ajoute suffixe `_v0` aux fichiers distribués
- Ne distribue QUE si aucune version n'existe (v0,v1,v2... ou fichier sans version)
- Gère les espaces dans noms de fichiers
- Rescan automatique pour visibilité immédiate
### 3. `collecte_final.sh` - Collecte avec historique
```bash
# Usage
./collecte_final.sh eleves.csv
```
**Fonctions :**
- Collecte fichiers modifiés (30 dernières minutes)
- Historique automatique : v1, v2, v3...
- Anti-doublons MD5 (pas de version si contenu identique)
- Gère tous patterns versions : `_v1`, `v1`, `-v1`, `v1`
- Gestion robuste des espaces dans noms
- Compteur précis des fichiers collectés
### 4. `gestion_comptes.sh` - Administration
```bash
./gestion_comptes.sh lister # Liste comptes + groupe
./gestion_comptes.sh groupe # Infos groupe eleves
./gestion_comptes.sh quota-groupe # Modifier quotas en masse
./gestion_comptes.sh verifier # Vérifier comptes existants
./gestion_comptes.sh nettoyer # Suppression fin d'année
```
## 📊 Workflow de Production
### Setup initial
```bash
1. ./setup_complet_snt_v2.sh eleves_complets.csv
2. Création modèles dans Modeles_SNT/ via interface web
3. ./distribution_modeles_v2.sh
4. Crontab : */30 8-17 * * 1-5 /scripts/collecte_final.sh
```
### Workflow élève
- **Reçoit :** `Exercise_v0.docx` (modèle à conserver)
- **Travaille sur :** `Exercise_v1.docx`, `v2.docx`, etc.
- **Collecte :** Automatique toutes les 30 min
- **Interface :** Épurée (seulement dossier SNT/)
## 🎯 Points Techniques Importants
### Gestion des espaces
- `find -print0` + `IFS= read -r -d ''` pour fichiers avec espaces
- `find` au lieu de glob bash pour détection versions
### Anti-doublons
- Comparaison MD5 avec version précédente
- Évite stockage inutile si contenu identique
### Permissions
- Tous scripts en root (nécessaire pour occ)
- `chown www-data:www-data` systématique après création
- Rescan obligatoire pour visibilité interface
### Format CSV
```csv
Classe,Nom,Prenom,Email,MotDePasse
2nde1,Martin,Paul,paul.martin@lycee.fr,1234
2nde1,Dupont,Sophie,sophie.dupont@lycee.fr,5678
```
## 🔧 Commandes Utiles
### Surveillance système
```bash
# Espace utilisé
du -sh /var/www/html/nextcloud/data/
# Statistiques groupe
sudo -u www-data php /var/www/html/nextcloud/occ group:list-users eleves
# Rescan manuel
sudo -u www-data php /var/www/html/nextcloud/occ files:scan username
# Vérifier quota élève
sudo -u www-data php /var/www/html/nextcloud/occ user:info username
```
### Debug et maintenance
```bash
# Logs Nextcloud
sudo -u www-data php /var/www/html/nextcloud/occ log:tail
# Nettoyer cache
sudo -u www-data php /var/www/html/nextcloud/occ files:cleanup
# Statistiques collecte
find /var/www/html/nextcloud/data/profsnt/files/Classes_SNT -name "*.docx" | wc -l
```
## 📝 Pour Interface Web
### Scripts à interfacer
1. **Setup**
- Upload CSV → Exécution setup → Affichage résultats
- Validation format CSV
- Progression en temps réel
2. **Distribution**
- Sélection classe → Exécution → Statistiques
- Aperçu modèles disponibles
- Logs de distribution
3. **Collecte**
- Bouton collecte manuelle → Résumé fichiers collectés
- Statistiques par classe/élève
- Historique des collectes
4. **Gestion**
- Quotas, stats groupe, nettoyage
- Monitoring espace disque
- Administration groupe élèves
### Variables importantes
```bash
NEXTCLOUD_DATA="/var/www/html/nextcloud/data"
PROF_USERNAME="profsnt"
SCRIPTS_PATH="/scripts/"
NEXTCLOUD_ROOT="/var/www/html/nextcloud"
```
### Résultats à parser
**Compteurs :**
- `(\d+) fichier\(s\) collecté\(s\)` - Nombre fichiers collectés
- `(\d+) fichier\(s\) distribué\(s\)` - Nombre fichiers distribués
- `(\d+) comptes créés` - Nombre comptes créés
**Status :**
- `✅` - Succès
- `❌` - Erreur
- `⚠️` - Avertissement
- `↔️` - Fichier identique (non collecté)
**Messages d'erreur courants :**
- `Unknown user` - Problème utilisateur
- `Permission denied` - Problème permissions
- `No such file` - Fichier/dossier manquant
### API suggestions pour interface
```javascript
// Endpoints
POST /api/setup - Upload CSV + création comptes
GET /api/classes - Liste des classes
POST /api/distribute - Distribution modèles
POST /api/collect - Collecte manuelle
GET /api/stats - Statistiques système
GET /api/logs - Logs en temps réel
```
## 🎓 Système Final Validé
### Fonctionnalités opérationnelles
- ✅ **180 élèves** opérationnels
- ✅ **Distribution intelligente** sans doublons
- ✅ **Collecte robuste** avec historique
- ✅ **Gestion des espaces** dans noms fichiers
- ✅ **Anti-doublons MD5** fonctionnel
- ✅ **Interface épurée** élèves
- ✅ **Administration centralisée**
### Capacités système
- **Stockage :** 22,5 GB utilisables (180 × 125MB)
- **Performance :** Collecte 30 min, rescan automatique
- **Robustesse :** Gestion erreurs, anti-doublons, logging
- **Scalabilité :** Extensible à plus de classes
### Sécurité
- **Isolation :** Chaque élève dans son espace
- **Groupe :** Gestion centralisée via groupe "eleves"
- **Quotas :** Limitation espace par utilisateur
- **Permissions :** Contrôle accès granulaire
---