Actualiser README.md
This commit is contained in:
parent
63fdb055dd
commit
b05866042f
1 changed files with 245 additions and 2 deletions
247
README.md
247
README.md
|
|
@ -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
|
||||||
|
|
||||||
|
---
|
||||||
Loading…
Add table
Add a link
Reference in a new issue