Cette plateforme est un outil de monitorage en temps réel du développement professionnel des enseignant·es, basé sur des échelles d'évaluation scientifiquement validées. Le système utilise Quarto pour créer un rapport de résultats pour l'enseignant·e et un rapport de résultats pour la direction permettant différentes analyses selon les besoins.
- Générer des rapports détaillés sur le développement professionnel
- Informer pour soutenir la prise de décision
Le système s'articule autour de trois composants :
- Une API LimeSurvey pour la collecte des données
- Un pipeline R pour le traitement et l'analyse
- Un système de reporting Quarto pour communiquer les résultats
L'architecture est basée sur des fichiers de configuration YAML qui définissent :
- Les credentials d'accès (credentials.yml)
- La structure des échelles d'évaluation (scales.yml)
- R (>= 4.2.0)
- RStudio (>= 2023.12.0)
- Quarto (>= 1.4.0)
- Instance LimeSurvey active
install.packages(c(
"tidyverse", # Traitement des données
"yaml", # Lecture des configurations
"limer", # API LimeSurvey
"glue", # Traitement des données
"httr", # Requêtes HTTP (notifications Telegram)
[packages supplémentaires à ajouter]
))
.
├── archive/ # Version précédente du dashboard
├── tools/ # Scripts utilitaires
├── outputs/ # Fichiers générés
├── src/
│ ├── config/
│ │ ├── credentials.yml # Configuration API (non versionné)
│ │ └── scales.yml # Définition des échelles
│ └── lib/
├── data/
│ └── processed/ # Données traitées (format CSV)
├── logs/ # Logs système
├── reporting.qmd # Fichier Quarto principal
└── README.md
- 23 échelles validée scientifiquement
- 65 scores générés
- Copier le template :
cp src/config/credentials.yml.template src/config/credentials.yml
- Remplir avec vos accès :
limesurvey:
api_url: 'URL_API_LIMESURVEY'
username: 'USERNAME'
password: 'PASSWORD'
survey_id: 'SURVEY_ID'
telegram:
bot_token: 'BOT_TOKEN'
chat_id: 'CHAT_ID'
researcher_codes:
- 'CODE1'
- 'CODE2'
flowchart TD
A[LimeSurvey API] -->|connection.R| B[Import brut]
B -->|import.R| C[Standardisation]
C -->|scales.R| D[Calcul des scores]
C -->|demographics.R| E[Traitement démographique]
D --> F[Jointure des données]
E --> F
F -->|main.R| G[Export CSV]
G --> H[Dashboard Quarto]
G -->|Telegram| I[Notification]
H -->|render_notify.R| J[Notification]
Le système intègre des notifications Telegram à deux niveaux :
-
Pipeline de données (main.R)
- Notification du statut d'exécution
- Nombre d'observations traitées
- Temps d'exécution
- Messages d'erreur éventuels
-
Rendu du dashboard (render_notify.R)
- Notification du succès/échec du rendu Quarto
- Redémarrage automatique du serveur Shiny sur Linux
- Créer un bot via @BotFather sur Telegram
- Récupérer le token du bot
- Créer un canal et y ajouter le bot
- Configurer le chat_id dans credentials.yml
flowchart TD
subgraph "connection.R"
A[setup_limesurvey_connection]
end
subgraph "import.R"
B[get_limesurvey_data]
C[standardize_limesurvey_names]
end
subgraph "scales.R"
D[prepare_numeric_responses]
E[process_single_scale]
F[prepare_all_scales_scores]
end
subgraph "demographics.R"
J[process_demographics]
end
subgraph "main.R"
H[main function]
I[log_info]
K[join_data]
end
%% Workflow principal
H -->|"1. Start"| I
I -->|"Log start"| A
A -->|"Success"| B
B -->|"Raw data"| C
C -->|"Standardized data"| F
C -->|"Standardized data"| J
%% Sous-processus scales
F -->|"For each scale"| D
D -->|"Numeric data"| E
E -->|"Scale scores"| F
%% Jointure et finalisation
F -->|"Scale scores"| K
J -->|"Demographics"| K
K -->|"Final data"| H
H -->|"Log & Save"| I
%% Styling
classDef processNode fill:#f9f,stroke:#333,stroke-width:2px
classDef dataNode fill:#bbf,stroke:#333,stroke-width:2px
classDef logNode fill:#bfb,stroke:#333,stroke-width:2px
classDef demoNode fill:#ffd,stroke:#333,stroke-width:2px
class A,B,C,D,E,F processNode
class H dataNode
class I logNode
class J,K demoNode
Les données sont mises à jour automatiquement 3 fois par jour via cronjob sur le serveur qui accueille l'application. L'heure de dernière mise à jour est affichée dans l'interface du dashboard. Chaque mise à jour déclenche :
-
Exécution de main.R
- Collection et traitement des données
- Export des fichiers CSV
- Notification Telegram du statut
-
Exécution de render_notify.R
- Rendu du dashboard Quarto
- Redémarrage du serveur Shiny si nécessaire
- Notification Telegram du statut
Le statut de ces opérations peut être suivi via :
- Les logs dans /logs/process.log
- Les notifications Telegram
- L'interface du dashboard
[à venir]
Pour toute question technique :
- Consulter les logs dans /logs/process.log
- Vérifier la configuration dans /src/config
- Contacter l'équipe chic et choc de développement
Ce projet est sous licence Creative Commons Attribution 4.0 International (CC BY 4.0).