You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
415 lines
14 KiB
415 lines
14 KiB
<!--
|
|
CO_OP_TRANSLATOR_METADATA:
|
|
{
|
|
"original_hash": "a362efd06d64d4134a0cfe8515a86d34",
|
|
"translation_date": "2025-10-03T11:25:36+00:00",
|
|
"source_file": "AGENTS.md",
|
|
"language_code": "it"
|
|
}
|
|
-->
|
|
# AGENTS.md
|
|
|
|
## Panoramica del Progetto
|
|
|
|
Questo è un repository di curriculum educativo per insegnare i fondamenti dello sviluppo web ai principianti. Il curriculum è un corso completo di 12 settimane sviluppato dai Microsoft Cloud Advocates, con 24 lezioni pratiche che coprono JavaScript, CSS e HTML.
|
|
|
|
### Componenti Principali
|
|
|
|
- **Contenuti Educativi**: 24 lezioni strutturate organizzate in moduli basati su progetti
|
|
- **Progetti Pratici**: Terrarium, Gioco di Scrittura, Estensione per Browser, Gioco Spaziale, App Bancaria, Editor di Codice e Assistente Chat AI
|
|
- **Quiz Interattivi**: 48 quiz con 3 domande ciascuno (valutazioni pre/post lezione)
|
|
- **Supporto Multilingue**: Traduzioni automatiche in oltre 50 lingue tramite GitHub Actions
|
|
- **Tecnologie**: HTML, CSS, JavaScript, Vue.js 3, Vite, Node.js, Express, Python (per progetti AI)
|
|
|
|
### Architettura
|
|
|
|
- Repository educativo con struttura basata su lezioni
|
|
- Ogni cartella di lezione contiene README, esempi di codice e soluzioni
|
|
- Progetti indipendenti in directory separate (quiz-app, vari progetti delle lezioni)
|
|
- Sistema di traduzione tramite GitHub Actions (co-op-translator)
|
|
- Documentazione servita tramite Docsify e disponibile in formato PDF
|
|
|
|
## Comandi di Configurazione
|
|
|
|
Questo repository è principalmente destinato al consumo di contenuti educativi. Per lavorare con progetti specifici:
|
|
|
|
### Configurazione del Repository Principale
|
|
|
|
```bash
|
|
git clone https://github.com/microsoft/Web-Dev-For-Beginners.git
|
|
cd Web-Dev-For-Beginners
|
|
```
|
|
|
|
### Configurazione dell'App Quiz (Vue 3 + Vite)
|
|
|
|
```bash
|
|
cd quiz-app
|
|
npm install
|
|
npm run dev # Start development server
|
|
npm run build # Build for production
|
|
npm run lint # Run ESLint
|
|
```
|
|
|
|
### API del Progetto Bancario (Node.js + Express)
|
|
|
|
```bash
|
|
cd 7-bank-project/api
|
|
npm install
|
|
npm start # Start API server
|
|
npm run lint # Run ESLint
|
|
npm run format # Format with Prettier
|
|
```
|
|
|
|
### Progetti di Estensione per Browser
|
|
|
|
```bash
|
|
cd 5-browser-extension/solution
|
|
npm install
|
|
# Follow browser-specific extension loading instructions
|
|
```
|
|
|
|
### Progetti del Gioco Spaziale
|
|
|
|
```bash
|
|
cd 6-space-game/solution
|
|
npm install
|
|
# Open index.html in browser or use Live Server
|
|
```
|
|
|
|
### Progetto Chat (Backend Python)
|
|
|
|
```bash
|
|
cd 9-chat-project/solution/backend/python
|
|
pip install openai
|
|
# Set GITHUB_TOKEN environment variable
|
|
python api.py
|
|
```
|
|
|
|
## Flusso di Lavoro per lo Sviluppo
|
|
|
|
### Per i Contributori di Contenuti
|
|
|
|
1. **Fork del repository** sul tuo account GitHub
|
|
2. **Clona il tuo fork** localmente
|
|
3. **Crea un nuovo branch** per le tue modifiche
|
|
4. Apporta modifiche ai contenuti delle lezioni o agli esempi di codice
|
|
5. Testa le modifiche al codice nelle directory dei progetti pertinenti
|
|
6. Invia pull request seguendo le linee guida per i contributi
|
|
|
|
### Per gli Studenti
|
|
|
|
1. Fai il fork o clona il repository
|
|
2. Naviga nelle directory delle lezioni in ordine sequenziale
|
|
3. Leggi i file README di ogni lezione
|
|
4. Completa i quiz pre-lezione su https://ff-quizzes.netlify.app/web/
|
|
5. Lavora sugli esempi di codice nelle cartelle delle lezioni
|
|
6. Completa gli esercizi e le sfide
|
|
7. Fai i quiz post-lezione
|
|
|
|
### Sviluppo Live
|
|
|
|
- **Documentazione**: Esegui `docsify serve` nella root (porta 3000)
|
|
- **App Quiz**: Esegui `npm run dev` nella directory quiz-app
|
|
- **Progetti**: Usa l'estensione Live Server di VS Code per progetti HTML
|
|
- **Progetti API**: Esegui `npm start` nelle directory API pertinenti
|
|
|
|
## Istruzioni per il Testing
|
|
|
|
### Testing dell'App Quiz
|
|
|
|
```bash
|
|
cd quiz-app
|
|
npm run lint # Check for code style issues
|
|
npm run build # Verify build succeeds
|
|
```
|
|
|
|
### Testing dell'API Bancaria
|
|
|
|
```bash
|
|
cd 7-bank-project/api
|
|
npm run lint # Check for code style issues
|
|
node server.js # Verify server starts without errors
|
|
```
|
|
|
|
### Approccio Generale al Testing
|
|
|
|
- Questo è un repository educativo senza test automatizzati completi
|
|
- Il testing manuale si concentra su:
|
|
- Esecuzione degli esempi di codice senza errori
|
|
- Funzionamento corretto dei link nella documentazione
|
|
- Completamento con successo delle build dei progetti
|
|
- Conformità degli esempi alle migliori pratiche
|
|
|
|
### Controlli Pre-invio
|
|
|
|
- Esegui `npm run lint` nelle directory con package.json
|
|
- Verifica che i link markdown siano validi
|
|
- Testa gli esempi di codice nel browser o in Node.js
|
|
- Controlla che le traduzioni mantengano la struttura corretta
|
|
|
|
## Linee Guida per lo Stile del Codice
|
|
|
|
### JavaScript
|
|
|
|
- Usa sintassi moderna ES6+
|
|
- Segui le configurazioni standard di ESLint fornite nei progetti
|
|
- Usa nomi di variabili e funzioni significativi per chiarezza educativa
|
|
- Aggiungi commenti che spiegano i concetti agli studenti
|
|
- Formatta usando Prettier dove configurato
|
|
|
|
### HTML/CSS
|
|
|
|
- Elementi semantici HTML5
|
|
- Principi di design responsive
|
|
- Convenzioni chiare per la denominazione delle classi
|
|
- Commenti che spiegano le tecniche CSS agli studenti
|
|
|
|
### Python
|
|
|
|
- Linee guida di stile PEP 8
|
|
- Esempi di codice chiari ed educativi
|
|
- Suggerimenti di tipo dove utili per l'apprendimento
|
|
|
|
### Documentazione Markdown
|
|
|
|
- Gerarchia chiara dei titoli
|
|
- Blocchi di codice con specifica del linguaggio
|
|
- Link a risorse aggiuntive
|
|
- Screenshot e immagini nelle directory `images/`
|
|
- Testo alternativo per immagini per l'accessibilità
|
|
|
|
### Organizzazione dei File
|
|
|
|
- Lezioni numerate in ordine sequenziale (1-getting-started-lessons, 2-js-basics, ecc.)
|
|
- Ogni progetto ha directory `solution/` e spesso `start/` o `your-work/`
|
|
- Immagini archiviate nelle cartelle `images/` specifiche per le lezioni
|
|
- Traduzioni nella struttura `translations/{language-code}/`
|
|
|
|
## Build e Deployment
|
|
|
|
### Deployment dell'App Quiz (Azure Static Web Apps)
|
|
|
|
L'app quiz è configurata per il deployment su Azure Static Web Apps:
|
|
|
|
```bash
|
|
cd quiz-app
|
|
npm run build # Creates dist/ folder
|
|
# Deploys via GitHub Actions workflow on push to main
|
|
```
|
|
|
|
Configurazione di Azure Static Web Apps:
|
|
- **Posizione dell'app**: `/quiz-app`
|
|
- **Posizione dell'output**: `dist`
|
|
- **Workflow**: `.github/workflows/azure-static-web-apps-ashy-river-0debb7803.yml`
|
|
|
|
### Generazione del PDF della Documentazione
|
|
|
|
```bash
|
|
npm install # Install docsify-to-pdf
|
|
npm run convert # Generate PDF from docs
|
|
```
|
|
|
|
### Documentazione Docsify
|
|
|
|
```bash
|
|
npm install -g docsify-cli # Install Docsify globally
|
|
docsify serve # Serve on localhost:3000
|
|
```
|
|
|
|
### Build Specifiche per i Progetti
|
|
|
|
Ogni directory di progetto può avere il proprio processo di build:
|
|
- Progetti Vue: `npm run build` crea bundle di produzione
|
|
- Progetti statici: Nessun passaggio di build, servire direttamente i file
|
|
|
|
## Linee Guida per le Pull Request
|
|
|
|
### Formato del Titolo
|
|
|
|
Usa titoli chiari e descrittivi che indicano l'area di modifica:
|
|
- `[Quiz-app] Aggiungi nuovo quiz per la lezione X`
|
|
- `[Lesson-3] Correggi errore di battitura nel progetto terrarium`
|
|
- `[Translation] Aggiungi traduzione in spagnolo per la lezione 5`
|
|
- `[Docs] Aggiorna istruzioni di configurazione`
|
|
|
|
### Controlli Richiesti
|
|
|
|
Prima di inviare una PR:
|
|
|
|
1. **Qualità del Codice**:
|
|
- Esegui `npm run lint` nelle directory dei progetti interessati
|
|
- Correggi tutti gli errori e avvisi di linting
|
|
|
|
2. **Verifica della Build**:
|
|
- Esegui `npm run build` se applicabile
|
|
- Assicurati che non ci siano errori di build
|
|
|
|
3. **Validazione dei Link**:
|
|
- Testa tutti i link markdown
|
|
- Verifica che i riferimenti alle immagini funzionino
|
|
|
|
4. **Revisione dei Contenuti**:
|
|
- Controlla ortografia e grammatica
|
|
- Assicurati che gli esempi di codice siano corretti ed educativi
|
|
- Verifica che le traduzioni mantengano il significato originale
|
|
|
|
### Requisiti per i Contributi
|
|
|
|
- Accetta il Microsoft CLA (controllo automatico alla prima PR)
|
|
- Segui il [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/)
|
|
- Consulta [CONTRIBUTING.md](./CONTRIBUTING.md) per linee guida dettagliate
|
|
- Riferisci i numeri delle issue nella descrizione della PR, se applicabile
|
|
|
|
### Processo di Revisione
|
|
|
|
- Le PR vengono revisionate dai manutentori e dalla comunità
|
|
- La chiarezza educativa è prioritaria
|
|
- Gli esempi di codice devono seguire le migliori pratiche attuali
|
|
- Le traduzioni vengono revisionate per accuratezza e adeguatezza culturale
|
|
|
|
## Sistema di Traduzione
|
|
|
|
### Traduzione Automatica
|
|
|
|
- Utilizza GitHub Actions con il workflow co-op-translator
|
|
- Traduce automaticamente in oltre 50 lingue
|
|
- File sorgente nelle directory principali
|
|
- File tradotti nella struttura `translations/{language-code}/`
|
|
|
|
### Aggiunta di Miglioramenti Manuali alle Traduzioni
|
|
|
|
1. Trova il file in `translations/{language-code}/`
|
|
2. Apporta miglioramenti preservando la struttura
|
|
3. Assicurati che gli esempi di codice rimangano funzionali
|
|
4. Testa eventuali contenuti localizzati dei quiz
|
|
|
|
### Metadata delle Traduzioni
|
|
|
|
I file tradotti includono un'intestazione di metadata:
|
|
```markdown
|
|
<!--
|
|
CO_OP_TRANSLATOR_METADATA:
|
|
{
|
|
"original_hash": "...",
|
|
"translation_date": "...",
|
|
"source_file": "...",
|
|
"language_code": "..."
|
|
}
|
|
-->
|
|
```
|
|
|
|
## Debugging e Risoluzione dei Problemi
|
|
|
|
### Problemi Comuni
|
|
|
|
**L'app quiz non si avvia**:
|
|
- Controlla la versione di Node.js (v14+ raccomandata)
|
|
- Elimina `node_modules` e `package-lock.json`, esegui di nuovo `npm install`
|
|
- Controlla conflitti di porta (default: Vite usa la porta 5173)
|
|
|
|
**Il server API non si avvia**:
|
|
- Verifica che la versione di Node.js soddisfi il minimo (node >=10)
|
|
- Controlla se la porta è già in uso
|
|
- Assicurati che tutte le dipendenze siano installate con `npm install`
|
|
|
|
**L'estensione per browser non si carica**:
|
|
- Verifica che manifest.json sia formattato correttamente
|
|
- Controlla la console del browser per errori
|
|
- Segui le istruzioni specifiche del browser per l'installazione dell'estensione
|
|
|
|
**Problemi con il progetto chat Python**:
|
|
- Assicurati che il pacchetto OpenAI sia installato: `pip install openai`
|
|
- Verifica che la variabile di ambiente GITHUB_TOKEN sia impostata
|
|
- Controlla i permessi di accesso ai modelli GitHub
|
|
|
|
**Docsify non serve i documenti**:
|
|
- Installa docsify-cli globalmente: `npm install -g docsify-cli`
|
|
- Esegui dalla directory root del repository
|
|
- Controlla che `docs/_sidebar.md` esista
|
|
|
|
### Consigli per l'Ambiente di Sviluppo
|
|
|
|
- Usa VS Code con l'estensione Live Server per progetti HTML
|
|
- Installa le estensioni ESLint e Prettier per formattazione coerente
|
|
- Usa gli strumenti di sviluppo del browser per il debugging JavaScript
|
|
- Per progetti Vue, installa l'estensione Vue DevTools per il browser
|
|
|
|
### Considerazioni sulle Prestazioni
|
|
|
|
- Il gran numero di file tradotti (oltre 50 lingue) rende i cloni completi molto grandi
|
|
- Usa il clone superficiale se lavori solo sui contenuti: `git clone --depth 1`
|
|
- Escludi le traduzioni dalle ricerche quando lavori sui contenuti in inglese
|
|
- I processi di build possono essere lenti al primo avvio (npm install, build Vite)
|
|
|
|
## Considerazioni sulla Sicurezza
|
|
|
|
### Variabili di Ambiente
|
|
|
|
- Le chiavi API non devono mai essere commesse nel repository
|
|
- Usa file `.env` (già in `.gitignore`)
|
|
- Documenta le variabili di ambiente richieste nei README dei progetti
|
|
|
|
### Progetti Python
|
|
|
|
- Usa ambienti virtuali: `python -m venv venv`
|
|
- Mantieni aggiornate le dipendenze
|
|
- I token GitHub devono avere i permessi minimi richiesti
|
|
|
|
### Accesso ai Modelli GitHub
|
|
|
|
- Sono richiesti Personal Access Tokens (PAT) per i modelli GitHub
|
|
- I token devono essere archiviati come variabili di ambiente
|
|
- Non commettere mai token o credenziali
|
|
|
|
## Note Aggiuntive
|
|
|
|
### Pubblico Target
|
|
|
|
- Principianti assoluti nello sviluppo web
|
|
- Studenti e autodidatti
|
|
- Insegnanti che utilizzano il curriculum in aula
|
|
- I contenuti sono progettati per l'accessibilità e la costruzione graduale delle competenze
|
|
|
|
### Filosofia Educativa
|
|
|
|
- Approccio basato su progetti
|
|
- Verifiche frequenti delle conoscenze (quiz)
|
|
- Esercizi di codifica pratici
|
|
- Esempi di applicazioni reali
|
|
- Focus sui fondamenti prima dei framework
|
|
|
|
### Manutenzione del Repository
|
|
|
|
- Comunità attiva di studenti e contributori
|
|
- Aggiornamenti regolari alle dipendenze e ai contenuti
|
|
- Issue e discussioni monitorate dai manutentori
|
|
- Aggiornamenti delle traduzioni automatizzati tramite GitHub Actions
|
|
|
|
### Risorse Correlate
|
|
|
|
- [Moduli Microsoft Learn](https://docs.microsoft.com/learn/)
|
|
- [Risorse Student Hub](https://docs.microsoft.com/learn/student-hub/)
|
|
- [GitHub Copilot](https://marketplace.visualstudio.com/items?itemName=GitHub.copilot) raccomandato per gli studenti
|
|
- Corsi aggiuntivi: Generative AI, Data Science, ML, curricula IoT disponibili
|
|
|
|
### Lavorare con Progetti Specifici
|
|
|
|
Per istruzioni dettagliate sui singoli progetti, consulta i file README in:
|
|
- `quiz-app/README.md` - Applicazione quiz Vue 3
|
|
- `7-bank-project/README.md` - Applicazione bancaria con autenticazione
|
|
- `5-browser-extension/README.md` - Sviluppo di estensioni per browser
|
|
- `6-space-game/README.md` - Sviluppo di giochi basati su Canvas
|
|
- `9-chat-project/README.md` - Progetto assistente chat AI
|
|
|
|
### Struttura Monorepo
|
|
|
|
Sebbene non sia un monorepo tradizionale, questo repository contiene più progetti indipendenti:
|
|
- Ogni lezione è autonoma
|
|
- I progetti non condividono dipendenze
|
|
- Lavora su progetti individuali senza influenzare gli altri
|
|
- Clona l'intero repository per l'esperienza completa del curriculum
|
|
|
|
---
|
|
|
|
**Disclaimer (Avvertenza)**:
|
|
Questo documento è stato tradotto utilizzando il servizio di traduzione automatica [Co-op Translator](https://github.com/Azure/co-op-translator). Sebbene ci impegniamo per garantire l'accuratezza, si prega di notare che le traduzioni automatiche possono contenere errori o imprecisioni. Il documento originale nella sua lingua madre dovrebbe essere considerato la fonte autorevole. Per informazioni critiche, si consiglia una traduzione professionale umana. Non siamo responsabili per eventuali incomprensioni o interpretazioni errate derivanti dall'uso di questa traduzione. |