Sistema completo di gestione orari per scuole di musica con interfaccia web user-friendly.
- β 3 Ruoli Utente: Amministratore, Docente, Studente
- β Gestione Completa Corsi con iscrizioni e approvazioni
- β Calendario Lezioni con ricorrenze (settimanali/mensili)
- β Sistema Notifiche via email integrato
- β ID Univoci per facilitare le ricerche
- β Design Responsive con colori personalizzati per ruolo
- β Backend REST API completo in PHP + SQLite
- β Frontend PHP moderno e intuitivo
- PHP >= 7.4
- SQLite3
- curl (per API testing)
# 1. Clone repository
git clone https://github.com/gpdonnarumma/appuntamento.git
cd appuntamento
# 2. Avvia backend (terminale 1)
cd backend
php -S localhost:8000
# 3. Avvia frontend (terminale 2)
cd frontend
php -S localhost:3000
# 4. Apri browser
open http://localhost:3000- Vai su http://localhost:3000
- Clicca "Registrati"
- Scegli un ruolo:
- π« Amministratore per gestire una scuola
- π¨βπ« Docente per insegnare corsi
- π Studente per iscriverti ai corsi
- Compila il form e accedi alla tua dashboard!
- π SUMMARY.md - Panoramica completa del progetto
- π backend/README.md - Documentazione API Backend
- π frontend/README.md - Guida Frontend
- π backend/ARCHITECTURE.md - Architettura dettagliata
- π backend/INSTALL.md - Guida installazione
βββββββββββββββββββββββββββββββββββββββββββββββββββ
β Frontend (PHP) β
β ββββββββββββ ββββββββββββ ββββββββββββ β
β β Admin β β Teacher β β Student β β
β ββββββββββββ ββββββββββββ ββββββββββββ β
βββββββββββββββββββββββββββββββββββββββββββββββββββ
β
β HTTPS/JSON
βΌ
βββββββββββββββββββββββββββββββββββββββββββββββββββ
β Backend REST API (PHP) β
β ββββββββββββββββββββββββββββββββββββββββββββ β
β β Auth β Users β Courses β Lessons β... β β
β ββββββββββββββββββββββββββββββββββββββββββββ β
β β β
β βΌ β
β βββββββββββββββββββ β
β β SQLite DB β β
β β 12 Tabelle β β
β βββββββββββββββββββ β
βββββββββββββββββββββββββββββββββββββββββββββββββββ
- Gestisce la propria scuola
- Approva richieste docenti
- Visualizza tutti gli studenti e docenti
- Accesso completo al calendario lezioni
- ID univoco formato: SC1234ABCD
- Crea e gestisce corsi
- Prenota lezioni (singole o ricorrenti)
- Approva richieste iscrizione studenti
- Scrive note private e assegna obiettivi
- Si iscrive a scuole
- ID univoco formato: ABC12345
- Cerca docenti per ID
- Invia richieste iscrizione
- Visualizza calendario lezioni personalizzato
- Riceve notifiche configurabili
- Vede obiettivi delle lezioni
- ID univoco formato: DEF67890
1. π¨βπ« Docente condivide il suo ID univoco (es: ABC12345)
2. π Studente cerca il docente per ID
3. π Studente visualizza i corsi e invia richiesta
4. π¨βπ« Docente riceve notifica email
5. π¨βπ« Docente approva la richiesta
6. π Studente riceve conferma email
7. β
Studente Γ¨ iscritto al corso!
1. π¨βπ« Docente crea lezione
2. π¨βπ« Seleziona "Ricorrenza: Weekly"
3. π€ Sistema crea 52 lezioni (1 anno)
4. π§ Studente riceve notifica
5. π Studente visualizza tutte le lezioni in calendario
- PHP 7.4+ - Linguaggio server-side
- SQLite - Database leggero e performante
- JWT - Autenticazione token-based
- REST API - Architettura API moderna
- PHP - Server-side rendering
- HTML5/CSS3 - Markup e styling
- JavaScript - Interazioni client-side
- Responsive Design - Mobile-first approach
12 tabelle principali:
users- Utenti (tutti i ruoli)schools- Scuolecourses- Corsilessons- Lezioni (con ricorrenza)course_enrollments- Iscrizioni approvateenrollment_requests- Richieste pendentiteacher_schools- Docenti nelle scuoleteacher_school_requests- Richieste docentistudent_preferences- Preferenze studentenotifications- Notifiche centralizzateavailable_instruments- Strumenti musicalilesson_history- Audit log
- β Password hashate con bcrypt
- β JWT con expiration (7 giorni)
- β SQL Injection prevention (PDO)
- β XSS protection (htmlspecialchars)
- β CSRF protection (session-based)
- β Role-based access control
- β Input validation e sanitization
# Test backend
cd backend
php test_setup.php
# Test API
curl http://localhost:8000
# Test registrazione
curl -X POST http://localhost:8000/api/auth/register.php \
-H "Content-Type: application/json" \
-d '{"email":"test@test.com","password":"test123","user_type":"teacher","first_name":"Mario","last_name":"Rossi","birth_date":"1990-01-01"}'Vedi SUMMARY.md - Test dell'Applicazione
- ~10,000 righe di codice
- 31 API endpoints
- 42 file backend
- 17 file frontend
- 12 tabelle database
- 3 ruoli utente
- 100% funzionale
- 100% documentato
# Backend
sudo cp -r backend /var/www/api
sudo chown -R www-data:www-data /var/www/api
# Frontend
sudo cp -r frontend /var/www/html/musicschool
sudo chown -R www-data:www-data /var/www/html/musicschool
# Enable HTTPS
sudo certbot --apache -d musicschool.com -d api.musicschool.comVedi SUMMARY.md - Deployment per guida completa.
Hai bisogno di aiuto?
- π Leggi la documentazione completa
- π Apri una issue su GitHub
- π¬ Contatta via email
- Upload foto profilo
- Export calendario (iCal)
- Integrazione email provider
- Statistiche avanzate
- Chat docente-studente
- Pagamenti online (Stripe)
- App mobile (PWA)
- Multi-lingua (i18n)
- Video lezioni integrate
- Materiale didattico
- Sistema presenze
- Analytics dashboard
Se ti piace il progetto, lascia una β su GitHub!
Made with β€οΈ for Music Schools
π Documentazione Completa β’ π§ API Docs β’ π¨ Frontend Guide