Progetti
Una selezione di progetti su cui ho lavorato, che evidenziano le tecnologie e gli strumenti che utilizzo quotidianamente.
Clicca qui per conoscere invece tutte le altre cose che sappiamo fare in à trio 😉.
Tutti i marchi e i nomi di prodotti o servizi qui citati (se non coperti da NDA) appartengono ai rispettivi proprietari. La loro citazione ha esclusivamente fini descrittivi e non implica alcuna affiliazione.
Pinarello | Prince World Tour
Contest online concepito da Pinarello per promuovere la bici Prince.
I partecipanti, utilizzatori di Strava, si iscrivono in team: l'obiettivo delle squadre, attraverso la somma delle attività dei propri membri, è compiere virtualmente il giro del mondo entro la durata del contest (1 anno), completando i 40000 km che equivalgono approssimativamente alla circonferenza terrestre.
Il sistema utilizza le api di Strava per raccogliere le attività di tutti i partecipanti i quali, tramite Oauth, hanno acconsentito l'accesso alle proprie attività sincronizzate.
Vengono calcolate la classifica generale più altre classifiche di contorno, su base settimanale e mensile, legate al dislivello superato e alla media di percorrenza.
2019 - 2020
php 7.3 | MySQL 5.7 | Apache 2.4 | Laravel 5
Strava Api
Giro d'Italia Virtual | Garmin
Contest a tappe di ciclismo indoor, nel quale i partecipanti percorrono virtualmente una selezione di tappe del Giro d'Italia 2020, basato su Garmin Connect e Garmin Health Api.
Nato a tempo di record durante il primo lockdown COVID del 2020, in collaborazione con Garmin Italia e RCS Sports & Events.
Il sistema comunica con Garmin Health Api (webhook di notifica più pull delle attività ), raccoglie le attività registrate dai device Garmin dei partecipanti e sincronizzate sulla piattaforma Garmin Connect.
Una volta autorizzato dall'utente - tramite Oauth - l'accesso alle proprie attività Connect, tutte le registrazioni vengono inviate agli endpoints dell'app: le tracce gps virtuali vengono quindi confrontate punto per punto con le tracce ufficiali delle tappe virtuali, per isolare quelle idonee a rappresentare un'effettiva tappa percorsa e individuare eventuali alterazioni.
In base ai tempi totali di percorrenza di tutte le tappe, vengono quindi stilate la classifica generale della Maglia Rosa ed altre classifiche minori, esattamente come avviene nella competizione reale.
Nell'arco dei 20 giorni di contest, il sistema ha raccolto circa 112000 attività da Garmin Connect, per un totale di più di 7 milioni di punti di campionamento gps.
2020
php 7.4 | MySQL 5.7 | Apache 2.4 | Laravel 6
Garmin Health Api
Garmin Virtual Ride
Giro d'Italia Virtual diventa una piattaforma per l'organizzazione di contest a distanza, basati sulle attività sportive registrate dai device Garmin (running e ciclismo).
I partecipanti possono venire divisi in team, stilando classifiche di squadra.
La piattaforma ha ospitato eventi destinati ad attività indoor e outdoor durante l'estate e l'autunno del 2020.
2020
php 7.4 | MySQL 5.7 | Apache 2.4 | Laravel 6
Digital Asset Management platform
Per conto di un collaboratore abbiamo sviluppato e partecipiamo al mantenimento di una piattaforma DAM per un noto brand internazionale di abbigliamento e accessori sportivi.
La piattaforma consente di organizzare e classificare foto, materiale promozionale, documentazione varia dell'azienda, permettendo ricerche e modalità di accesso diverse calate sulle specifiche esigenze del cliente.
Automaticamente gli asset vengono ridimensionati in diverse risoluzioni, per i formati supportati, e ne viene creata una thumb; possono venire scaricati e condivisi.
Per facilitare il caricamento massivo degli asset da parte dell'amministratore, è attiva una modalità di upload via ftp; la cartella interessata viene scansionata ricorsivamente e viene ricreata virtualmente, su una tabella di database, l'alberatura del filesystem, per rendere quindi i file indicizzabili e ricercabili.
Attraverso GUI vengono parallemente caricati altri file in diversi formati strutturati che, sulla base di codici prodotto e altre convenzioni, vanno ad integrare i metadati degli asset scansionati.
Il sistema fa ampio uso delle code di Laravel per l'elaborazione delle operazioni asincrone e per i task in background.
2020 - presente
php 8.2 | MariaDB 10.1.48 | Apache 2.4 | Laravel 10/11