Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MyWorkoutPlan

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.

Funzionalità

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.

Dipendenze

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.

Installazione

MyWorkoutPlan richiede Node.js e un'istanza di MongoDB in esecuzione in locale.

$ git clone https://github.com/UniCT-WebDevelopment/MyWorkoutPlan
$ cd MyWorkoutPlan
$ npm install

Importante: 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 start

Per 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.js

L'applicazione sarà disponibile all'indirizzo http://localhost:3000.

Provare l'applicazione

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

Autore

Questo progetto è stato sviluppato da Pietro Barbagallo.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages