MyWorkoutPlan è una piattaforma web che mette in contatto Coach e Utenti, permettendo ai coach di creare schede di allenamento su misura per i propri clienti e di gestire l'intera relazione professionale: abbonamenti, appuntamenti, messaggistica e recensioni, tutto in un unico posto.
MyWorkoutPlan offre due tipi di account, Utente e Coach, ciascuno con funzionalità dedicate.
- Autenticazione e profili — registrazione/login con sessione, profili utente con foto, descrizione e (per i coach) specializzazioni, valutazione media e link social.
- Schede di allenamento — i coach creano piani di allenamento personalizzati per i propri clienti, con esercizi, serie, ripetizioni, peso consigliato e tempi di recupero.
- Tracciamento dei progressi — gli utenti possono annotare durante l'allenamento le serie e i pesi effettivamente svolti, consultare lo storico completo delle sessioni e visualizzare l'andamento dei progressi nei mesi tramite grafici.
- Pacchetti e abbonamenti — i coach definiscono pacchetti di servizi (chat, appuntamenti, schede di allenamento) con prezzo e durata; gli utenti possono sottoscriverli.
- Appuntamenti — sistema di prenotazione per sessioni tra coach e utente.
- Messaggistica in tempo reale — chat diretta tra coach e utenti tramite Socket.IO.
- Notifiche — avvisi in tempo reale per nuovi messaggi, appuntamenti e aggiornamenti sulle schede.
- Recensioni — gli utenti possono valutare e recensire i propri coach.
- Bacheca/Post — sezione social dove i coach e gli utenti possono creare e interagire con i contenuti.
- Palestre — elenco delle palestre convenzionate.
MyWorkoutPlan è sviluppato in Node.js con Express e MongoDB (tramite Mongoose). Le principali librerie utilizzate sono:
- Express - framework web per Node.js
- express-session - gestione delle sessioni utente
- Mongoose - per comunicare con MongoDB
- bcryptjs - hashing sicuro delle password
- Multer - gestione dell'upload di file (immagini profilo, contenuti)
- Socket.IO - comunicazione realtime per chat e notifiche
Il front-end è realizzato in HTML, CSS e JavaScript, serviti staticamente da Express.
MyWorkoutPlan richiede Node.js e un'istanza di MongoDB in esecuzione in locale.
$ git clone https://github.com/UniCT-WebDevelopment/MyWorkoutPlan
$ cd MyWorkoutPlan
$ npm installImportante: prima di avviare il server, assicurati che MongoDB sia attivo in locale (di default su
mongodb://127.0.0.1:27017). Senza un'istanza MongoDB in esecuzione, la connessione al database fallisce e il server si arresta subito all'avvio.
Avvia il server con:
$ npm startPer popolare il database con dati di esempio (palestre e utenti/coach), sono disponibili gli script seed.js e seed-gyms.js:
$ node seed.js
$ node seed-gyms.jsL'applicazione sarà disponibile all'indirizzo http://localhost:3000.
Per testare MyWorkoutPlan puoi scegliere tra due modalità:
-
Creare un nuovo account — registrati liberamente come Utente o come Coach e prova tutte le funzionalità da zero.
-
Usare un account demo già popolato — dopo aver eseguito
seed.js, sono disponibili alcuni account di esempio con dati simulati (abbonamenti, schede di allenamento, appuntamenti), utili per vedere subito l'app in uso senza doverla popolare manualmente:Ruolo Email Password Coach marco@coach.it coach123 Utente mario@test.it user123
Questo progetto è stato sviluppato da Pietro Barbagallo.