Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

20 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SCORM Builder 📹

Applicazione Shiny per generare pacchetti SCORM da video ospitati su SharePoint, con autenticazione Microsoft integrata.

Funzionalità

Autenticazione OAuth Microsoft - Accesso sicuro al tuo account Microsoft
Navigazione SharePoint - Sfoglia siti, document libraries e cartelle
Selezione Batch - Seleziona più video contemporaneamente
Assegnazione Titoli - Assegna titoli personalizzati a ogni video
Generazione SCORM - Crea pacchetti SCORM compatibili SCORM 1.2
Upload Automatico - Carica i SCORM direttamente su SharePoint
Progress Tracking - Monitoraggio in tempo reale delle operazioni

Architettura

L'applicazione segue un'architettura modulare con separazione delle responsabilità:

app.R                          # Orchestratore principale
├── R/
│   ├── mod_auth.R             # Modulo autenticazione OAuth
│   ├── mod_sharepoint_nav.R   # Modulo navigazione SharePoint
│   ├── mod_video_selector.R   # Modulo selezione video e titoli
│   ├── mod_scorm_generator.R  # Modulo generazione SCORM batch
│   ├── fct_scorm.R            # Funzioni SCORM
│   ├── fct_microsoft.R        # Funzioni Microsoft365R
│   ├── fct_validation.R       # Validazioni input
│   └── utils_ui.R             # Helper UI
├── config.yml                 # Configurazione ambiente
├── scorm_template/            # Template SCORM predefinito
└── .Renviron                  # Variabili d'ambiente (non committare!)

Installazione

Prerequisiti

  • R 4.1+
  • Registrazione applicazione su Azure AD
  • Accesso a SharePoint Online

Setup Iniziale

  1. Installa le dipendenze:
renv::restore()
  1. Configura Azure AD:

    • Registra l'app su Azure Portal
    • Abilita le API: Microsoft Graph, SharePoint
    • Crea un secret client
    • Aggiungi redirect URI: http://localhost:3838 (sviluppo) o il tuo URL production
  2. Copia il file .Renviron.example e popola le credenziali:

cp .Renviron.example .Renviron
# Modifica .Renviron con le tue credenziali

Contenuto minimo di .Renviron:

SHINY_CLIENT_SECRET=<your-client-secret>
  1. Aggiorna config.yml con i tuoi valori:
default:
  tenant: "your-tenant-id"
  app: "your-app-id"
  redirect: "http://localhost:3838"

Utilizzo

Avvio Locale

library(shiny)
runApp()

L'applicazione si apre su http://localhost:3838

Flusso Utente

  1. Accedi con il tuo account Microsoft
  2. Seleziona SharePoint - Scegli il sito e il document library
  3. Naviga le cartelle - Esplora le cartelle e seleziona i video
  4. Assegna titoli - Dai un titolo personalizzato a ogni video
  5. Genera SCORM - Crea i pacchetti SCORM (generazione batch)
  6. Carica - Upload automatico su SharePoint (opzionale)

Configurazione Avanzata

Temi Personalizzati

Modifica il tema Bootstrap 5 in app.R:

theme <- bs_theme(
  version = 5,
  preset = "bootstrap",
  primary = "#0d6efd",
  success = "#198754"
)

Ambiente Production (Posit Connect Cloud)

In config.yml:

connect_cloud:
  redirect: "https://your-domain.share.connect.posit.cloud"

Logging

I log sono salvati in scorm_builder.log. Modifica il percorso in app.R:

log <- logger(appenders = file_appender("logs/app.log"))

Struttura dei File

Moduli Shiny (R/mod_*.R)

Ogni modulo contiene una coppia UI + Server:

  • mod_auth_ui() / mod_auth_server() - Gestione token Azure
  • mod_sharepoint_nav_ui() / mod_sharepoint_nav_server() - Navigazione SharePoint
  • mod_video_selector_ui() / mod_video_selector_server() - Selezione e titoli
  • mod_scorm_generator_ui() / mod_scorm_generator_server() - Generazione batch

Funzioni Utility (R/fct_*.R)

  • fct_scorm.R - make_scorm(), make_scorm_batch()
  • fct_microsoft.R - Wrapper Microsoft365R
  • fct_validation.R - Validazione input
  • utils_ui.R - Helper per UI

Troubleshooting

Errore: "Unauthorized"

  • Verifica che il client secret sia corretto
  • Controlla che le API siano abilitate in Azure AD
  • Assicurati che l'app abbia i permessi su SharePoint

I video non vengono caricati

  • Verifica che la cartella contenga file .mp4
  • Controlla i permessi di accesso su SharePoint
  • Dai un'occhiata ai log (scorm_builder.log)

SCORM generati non validi

  • Verifica che il template SCORM sia intatto
  • Controlla che il titolo non contenga caratteri speciali
  • Assicurati che il video sia in formato MP4 valido

Development

Test

# Test delle funzioni fct_*
source("R/fct_validation.R")
validate_title("Mio Corso")

# Test con dati di esempio
devtools::load_all()

Build SCORM

Per generare un SCORM di test:

source("R/fct_scorm.R")
make_scorm(
  video_path = "test_video.mp4",
  title = "Mio Corso di Test",
  scorm_name = "test-course",
  output_dir = getwd()
)

Licenza

Proprietario - Unione Provinciale Istituzioni per l'Assistenza

Contatti

Per supporto: [inserire email di contatto]

Changelog

v1.0 (2026-06-09)

  • 🎉 Release iniziale
  • ✅ Autenticazione Microsoft
  • ✅ Navigazione SharePoint
  • ✅ Generazione SCORM batch
  • ✅ Upload automatico

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages