MyETraining Software as a Service

Progettazione e sviluppo SaaS Platform

Panoramica del cliente e delle necessità

Elite srl è un’azienda situata nel nord Italia specializzata nella produzione di un’ampia varietà di prodotti per il mono del ciclismo. Nel corso del tempo l’azienda si è evoluta passando dalla produzione di borracce e di accessori correlati alla progettazione e creazione di rulli per l’allenamento indoor, con lo sviluppo di un vero e proprio ecosistema di applicazioni mobile e desktop, servizi e applicazioni web per offrire sempre diverse e più coinvolgenti modalità di allenamento ai propri utenti, ad esempio corse video e corse a mappe in cui il rullo è controllato per riprodurre la pendenza/resistenza del percorso visualizzato sullo schermo, analisi della pedalata, test di allenamento per valutare il livello di prestazione dell’atleta e creare programmi di allenamento personalizzati per migliorare la sua preparazione. Diverse applicazioni sono utilizzate per registrare e condividere le corse video, controllare i rulli e raccogliere dati del singolo allenamento, per aggiornare il firmware dei rulli e per allenare con programmi specifici gruppi di atleti all’interno di centri fitness.

Al fine di supportare questo complesso ecosistema Elite necessitava di un’infrastruttura affidabile e scalabile che consentisse di raggiungere il bilanciamento ottimale tra i livello di performance e la sostenibilità di costi, per affrontare uno scenario in cui i picchi di traffico e di utilizzo tendono a concentrarsi nei weekend e nella stagione invernale (essendo la maggior parte dei clienti situati nell’emisfero boreale, tra Stati Uniti ed Europa), ma su cui non è possibile effettuare previsioni a priori.

Si richiedeva inoltre che la soluzione software fosse accurata in termini di disponibilità dei dati e protezione degli stessi, dal momento che  le applicazioni gestiscono a vari livelli sia dati personali che dati sensibili e sanitari (ad es. la frequenza cardiaca), nonché i dati storici sulle abitudini di allenamento e i tracciati preferiti degli utenti.

 

Infine, la piattaforma doveva essere in grado di assicurare la sincronizzazione dei dati tra le varie piattaforme e il mantenimento di un’esperienza utente uniforme su tutti i dispositivi e i sistemi operativi, in modo da creare una continuità nell’esperienza d’uso e permettere agli utenti di passare con facilità da un device all’altro secondo l’opportunità del momento, rendendo l’uso della tecnologia il più naturale e meno invasivo possibile per gli atleti in un contesto di allenamento  (ad es. minimizzando il tempo di setup, creando una UX fluida e intuitiva, ecc.).

 

Qual è stato il nostro ruolo nel supporto al cliente?

Il processo utilizzato per la progettazione della soluzione più adatta alle esigenze del cliente ha avuto inizio con una sessione di design thinking seguita da un’approfondita analisi di mercato per determinare i soggetti coinvolti, i servizi già presenti, i competitor e le necessità da parte degli utenti finali. In un secondo momento, è stata sviluppata la prima applicazione iOS per la registrazione dei percorsi video come pilota per testare la rispondenza della base di utilizzatori, cui ha fatto seguito l’applicazione principale di allenamento (sempre iOS). A questo punto, considerato il successo di questo stadio iniziale, entrambe le applicazioni sono state rese disponibili per Android e, da allora, l’ecosistema ha continuato a crescere. 

 

Progettazione e descrizione dell’architettura

I servizi AWS utilizzati per creare questa complessa architettura sono stati:

 

  • EC2
  • S3
  • Lambda/API Gateway
  • RDS
  • CloudFront
  • Elastic Transcoder
  • CodeCommit
  • Application Load Balancer
  • Route 53

mentre le tecnologie di terze parti utilizzate sono esemplificate (ma non limitate) dalla seguente lista:

 

  • JBoss/Java e Play!/Java per i web service
  • Javascript per le web application di reportistica e amministrazione
  • iOS SDK e Objective-c/Swift per lo sviluppo iOS
  • Android SDK e Java/Kotlin per lo sviluppo Android
  • MongoDB per raccogliere di dati relativi alle sessioni di allenamento, i programmi di allenamento e le corse a mappe