LiftLog è un'app web in PHP pensata per la gestione di esercizi, schede di allenamento e utenti (staff/istruttori e clienti).
Questa applicazione permette di:
- Sfogliare il catalogo di esercizi
- Cercare esercizi per parola chiave
- Creare e gestire schede di allenamento (workout) per utente
- Autenticazione utenti (clienti e dipendenti)
L'interfaccia è costruita con HTML/CSS/JS e la logica server è in PHP con un database MySQL fornito tramite lo script SQL palumbo_585006.sql.
- PHP 8.x (progetto testato con PHP 8.1)
- Apache (Dockerfile usa l'immagine
php:8.1-apache) - MySQL 8
- HTML/CSS/Vanilla JS per il frontend
- Docker & Docker Compose (consigliato per avviare rapidamente l'app completa) oppure
- Un ambiente LAMP con PHP >= 8, Apache/Nginx e MySQL
- Costruire ed avviare i servizi (nella root del progetto):
docker compose up --build -d- Aprire il browser su http://localhost:8080
Il docker-compose.yml incluso crea due servizi: web (PHP/Apache) e db (MySQL). Il file SQL palumbo_585006.sql è montato come script di inizializzazione per il container MySQL.
Nota: per far sì che l'app PHP usi le credenziali/il nome del database forniti dal servizio db potresti voler passare delle variabili d'ambiente al servizio web. Un esempio minimo (da aggiungere sotto web: in docker-compose.yml):
environment:
- DB_HOST=db
- DB_USER=liftuser
- DB_PASSWORD=liftpass
- DB_NAME=liftlogIl file php/util/dbConfig.php legge le variabili d'ambiente DB_HOST, DB_USER, DB_PASSWORD e DB_NAME se presenti; altrimenti usa dei valori di fallback.
- Creare un database MySQL e importare lo schema:
# esempio con client mysql
mysql -u root -p
CREATE DATABASE liftlog CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
exit
mysql -u root -p liftlog < palumbo_585006.sql- Configurare le credenziali del DB per l'app:
- Modificare
php/util/dbConfig.phpoppure esportare le variabili d'ambiente richieste prima di lanciare il server PHP/Apache:
export DB_HOST=localhost
export DB_USER=tuo_utente
export DB_PASSWORD=la_tua_password
export DB_NAME=liftlog- Copiare i file sotto la root del tuo webserver (es.
/var/www/html) e avviare Apache/PHP.
index.php— pagina principale / entrypointphp/— backend PHPphp/util/— funzioni di utilità e accesso DB (es.liftLogDbManager.php,exerciseManagerDb.php,dbConfig.php)php/ajax/— endpoint AJAXphp/config.php— costanti di percorso
css/— stilijs/— script clientimg/— immagini (suddivise per categorie di esercizi e dipendenti)palumbo_585006.sql— dump / script di inizializzazione del databaseDockerfileedocker-compose.yml— setup Docker
Il database viene inizializzato dal file palumbo_585006.sql se si usa Docker Compose (è montato in /docker-entrypoint-initdb.d/init.sql).
In esecuzione manuale, assicurati di importare palumbo_585006.sql nel database scelto e di aggiornare le variabili d'ambiente o php/util/dbConfig.php in modo che punti al database corretto.
- Registrati o effettua il login dalla pagina principale
- Cerca esercizi dalla dashboard o crea una nuova scheda di allenamento
- Gli utenti hanno il campo
dipendenteper distinguere trainer e clienti. I trainer compaiono nella sezione "Chi siamo" della homepage.
- Connessioni DB:
php/util/liftLogDbManager.phpespone metodi per query/preparazione e protegge dagli injection tramitereal_escape_stringe query preparate. - Password: le password vengono memorizzate come SHA2(?, 512) (attenzione: per produzione è consigliabile usare password hashing moderni come
password_hash()/ bcrypt/argon2).
- Migrare l'hashing delle password a
password_hash()/password_verify(). - Aggiungere un sistema di configurazione centralizzato (es. file
.env+ caricamento sicuro) e non lasciare credenziali hard-coded. - Aggiungere test automatici e CI.