Progetto di corso per la creazione di un blog completo utilizzando Laravel come backend e Bootstrap per il frontend, con sistema di autenticazione, API REST e pannello di amministrazione.
- Apprendere i fondamenti di Laravel
- Implementare un sistema di autenticazione completo
- Creare CRUD con validation e gestione errori
- Sviluppare API REST con autenticazione JWT
- Utilizzare Bootstrap per interfacce responsive
- Gestire file multimediali con Spatie Media Library
- Comprendere le best practices dello sviluppo web
- PHP >= 8.1
- Composer
- MySQL/MariaDB
- Node.js e NPM
- Git
- Conoscenze base di HTML, CSS, JavaScript e PHP
# Clona il repository
git clone https://github.com/wtechdev/developer-academy-2025.git
cd developer-academy-2025
# Copia il file di configurazione
cp .env.example .env
# Installa le dipendenze PHP
composer installCrea un database chiamato developer_academy_2025 e scegli una delle seguenti opzioni:
Opzione A - Con dati di esempio:
# Importa il dump con dati di test
mysql -u username -p developer_academy_2025 < database/dump/developer_academy_2025.sqlOpzione B - Database vuoto:
# Esegui le migrazioni
php artisan migrateNel file config/logging.php, modifica la configurazione per avere log giornalieri:
'channels' => [
'stack' => [
'driver' => 'stack',
'channels' => ['daily'],
'ignore_exceptions' => false,
],
// ...
],- Template Bootstrap: StartBootstrap Blog Home
- Sistema di paginazione: Bootstrap 5 integrato con Laravel
- Icone: Bootstrap Icons
- Template: Bootstrap Dashboard Example
- Interfaccia amministrativa con sidebar e componenti moderni
- Post: Modello principale per gli articoli del blog
- User: Modello per la gestione utenti
- Relazioni Eloquent: Configurate tra Post e User (hasMany/belongsTo)
Il progetto utilizza due sistemi di layout:
- Frontend Layout: Gestito tramite componenti Blade (
components/layout.blade.php) - Backend Layout: Template tradizionale per dashboard e autenticazione
components/navbar.blade.php- Navigazione frontendcomponents/dashboardnav.blade.php- Navigazione backend
- Pacchetto: Laravel UI
- Customizzazione: Override del metodo logout per redirect al login
- Protezione: Middleware auth per le rotte amministrative
- JWT Token: Implementato con tymondesigns/jwt-auth
- Endpoint Login:
POST /api/login - Protezione API: Bearer token per rotte protette
PostController- Gestione articoliUserController- Gestione utenti- Utilizzo di rotte resource per operazioni CRUD standard
PostRequest- Validazione form articoliUserRequest- Validazione form utenti- Gestione errori con try-catch nei metodi store/update
- Implementato per il modello User
- PossibilitΓ di recupero dati eliminati
- Upload e gestione immagini
- Associazione media ai post
- Ottimizzazione automatica delle immagini
- Creazione link simbolico per rendere disponibili le immagini nel frontend
# Linux e Mac
# posizionarsi nella cartella public del progetto
ln -s ../storage/app/media mediagallery
# Windows
mklink /D mediagallery ..\storage\app\media# Componenti
php artisan make:component layout
php artisan make:component navbar
php artisan make:component dashboardnav
# Database
php artisan make:migration create_post_table
php artisan migrate
# Controllers
php artisan make:controller PostController --resource
php artisan make:controller UserController --resource
# Validation
php artisan make:request PostRequest
php artisan make:request UserRequest- Laravel UI - Autenticazione e scaffolding
- Spatie Media Library - Gestione file multimediali
- JWT Auth - Autenticazione API
- Laravel Lang - Traduzione italiana
POST /api/login?email=user@example.com&password=password
Risposta: Token JWT per le successive chiamate
GET /api/posts
Headers: Authorization: Bearer {token}
Risposta: Lista dei post dell'utente autenticato
- Installazione e configurazione
- Struttura del framework
- Artisan CLI
- Routing e Controllers
- Migrazioni e Schema Builder
- Modelli Eloquent
- Relazioni tra modelli
- Query Builder
- Laravel UI
- Middleware
- Policies e Gates
- Sessioni e Cookie
- Template Blade
- Componenti riutilizzabili
- Asset compilation
- Responsive design
- Form Handling
- Validation
- File Upload
- Pagination
- RESTful APIs
- JWT Authentication
- API Resources
- Error Handling
- Unit Testing
- Feature Testing
- Logging
- Debug Bar
# Inizializza il repository
git init
# Aggiungi remote origin
git remote add origin https://github.com/wtechdev/developer-academy-2025.git
# Primo commit
git add .
git commit -m "Initial commit: Laravel blog setup"
git push -u origin main# Crea branch per nuove feature
git checkout -b feature/user-authentication
git checkout -b feature/post-crud
git checkout -b feature/api-endpoints
# Commit delle modifiche
git add .
git commit -m "Add user authentication system"
# Merge nel branch main
git checkout main
git merge feature/user-authentication
git push origin main- Commit frequenti con messaggi descrittivi
- Branch per feature per sviluppo parallelo
- Pull requests per code review
- Gitignore configurato per Laravel (vendor/, .env, storage/logs/)
# Verifica stato
git status
git log --oneline
# Gestione branch
git branch -a
git checkout -b new-feature
# Sincronizzazione
git pull origin main
git push origin feature-branch
# Rollback
git reset --hard HEAD~1
git revert commit-hash# Ottimizzazione
php artisan config:cache
php artisan route:cache
php artisan view:cache
# Asset compilation
npm run production- Apache/Nginx configuration
- SSL Certificate
- Database optimization
- Caching strategies
Progetto sviluppato per Developer Academy 2025 - Corso completo di sviluppo web con Laravel e Bootstrap.
Nota: Questo progetto Γ¨ a scopo educativo e include esempi pratici di tutte le funzionalitΓ moderne di Laravel.