Davide ZaninelloCaricamento...
Torna ai Lavori
WEB APP2026

3D Print Tracker

Un gestionale completo per maker di stampe 3D, dalla visione al deploy in produzione.

Ruolo

Full Stack Developer

Cliente

Personal Project

Stack

Next.jsSupabasePrismaNextAuthTailwind

🎯 La Sfida

Per un maker professionale, gestire il flusso di lavoro su Excel è un collo di bottiglia insostenibile. Le sfide principali che ho identificato sono:

  • Cecità sui Margini: Senza un calcolo preciso al grammo, è impossibile sapere il vero profitto di una stampa.
  • Gestione Inventario Caotica: Impossibile tracciare il consumo parziale di decine di bobine aperte simultaneamente.
  • Inefficienza Operativa: Tempo perso a inserire dati manuali invece di stampare e vendere.

L'obiettivo era eliminare l'incertezza finanziaria trasformando un hobby costoso in un business data-driven.


💡 La Soluzione

3D Print Tracker non è solo un database, è un sistema operativo per la gestione della produzione additiva. Ho progettato la UX per ridurre a zero l'attrito durante le operazioni quotidiane:

  • Smart Inventory: Decremento automatico dello stock basato sui grammi stampati.
  • Instant Calc: Algoritmo che calcola costi, markup e margini netti in tempo reale durante l'ordine.
  • Workflow Ottimizzato: Inserimento vendite in mobilità progettato per richiedere meno di 30 secondi.
  • Business Intelligence: Dashboard con metriche finanziarie (R O I, Revenue, Net Profit) per decisioni basate sui fatti.

Dashboard Overview (Dashboard principale con analytics finanziari e stato inventario)


🛠️ Stack Tecnologico

Ho scelto uno stack Modern Full-Stack focalizzato su Type-Safety e Performance. L'architettura è pensata per scalare da un singolo utente a migliaia senza modifiche infrastrutturali.

LayerTecnologiaWhy it matters
CoreNext.js 15 (App Router)Architettura ibrida Client/Server components per massima interattività.
StylingTailwind CSS + shadcn/uiUI coerente, accessibile e dark-mode native.
Data LayerPostgreSQL (Supabase)Affidabilità relazionale enterprise-grade.
Backend LogicServerless FunctionsCosti zero in inattività, scaling infinito sotto carico.
ValidationZod + React Hook FormGestione robusta degli input e type-safety end-to-end.
AuthNextAuth.js v5Sicurezza stateless basata su JWT e provider OAuth.

📐 Architettura

Serverless Flow

Il diagramma illustra il flusso dei dati in un ambiente completamente Serverless. L'utente si autentica tramite NextAuth (Google OAuth), interagendo con il Frontend Next.js.



Le richieste vengono gestite da API Routes che agiscono come funzioni serverless, comunicando con il database Supabase tramite Prisma ORM. Questo garantisce sicurezza, type-safety e scalabilità automatica senza gestire server fisici.

Architecture Diagram

Data Schema

Entity Relationships

Lo schema evidenzia le relazioni centrali del gestionale. La sicurezza è garantita a livello di database: ogni Utente possiede esclusivamente i propri prodotti e bobine.



Il cuore logico collega le Stampe (Print) alle bobine (FilamentSpool) utilizzate. Questo permette al sistema di calcolare in tempo reale il consumo in grammi e il relativo costo materiale, sottraendolo automaticamente dallo stock disponibile.

Data Schema Diagram

🔐 Security & Data Governance

La sicurezza non è una feature opzionale. Ho implementato un modello Zero-Trust a livello applicativo:

  • Authentication: Nessuna password salvata. Accesso esclusivo tramite provider OAuth 2.0 sicuri.
  • Authorization: Sistema RBAC (Role-Based Access Control) implicito.
  • Data Isolation: Logica di accesso ai dati basata rigorosamente sul userId. Ogni query al database viene intercettata e filtrata alla radice per garantire che nessun utente possa mai accedere ai dati di un altro, prevenendo data leak orizzontali.

🚀 Engineering Process

1. Requirements & Data Modeling

Partendo dai limiti di Excel, ho modellato il database per riflettere le relazioni reali tra Bobina, Stampa e Prodotto finito. L'uso di Prisma Schema ha permesso di iterare rapidamente sulle relazioni one-to-many.

2. DX & Infrastructure

Ho configurato una pipeline CI/CD su Vercel: ogni commit sul branch main innesca build, linting e deploy automatico. Questo mi ha permesso di rilasciare fix e feature in minuti, non ore.

3. Solving Complexity: Cost Tracking

La sfida ingegneristica maggiore è stata mantenere la coerenza dei costi nel tempo. Se il prezzo di acquisto di una bobina cambia, lo storico non deve essere alterato. Ho risolto implementando snapshot dei costi al momento della transazione, garantendo report finanziari immutabili e precisi.


📊 Impact & Optimization

Il passaggio dal tracciamento manuale a un sistema automatizzato ha trasformato radicalmente l'operatività. Non si tratta solo di risparmiare tempo, ma di abilitare la scalabilità.

KPI MisuratoVecchio Processo (Excel)Nuovo Processo (App)Miglioramento
Data Entry3-5 min/ordine25 sec/ordine12x Faster
MargineStimato a occhioCalcolo Esatto100% Accuracy
Decision MakingBasato su intuitoData-Driven-
Inventory Time2 ore/mese0 min (Auto)Automazione Totale

🔗 Explore the Code

Questo progetto è open-source per dimostrare le mie capacità nella costruzione di applicazioni reali, complesse e scalabili.