Pour envoyer et récupérer activités des élèves via Nextcloud
Find a file
2025-08-20 08:29:08 +00:00
LICENSE Initial commit 2025-08-20 08:27:50 +00:00
README.md Actualiser README.md 2025-08-20 08:29:08 +00:00

Système Nextcloud SNT - Résumé Complet

🎯 Objectif

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

# 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

# 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

# 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

./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

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

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

# 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

# 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

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

// 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