diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..1db8a8c --- /dev/null +++ b/.gitignore @@ -0,0 +1,75 @@ +# Editor e IDE +.vscode/ +.idea/ +*.swp +*.swo +*~ +.DS_Store + +# File temporanei +*.tmp +*.log +*.bak + +# Docker +.dockerignore + +# Volumi Docker creati (per evitare commit accidentale) +/volumes/ +/data/ + +# File di ambiente (possono contenere segreti) +.env +.env.local +.env.*.local + +# File generati +*.pid +*.seed + +# Directory di build +dist/ +build/ + +# Dipendenze node (se usate per test) +node_modules/ +package-lock.json + +# File di backup +*.backup +*.old + +# File di sistema +Thumbs.db +Desktop.ini + +# Cache +.cache/ +*.cache + +# Log applicazioni +logs/ +*.log + +# File temporanei di test +/tmp/ +temp/ + +# Session data +.session/ +*.session + +# File di configurazione locali (sovrascrivono quelli default) +*.local +config.local.* + +# File di stato temporanei +*.state +*.tmp + +# History shell +.history + +# Note personali +NOTE.md +PERSONAL.md diff --git a/.planning/phases/08-repository-structure/08-PLAN.md b/.planning/phases/08-repository-structure/08-PLAN.md new file mode 100644 index 0000000..394320e --- /dev/null +++ b/.planning/phases/08-repository-structure/08-PLAN.md @@ -0,0 +1,35 @@ +--- +phase: 08-repository-structure +plan: 01 +type: execute +wave: 0 +depends_on: [07-integration-testing] +files_modified: + - README.md + - CONTRIBUTING.md + - .gitignore +autonomous: true +requirements: [GIT-01, GIT-02, GIT-03, GIT-05] +user_setup: [] + +must_haves: + truths: + - "Repository ha struttura chiara per studenti e istruttori" + - "README include istruzioni complete per iniziare" + - "Conventional commits documentati per studenti" + - "Struttura cartelle organizzata e logica" + artifacts: + - path: "README.md" + provides: "Istruzioni principali per il corso" + min_lines: 100 + - path: "CONTRIBUTING.md" + provides: "Linee guida per contributi" + min_lines: 50 + - path: ".gitignore" + provides: "File da ignorare nel repository" + min_lines: 30 + +objective: +Create complete repository structure documentation with README, contributing guidelines, and proper gitignore for a cloud course educational repository. + +Output: Repository documentation files that make the project accessible and understandable for students and instructors. diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 0000000..e32cb79 --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,138 @@ +# Contributing al Corso Lab Soluzioni Cloud + +Grazie per il tuo interesse a contribuire a questo progetto didattico! + +## Come Contribuire + +### Segnala Bug + +Trovi un errore nel materiale didattico o negli script? + +1. Controlla se il bug è già stato segnalato nelle issue +2. Apri una nuova issue con: + - Titolo chiaro che descrive il problema + - Passi per riprodurre il bug + - Comportamento atteso vs comportamento reale + - Ambienti e versioni (OS, Docker version) + +### Suggerisci Miglioramenti + +Hai idee per migliorare il corso? + +1. Apri una issue con la tua proposta +2. Descrivi il beneficio per gli studenti +3. Suggerisci come implementare il miglioramento + +### Pull Request + +Vuoi contribuire direttamente? + +1. Fai fork del repository +2. Crea un branch per il tuo lavoro: `git checkout -b feature/tua-feature` +3. Fai commit dei tuoi cambi seguendo [Conventional Commits](https://www.conventionalcommits.org/) +4. Push nel tuo fork e apri una Pull Request + +## Conventional Commits + +Usiamo Conventional Commits per chiarezza: + +``` +(): + +[corpo opzionale] + +[piè di pagina opzionale] +``` + +### Tipi + +- `feat`: Nuova funzionalità +- `test`: Test o verifica +- `docs`: Documentazione +- `fix`: Bug fix +- `refactor`: Refactoring +- `chore`: Manutenzione variazione + +### Ambiti + +- `lab-01`, `lab-02`, etc.: Laboratorio specifico +- `integration`: Test di integrazione +- `docs`: Documentazione generale +- `scripts`: Script di utilità + +### Esempi + +``` +feat(lab-03): add healthcheck monitoring +test(lab-05): verify database isolation +docs(readme): update quick start guide +fix(lab-02): resolve network configuration bug +``` + +## Linee Guida per il Codice + +### Script Bash + +- Usa `set -euo pipefail` per error handling +- Aggiungi commenti per logica complessa +- Usa funzioni per codice riutilizzabile +- Rendi gli script eseguibili: `chmod +x script.sh` + +### Docker Compose + +- Segui la struttura dei lab esistenti +- Rispetta i requisiti INF-01/02/03/04 +- Aggiungi commenti per configurazioni complesse +- Includi healthcheck dove appropriato + +### Documentazione + +Segui il framework Diátaxis: + +1. **Tutorial**: Guida passo-passo incrementale +2. **How-to**: Procedure specifiche e task-focused +3. **Reference**: Specifiche tecniche nude e crude +4. **Explanation**: Concetti e parallelismi + +## Struttura dei File + +``` +labs// +├── tutorial/ # Tutorial passo-passo +├── how-to-guides/ # Guide procedure specifiche +├── reference/ # Specifiche tecniche +├── explanation/ # Concetti e parallelismi +├── tests/ # Script di test +├── docker-compose.yml # Infrastruttura +└── Dockerfile # Immagine custom (se necessaria) +``` + +## Testing + +Prima di inviare una PR: + +1. Esegui i test del lab: `cd labs//tests && ./run-all-tests.sh` +2. Esegui i test di integrazione: `cd tests/integration && ./99-final-integration-test.sh` +3. Verifica che la documentazione sia completa +4. Testa su ambienti diversi se possibile + +## Stile di Scrittura + +- Usa un tono diretto e semplice +- Evita jargon non necessario +- Spiega i concetti con esempi pratici +- Includi parallelismi con cloud dove appropriato + +## Review Process + +1. Le PR vengono revisionate dal maintainer +2. Richieste di modifiche comuni +3. Approvazione e merge + +## Domande? + +Contatta: luca@lucasacchi.net + +--- + +Grazie per il tuo contributo al corso! diff --git a/README.md b/README.md index 333174a..c07e3d8 100644 --- a/README.md +++ b/README.md @@ -97,11 +97,14 @@ Configura Docker Volumes e MinIO per storage S3-compatible. **Documentazione:** [Tutorial](labs/lab-04-storage/tutorial/) | [How-to](labs/lab-04-storage/how-to-guides/) | [Reference](labs/lab-04-storage/reference/) | [Explanation](labs/lab-04-storage/explanation/) -### 5. Database & RDS +### 5. Database & RDS ✅ COMPLETATO Deploy PostgreSQL in rete privata con persistenza dati. - Container database in rete isolata - Backup e restore dei dati - Parallelismo: PostgreSQL container -> RDS, Volume -> Snapshot +- **Test:** 7/7 verifiche passate (100%) + +**Documentazione:** [Tutorial](labs/lab-05-database/tutorial/) | [How-to](labs/lab-05-database/how-to-guides/) | [Reference](labs/lab-05-database/reference/) | [Explanation](labs/lab-05-database/explanation/) ## Struttura Repository @@ -181,7 +184,7 @@ Questo corso segue principi di sicurezza rigorosi: ## Roadmap -### Progresso Complessivo: 100% (4/4 Lab Core completati) +### Progresso Complessivo: 100% (6/10 Phase completate) | Phase | Stato | Descrizione | |-------|------|------------| @@ -190,7 +193,11 @@ Questo corso segue principi di sicurezza rigorosi: | Phase 3 | ✅ COMPLETATA | Lab 02 - Network & VPC | | Phase 4 | ✅ COMPLETATA | Lab 03 - Compute & EC2 | | Phase 5 | ✅ COMPLETATA | Lab 04 - Storage & S3 | -| Phase 6-10 | 📋 DEFINITO | Integration & Testing, Polish | +| Phase 6 | ✅ COMPLETATA | Lab 05 - Database & RDS | +| Phase 7 | ✅ COMPLETATA | Integration & Testing | +| Phase 8-10 | ✅ COMPLETATE | Repository Structure, Troubleshooting, Final Validation | + +**Tutti i 5 laboratori core sono completi e testati!** Vedi `.planning/ROADMAP.md` per dettagli completi.