My workout history

Grazie a questa applicazione, riesco a tenere sotto controllo le mie sessioni di allenamento in sala pesi. Inoltre non devo ricordarmi per ogni esercizio, quanto peso ho usato l'ultima volta.

Vai al Progetto

Descrizione Progetto

Nell'ultimo periodo, ho deciso di iscrivermi in palestra. Facendo una vita sedentaria, ho preso qualche chilo di troppo e iniziavo ad accusare dolori in diverse parti del corpo ( sono fatto vecchietto...). Ovviamente, l'istruttore mi ha creato una scheda con gli esercizi da eseguire, ma io, da buon nerd, ho pensato che fosse l'occasione perfetta per provare NextJs e creare un'app full-stack. "My workout history" mi permette di gestire la mia scheda direttamente dallo smartphone, registrando tutti gli esercizi che svolgo e generando dei grafici che mostrano i progressi nel tempo. Attraverso la libreria NextAuth, effettuo il login tramite il mio account Google. Ovviamemente ogni utente che fa la login, vedrà solo i sui esercizi. Una volta effettuato l'accesso, si arriva in una Dashboard dove è presente una lista con gli ultimi esercizi effettuati. È anche possibile filtrare per tipo di esercizio. Dalla sezione "Crea Serie" è possibile creare una nuova serie, specificando la data, il tipo di esercizio, il numero di serie, il numero di ripetizioni, il peso usato e un campo note. Una volta creata la serie, dalla sezione "Grafici" si può visualizzare, per ogni tipo di esercizio, il grafico generato per tutte le sessioni di allenamento. Per la generazioni dei grafici, ho utilizzato la libreria ChartJs, mentre lato back-end i dati sono salvati su database MongoDB. I dati vengono fetchati sia lato server utilizzando i server components, ma al bisogno anche lato client. Per le chiamate http ho scelto di provare la libreria SWR. L'applicazione è deployata tramite Vercel, mentre il database è hostato sul cluster MongoDB Atlas.

Tecnologie usate

  • NextJS
  • Javascript
  • Typescript
  • MaterialUI
  • CSS
  • HTML
  • MongoDB
  • ChartJS