Work in progress 👨🏻💻
Un'applicazione web per la gestione efficiente del personale in piccole e medie imprese.
Il sistema centralizza e automatizza processi HR chiave, tra cui la gestione dei dipendenti,
il monitoraggio delle presenze, la gestione delle ferie e l'elaborazione delle buste paga.
Ha un login, un sistema di registrazione, autenticazione e offre inoltre funzionalità avanzate
come la generazione di report sulle performance e un sistema di notifiche per le comunicazioni aziendali.
Tecnologie utilizzate:
Caratteristiche Principali:
Una semplice applicazione web creata con Streamlit che dimostra il funzionamento del RAG (Retrieval Augmented Generation). L'app utilizza LlamaIndex per caricare e interrogare contenuti da pagine di Wikipedia relative all'Intelligenza Artificiale e al Machine Learning, fornendo risposte basate sul contesto recuperato.
Tecnologie utilizzate:
Cybershop è un'app di gestione aziendale fittizia ambientata nell’anno 2079. Il suo scopo è vendere protesi cibernetiche da visualizzare nell’app attraverso la realtà aumentata o in 3D sotto forma di file STL, un formato CAD, che una volta acquistato può essere stampato a casa utilizzando una stampante 3D abilitata per la stampa di impianti e circuiti elettronici biocompatibili.
Il progetto e la demo sono stati realizzati per la materia Programmazione Mobile.
Tecnologie e Servizi Utilizzati:
Le immagini e i testi sono stati generati con Scribble Diffusion e ChatGPT. La demo è funzionale e responsive.
Repository e presentazione disponibili in PDF.
Vai al pdf Vai al progettoIl progetto nasce dalla curiosità di esplorare i limiti del protocollo USB e MIDI su un Novation Launchpad MK1. brInizialmente, tramite fuzzing con PyUSB e pacchetti random, sono riuscito ad accendere i LED del dispositivo, nonostante non fosse supportato su Linux.
Successivamente ho approfondito il funzionamento interno: il Launchpad è una griglia 9x9 di tasti illuminabili
(3 livelli di rosso e 3 di verde, combinabili in giallo), che risponde a comandi MIDI.
Ho sviluppato tre script Python per descrivere la matrice, controllarne i LED e inviare comandi sistematici,
usando un wrapper
che sfrutta amidi
come sottoprocesso.
Oltre al controllo delle luci, lo script riceve e stampa gli eventi MIDI dei tasti premuti, trasformando il Launchpad in un’interfaccia interattiva.
In questo modo ho potuto accendere, spegnere e colorare i LED a piacimento, senza driver ufficiali, arrivando persino a creare effetti visivi con pacchetti random e sequenze di spegnimento istantanee.
Vai al video Vai al progetto su GitHub Vai all'update su LinkedInUna minuscola interfaccia grafica per LAMPP, scritta in Bash e tput (mini libreria grafica). Ha lo scopo di avviare un server locale senza usare la riga di comando.
Vai al progettoJohnny The CyberCar Assistant è un proof of concept (PoC) di un agente AI in RAG completamente locale innestato su un Opel Corsa B del 1997, frutto della mia tesi triennale in ingegneria informatica all'Università di Catania.
Il progetto è composto da 3 sistemi:
Ispirato a
KITT di Supercar (aka Knight Rider)
, Johnny rende l'auto smart:
grazie a un ESP32 collegato al CAN BUS e con modem 4g
abilita in Edge un interfaccia vocale, memoria a lungo termine e controllo intelligente (via Porta
OBD-II).
Tutto il resto del sistema AI viene eseguito da remoto su un server con GPU consumer (GTX 1080TI).
L'assistente è invocato dalla keyword "Hey Johnny!", dopo di che é possibile attraverso comandi vocali
agire in locale sui
dispositivi dell'auto (come alzare i finestrini) o parlare voice2voice in remoto col Chatbot, che risponde con
il
contesto dei
dati della macchina (posizione GPS, velocità, temperatura, etc), senza mai staccare le mani dal volante
Il database vettoriale Qdrant gestisce la memoria a breve/lungo
termine dell'assistente, abilitando una vera esperienza RAG (Retrieval-Augmented Generation).
Tutti i servizi sono orchestrati con Docker Compose.
🎤 Voce utente
↓
❓ Se il comando è locale → esegue azione locale ⚙️
Altrimenti:
↓
🐱 contatta johnny il chatbot remoto
↓
🌐 Cloudflared (autenticazione)
↓
📝 WhisperAI (Voice2Text su GPU)
↓
🧠 LLaMA3 (Ollama, inferenza su GPU)
↓
🔊 Text2Speech (risposta vocale)
↓
❓ Loop: finché non rileva “stop”, torna a johnny 🐱
N.B. Il Progetto é completamente open-source,è stato realizzato in circa 2 mesi e mezzo,
é pensato per il riuso hardware e l'edge computing in ambito
automotive.
architettura, immagini, video e tesi in pdf (ITA ONLY) completa sono disponibili nella repository.
Local Whisper Cat: An official plugin Cheshire Cat AI to transcript locally on your gpu/cpu, in Docker.
Chatty: Client vocale in Python per contattare il server Cheshire Cat AI.
Chattino: Client vocale Arduino/C++ per ESP32 per contattare il server Cheshire Cat AI.
Retromuseum è un progetto di sviluppo web universitario su un fake e-commerce di una fittizia azienda catanese,
dove gli utenti potevano acquistare giochi e console usati, con uno stile visivo fortemente ispirato alla
classica grafica a 8 bit
Inizialmente backend implementato in PHP puro,
poi migrata su Laravel.
Utilizza un database MySQL precompilato, richiama l'API Spotify (OAuth 2.0) per l'ultimo podcast (falso) disponibile, e utilizza MongoDB come database per il carrello (solo per ottenere punti extra per il progetto).
Include un sistema di login, con validazione client/server, una barra di ricerca e contenuti dinamicamente generati via JS da api rawg.io.
L'intera webapp é responsive da mobile.
Vai al progettoUna soluzione semplice di cloud gaming locale: su un vecchio laptop viene installato Debian, un emulatore SNES e il server Sunshine. In questo modo è possibile streammare giochi retro direttamente in rete e collegarsi da remoto con Moonlight, senza container o virtualizzazione.
Tecnologie utilizzate: Sunshine, Moonlight, Cloudflared Tunnel, Bsnes, Raspberry, an old PC as server.N.B. Configurazione minimale e a costo zero, pensata per il riciclo hardware.
Vai al post su linkedinUn progetto di chatbot privato in locale, eseguito su un vecchio portatile con Docker. Il modello (Gemma2 o LLaMA 3.2) gira in un container Ollama con interfaccia web via OpenWebUI, accessibile su porta 3000.
In LAN è subito disponibile, mentre un Raspberry Pi con Cloudflare Tunnel espone il servizio in modo sicuro anche da remoto, tramite dominio personalizzato (.xyz) e autenticazione.
Tecnologie usate:
N.B. Configurazione pensata per riciclare hardware ed evitare e-waste.
Vai al post su linkedin Local Chatbot