I miei lavori

Di seguito troverai illustrati i miei migliori progetti.

Next Match Arena

  • Laravel
  • VUE.js
  • Axios
  • mySQL
  • PHP
  • Tailwind
  • Nuxt 4
Screenshot del progetto Next Match Arena Screenshot del progetto Next Match Arena Screenshot del progetto Next Match Arena Screenshot del progetto Next Match Arena

NMA (Next Match Arena) è una piattaforma web dedicata al mondo esport / competitive gaming, nata per riunire in un unico spazio tutto ciò che serve a player, team e organizer: profili, gestione team e competizioni. L’obiettivo è offrire un’esperienza chiara e “da prodotto”, dove ogni ruolo ha gli strumenti giusti senza perdersi in flussi complessi.

✨ Funzionalità principali:

  • Competizioni: creazione e gestione eventi con struttura pensata per tornei, e pronta ad estendersi a ladder e campionati
  • Team & roster: gestione dei team, organizzazione dei player e impostazioni legate alla partecipazione alle competizioni
  • Organizer / staff: dashboard e strumenti di gestione per controllare configurazioni, regole e flussi operativi
  • Premium features: base di monetizzazione con integrazione Stripe per abbonamenti e billing

🧱 Tecnologia:

  • Backend: Laravel 12 (API REST)
  • Autenticazione: JWT
  • Frontend: Vue / Nuxt
  • Integrazioni: Stripe

Per maggiori informazioni vi invito a visitare la pagina cliccando su “Prova Ora”.

Compress & Convert Tool

  • Laravel
  • VUE.js
  • PHP
  • Tailwind
Screenshot del progetto Compress & Convert Tool Screenshot del progetto Compress & Convert Tool

Compress & Convert Tool è un’applicazione web gratuita che permette di comprimere e convertire immagini in modo rapido ed efficiente, ottimizzandone il peso senza significative perdite di qualità.

✨ Funzionalità principali:

  • ✅ Compressione immagini per ridurre il peso dei file
  • ✅ Conversione tra formati comuni: JPG, PNG, WEBP
  • ✅ Generazione automatica di un archivio zip con tutte le immagini ottimizzate
  • ✅ Download singoli per ogni file convertito/compressione effettuata

👤 Funzionalità extra per utenti registrati:

  • 🔖 Possibilità di assegnare un nome personalizzato a ciascuna sessione di conversione
  • 📂 Accesso a tutte le proprie sessioni nella dashboard personale, con download sempre disponibili

🕒 Note per utenti non loggati:

I file rimangono disponibili per 2 giorni, poi vengono eliminati automaticamente tramite cron job. ⚠️ I link di download non vengono salvati, quindi è necessario copiarli o scaricarli prima di chiudere la pagina.

🛠️ Tecnologia:

  • Backend: Laravel + PHP
  • Frontend: Vue.js + Tailwind CSS
  • Libreria custom: fpdev/compress_and_convert ➔ sviluppata da me per gestire compressione e conversione immagini anche in batch

💡 Curiosità tecniche:

  • Salvare un’immagine nello stesso formato a qualità 100% spesso aumenta il peso senza miglioramenti visivi
  • La conversione in WEBP garantisce risparmi notevoli rispetto a JPG e PNG, con qualità visiva equivalente

FP.IT 2.0

  • Laravel
  • VUE.js
  • mySQL
  • Blade
  • SCSS
  • Tailwind
Screenshot del progetto FP.IT 2.0 Screenshot del progetto FP.IT 2.0 Screenshot del progetto FP.IT 2.0 Screenshot del progetto FP.IT 2.0 Screenshot del progetto FP.IT 2.0 Screenshot del progetto FP.IT 2.0 Screenshot del progetto FP.IT 2.0 Screenshot del progetto FP.IT 2.0

🚀 FP.IT 2.0 — Diario di un refactoring evolutivo

Con la versione 2.0 del mio sito personale, ho avviato un processo di riprogettazione totale: backend, frontend, struttura dei dati e funzionalità. Un’occasione per consolidare le competenze acquisite e costruire un ecosistema modulare, scalabile e professionale, adatto anche ad accogliere progetti futuri.

🧱 Fasi di sviluppo

1. Setup dell'ambiente moderno

  • Installazione di Laravel 12 con PHP 8.4, partendo da zero.
  • Abbandono dell’architettura PHP puro + Smarty del sito 1.0.

2. Integrazione del modulo DeliveBoo

  • Migrato dal vecchio progetto in Laravel 7 con PHP 8.0.
  • Passaggio da Vue Router a Inertia.js.
  • Gestione utenze separata tramite guard dedicata e tabella utenti personalizzata.

3. Riscrittura delle pagine pubbliche

  • Tutto il frontend è stato ricostruito da zero con Vue 3 + Tailwind CSS.
  • Migliorie grafiche, ottimizzazione semantica, responsive design, e refactoring della struttura dati.

4. Internazionalizzazione e tema dinamico

  • Doppia lingua (ITA/ENG) via vue-i18n.
  • Tema chiaro/scuro con salvataggio della preferenza utente (es. localStorage).

5. Refactoring del backend legacy

  • Trasformazione delle vecchie API PHP in controller e service Laravel.
  • Integrazione diretta con il progetto My Cloud, centralizzando la login e la gestione delle risorse.
  • Pulizia e ristrutturazione del database, con integrazione dei model Eloquent.

6. Integrazione della libreria compress_and_convert

  • Al caricamento di un’immagine su My Cloud, viene avviata automaticamente la compressione o la conversione tramite la libreria proprietaria.

7. Gestione ruoli e permessi avanzata

  • Implementazione del pacchetto Spatie Laravel Permission, con ruoli assegnabili a utenti tramite dashboard.

8. Costruzione della Admin Dashboard

  • Interfaccia privata per la gestione centralizzata degli utenti, progetti e configurazioni.

9. Rifacimento del Control Panel progetti

  • CRUD completo per i progetti in portfolio.
  • Interfaccia basata su Vue + Inertia, con gestione immagini, anteprime e stato pubblico/privato.

10. Gestione utenze avanzata

  • Visualizzazione, aggiornamento e cancellazione utenti.
  • Assegnazione dei ruoli direttamente dalla dashboard.

11. Esecuzione di comandi da interfaccia

  • Possibilità di lanciare comandi Artisan e Composer direttamente dall’admin, tramite Symfony Process, senza dover accedere al server.

🗺️ Perché una versione 2.0?

L’obiettivo non era solo aggiornare il sito, ma creare un ambiente centralizzato, scalabile e pronto ad accogliere nuovi progetti.

🧹 Backend modulare e organizzato

Backend organizzato per dominio logico:
Controllers/Main, Controllers/MyCloud, Controllers/NuovoProgetto (esempio).
Ogni blocco ha controller, rotte, viste e servizi separati, per una gestione più chiara e mantenibile.

👨‍💻 Frontend componibile e riutilizzabile

Il frontend con Vue 3 segue la stessa logica modulare:
Components/ per quelli comuni, Components/Main/ per il sito principale, Components/NuovoProgetto/ per moduli isolati.
SCSS strutturato per sezioni: scss/Main, scss/MyCloud, ecc. Il riutilizzo di colori, mixin e componenti velocizza e uniforma lo sviluppo.

✅ Conclusioni

FP.IT 2.0 è molto più di un restyling: è un ambiente solido, estendibile e flessibile, pensato per accompagnarmi nella crescita e per ospitare ogni nuova idea con ordine e coerenza. Un'unica piattaforma, più visioni.

Fantaguido

  • Laravel
  • VUE.js
  • Axios
  • mySQL
  • PHP
  • Blade
  • Tailwind
Screenshot del progetto Fantaguido Screenshot del progetto Fantaguido Screenshot del progetto Fantaguido Screenshot del progetto Fantaguido Screenshot del progetto Fantaguido Screenshot del progetto Fantaguido Screenshot del progetto Fantaguido

Sito realizzato su commissione per un gruppo di ragazzi appassionati di Fantacalcio.
Per realizzare il sito ho utilizzato Laravel 11 con PHP 8.2 e Vue 3 tramite laravel breeze.

Si tratta di un progetto dove gestire tramite web un Fantacalcio con regole custom; ci sono sostanzialmente 3 versioni del sito a seconda del tipo di utenza a cui si appartiene:

  • Amministratore: è colui che gestisce la registrazione delle utenze ai partecipanti, gestisce il database dei giocatori tramite importazioni con file excel, crea le giornate con le scadenze (entro le quali i giocatori dovranno creare le formazioni), assegna i punteggi per la classifica generale e di coppa alle formazioni delle varie giornate e organizza i gironi di coppa in tutte le sue fasi.
  • Giocatore: il giocatore partecipa al Fantaguido, una volta registratagli l'utenza si potrà impostare la password e loggandosi creerà una squadra per la stagione in corso; per ogni giornata in corso dovrà creare la propria formazione seguendo alcune regole implementate dal sito e validate sia in frontend che in backend, scadute le giornate può visionare i punteggi e le formazioni di tutti i partecipante e può vedere le classifiche e i risultati di coppa.
  • Spettatore: non possiede una squadra partecipante al Fantaguido, per cui può solamente vedere le formazioni e i punteggi delle giornate scadute, i risultati delle partite di coppa e le classifiche. (Gli screenshot sono presi da questo tipo di utenza)

Ovviamente l'ingresso al sito è tramite login e solo gli amministratori possono creare le utenze, quindi dal pulsante "Prova Ora" sarà possibile visionare solamente la welcome page. Se siete interessati a vederne i contenuti non esitate a contattarmi 😁

myCloud

  • VUE.js
  • Axios
  • VUE-router
  • mySQL
  • PHP
  • VUE-CLI
  • Tailwind
Screenshot del progetto myCloud Screenshot del progetto myCloud Screenshot del progetto myCloud Screenshot del progetto myCloud Screenshot del progetto myCloud

Progetto personale svolto per riprendere la mano con Vue ed imparare ad usare la versione 3.
Si tratta di una specie di "cloud" di foto in cui gli utenti registrati possono accedervi e caricare foto. Possono decidere di rendere le foto pubbliche in modo che finiscano nella sezione dedicata e che chiunque possa vederle, oppure mantenerle private per vederle solo nella propria sezione. Queste foto possono poi essere scaricate o eliminate a piacere.
Per maggiori informazioni vi invito a visitare la pagina cliccando su "Prova Ora"

*NOVITÀ*: per entrare in questo progetto è da sempre necessario essere autenticati; adesso tramite la registrazione al sito principale potrete accedere al myCloud! Registrati qua!

FP.IT 1.0

  • Laravel
  • PHP
  • Tailwind
  • jQuery
Screenshot del progetto FP.IT 1.0 Screenshot del progetto FP.IT 1.0 Screenshot del progetto FP.IT 1.0 Screenshot del progetto FP.IT 1.0 Screenshot del progetto FP.IT 1.0 Screenshot del progetto FP.IT 1.0 Screenshot del progetto FP.IT 1.0 Screenshot del progetto FP.IT 1.0 Screenshot del progetto FP.IT 1.0 Screenshot del progetto FP.IT 1.0

Sviluppato poco prima di completare i miei studi come modo per esercitarmi e presentare i miei progetti. Per realizzarlo ho scelto di utilizzare PHP come linguaggio, jQuery come libreria JavaScript e Tailwind come framework CSS, per approfondire le mie competenze con queste tecnologie.
Nel corso del tempo, ho trasformato il mio sito da una semplice vetrina a qualcosa di più complesso. Ad esempio, ho integrato il mio progetto Deliveboo, trasformando il sito stesso in una rotta Laravel e ho implementato un pannello di controllo che mi consente di modificare i dati tramite un'interfaccia utente. Questo pannello di controllo è stato sviluppato utilizzando PHP e sfruttando il concetto di programmazione a oggetti. Cerco di aggiornare periodicamente il mio sito con nuovi progetti e nozioni apprese, continuando a migliorarlo nel tempo.
Se desideri saperne di più, sarò felice di condividere ulteriori informazioni attraverso la sezione Contattami.

Roberto Pieraccini PH

  • VUE.js
  • Axios
  • VUE-router
  • mySQL
  • PHP
  • Node.js
  • VUE-CLI
  • Bootstrap
  • Tailwind
  • jQuery
Screenshot del progetto Roberto Pieraccini PH Screenshot del progetto Roberto Pieraccini PH Screenshot del progetto Roberto Pieraccini PH Screenshot del progetto Roberto Pieraccini PH Screenshot del progetto Roberto Pieraccini PH Screenshot del progetto Roberto Pieraccini PH Screenshot del progetto Roberto Pieraccini PH Screenshot del progetto Roberto Pieraccini PH Screenshot del progetto Roberto Pieraccini PH Screenshot del progetto Roberto Pieraccini PH Screenshot del progetto Roberto Pieraccini PH Screenshot del progetto Roberto Pieraccini PH Screenshot del progetto Roberto Pieraccini PH Screenshot del progetto Roberto Pieraccini PH Screenshot del progetto Roberto Pieraccini PH Screenshot del progetto Roberto Pieraccini PH Screenshot del progetto Roberto Pieraccini PH

Ho realizzato una pagina personale di fotografia, è un sito divenuto nel tempo sempre più complesso, infatti è formato da due progetti:

  • un progetto frontend realizzato con vuejs 2 in ambiente node, una single page application che utilizza il pacchetto vue-router per mappare i componenti con le varie rotte;
  • un progetto backend (pannello di controllo) sviluppato in PHP vanilla e accedibile solo conoscendo il link ed effettuando un login; esso consente la gestione indipendente sia delle varie categorie (quindi delle sottosezioni della galleria del frontend), mettendo a disposizione la possibilità di crearne una nuova o modificarne/eliminarne una esistente, sia delle foto di ogni categoria consentendo di aggiungerne di nuove o di eliminare quelle non più desiderate.

Di conseguenza il sito principale effettua delle chiamate api tramite axios al pannello di controllo, il quale interroga il DB, recupera le informazioni richieste (path delle immagini, categorie da mostrare ecc..) e le restituisce così da mostrarle in pagina come desiderato.

Compress and Convert Images Procedure

  • PHP
Screenshot del progetto Compress and Convert Images Procedure

Si tratta di una procedura PHP - utilizzabile in locale - che converte e (se lo si desidera) comprime le vostre immagini.
Questa utility si basa sull'utilizzo dei metodi della mia libreria 'fpdev\compress_and_convert_images_librarty', basterà mettere le immagini da convertire nella cartella "input_files" (è possibile anche customizzare la cartella di input), gestire i parametri nel file .env e lanciare la procedura; il risultato verrà salvato in "output_files" (sempre customizzabile).

Per visitare e/o scaricare e provare questo progetto potete visionare la repository su GitHub cliccando su "Scopri di più", troverete i dettagli per l'installazione nel file README!

Compress and Convert Images Library

  • PHP
Screenshot del progetto Compress and Convert Images Library

Ho creato questa libreria PHP da installare con composer per la compressione e conversione delle immagini all'interno di altri progetti PHP.
La libreria è pubblica e può essere usata da chiunque! Puoi vedere la repository cliccando su "Scopri di più"

Deliveboo

  • Laravel
  • VUE.js
  • Axios
  • VUE-router
  • mySQL
  • PHP
  • Blade
  • SCSS
  • Bootstrap
  • Tailwind
Screenshot del progetto Deliveboo Screenshot del progetto Deliveboo Screenshot del progetto Deliveboo Screenshot del progetto Deliveboo Screenshot del progetto Deliveboo Screenshot del progetto Deliveboo Screenshot del progetto Deliveboo Screenshot del progetto Deliveboo Screenshot del progetto Deliveboo Screenshot del progetto Deliveboo Screenshot del progetto Deliveboo

Progetto finale del corso Boolean. In team, insieme a 4 colleghi, abbiamo sviluppato il mockup dell'applicazione Deliveroo, coordinandoci con le funzioni di GIT tramite VSCode e GitHub. Abbiamo sviluppato sia la parte backend, implementando viste per ristoratori, API REST per la gestione dei piatti, degli ordini e delle categorie dei ristoranti, sia la parte frontend, nella quale avviene la ricerca del ristorante, dei piatti e che permette infine di ordinare ciò che si desidera.

Lamaflix

  • VUE.js
  • Axios
  • Node.js
  • VUE-CLI
Screenshot del progetto Lamaflix Screenshot del progetto Lamaflix Screenshot del progetto Lamaflix Screenshot del progetto Lamaflix

Mockup dell'applicazione web di netflix, che implementa le APi del sito the movie db, realizzata con Vue.js in ambiente node.js ed effettua le chiamate API tramite Axios. Alcune delle funzionalità  implementate:

  • Gestione preferiti;
  • Dettagli film;
  • Suddivisione in generi;
  • Layout responsive.

Lamazapp Web Desktop

  • VUE.js
  • HTML5
  • CSS3
Screenshot del progetto Lamazapp Web Desktop Screenshot del progetto Lamazapp Web Desktop

Mockup di whatsapp web, con implementate le seguenti funzioni:

  • Modifica nome/immagine profilo;
  • Aggiunta nuovo contatto;
  • Filtrare la lista contatti;
  • Risposta ad un determinato messaggio;
  • Dettagli di un determinato messaggio;
  • Simulazione di animazione di risposta;
  • Possibilità  di inviare messaggi vocali;
  • Possibilità  di alternare modalità  chiara/scura del layout;
  • Layout responsive.

Campo Minato

  • PHP
  • Bootstrap
  • CSS3
  • JavaScript6
Screenshot del progetto Campo Minato Screenshot del progetto Campo Minato Screenshot del progetto Campo Minato Screenshot del progetto Campo Minato

Ho realizzato il mio gioco del campo minato, partendo da un esercizio fatto durante i miei studi ed espandendolo con le funzionalità  che sono nel gioco originale, oltre ad un piccolo algoritmo per il calcolo del punteggio. Ho utilizzato javascript vanilla per realizzarle e ho infine implementato un piccolo database per la gestione di una classifica "top 10" collegato all'applicazione tramite php.

Boolpress

  • Laravel
  • VUE.js
  • PHP
  • Blade
  • SCSS
  • Tailwind
Screenshot del progetto Boolpress Screenshot del progetto Boolpress Screenshot del progetto Boolpress Screenshot del progetto Boolpress Screenshot del progetto Boolpress Screenshot del progetto Boolpress Screenshot del progetto Boolpress Screenshot del progetto Boolpress Screenshot del progetto Boolpress

Imitazione del famoso CMS wordpress realizzato tramite laravel. Ho implementato sia quella che à la parte back-end (admin side) seguendo il modello MVC (model-view-control), sviluppando le CRUD (create-read-update-delete) dei modelli implementati; ho implementato migration e seeder per il DB utilizzando la libreria 'faker' per generare dati random, gestito lo store di immagini e il login/signin; inoltre ho aggiunto anche la parte front-end (client side) sviluppata tramite vue.js e gestendo le diverse rotte con vue-router.

Boolean Coding Week

  • HTML5
  • CSS3
  • JavaScript6
Screenshot del progetto Boolean Coding Week Screenshot del progetto Boolean Coding Week Screenshot del progetto Boolean Coding Week

Tre degli esercizi che ho svolto a seguito della coding week tenuta da boolean. Ci tengo a sottolineare che è un evento tenuto dai teachers di boolean ed è completamente GRATUITO e aperto a chiunque, anche a coloro che non hanno alcuna conoscenza di programmazione.

Le tre applicazioni da me rivisitate sono:
  1. un pianoforte che con il click del mouse riproduce la nota corrispondente;
  2. un sintetizzatore vocale con una paperella che si anima una volta che lo si attiva;
  3. un'applicazione meteo collegata ad una API che mostra il meteo a seconda della tua località  e mostra una GIF o immagine (un meme) a seconda degli eventi atmosferici e del momento della giornata.

Bakery mid term project

  • VUE.js
  • Node.js
  • VUE-CLI
Screenshot del progetto Bakery mid term project Screenshot del progetto Bakery mid term project Screenshot del progetto Bakery mid term project Screenshot del progetto Bakery mid term project Screenshot del progetto Bakery mid term project Screenshot del progetto Bakery mid term project Screenshot del progetto Bakery mid term project Screenshot del progetto Bakery mid term project Screenshot del progetto Bakery mid term project Screenshot del progetto Bakery mid term project

Esercizio svolto durante gli studi alla fine degli argomenti riguardante la parte front-end. Ogni studente aveva il suo progetto da svolgere e questo era quello assegnatomi; una volta terminato l'ho dovuto presentare in una simulazione di colloquio con un ipotetico cliente, simulato da uno dei tutor del corso.

Playstation

  • Bootstrap
  • HTML5
  • CSS3
Screenshot del progetto Playstation Screenshot del progetto Playstation Screenshot del progetto Playstation Screenshot del progetto Playstation Screenshot del progetto Playstation Screenshot del progetto Playstation Screenshot del progetto Playstation Screenshot del progetto Playstation Screenshot del progetto Playstation

Primo esercizio "lungo" (svolto in 3 pomeriggi) alla fine dello studio di html e css. Mockup del sito PlayStation, completamente responsive e sviluppato utilizzando il framework css bootstrap.

Spotify

  • HTML5
  • CSS3
Screenshot del progetto Spotify

Mockup dell'applicazione spotify realizzato con solo html e css, quindi privo di logica, completamente responsive.

Dischi

  • VUE.js
  • Axios
  • PHP
  • CSS3
Screenshot del progetto Dischi Screenshot del progetto Dischi

Esercizio di collegamento fra php e vue.js. La parte in php funge da API, infatti i dischi sono in un array di array in un file php e vengono recuperati da vue come file JSON tramite una chiamata axios.