New Burning Fire — Piattaforma di Gestione Crew di Danza
NBFire è una piattaforma web PWA mobile-first per la gestione di una crew di danza. Sostituisce la comunicazione frammentata tra WhatsApp, fogli Excel e calendari condivisi, centralizzando in un unico posto: gestione membri, calendario eventi, pagamenti condivisi, proposte con votazione, e chat integrata con Telegram.
Il frontend è una SPA Angular 21 con Tailwind CSS, il backend un'API .NET 9 con architettura Clean, chat real-time via SignalR con bridge bidirezionale Telegram, autenticazione Google OAuth, il tutto deployato su VPS Hetzner con Nginx + PM2.
graph TB
subgraph Client["Client — PWA Mobile-First"]
FE["Angular 21 + Tailwind\nSignals + Standalone"]
end
subgraph Server["Hetzner VPS"]
NGINX["Nginx\nReverse Proxy + SSL"]
subgraph Backend[".NET 9 — Clean Architecture"]
API["REST API\nControllers"]
HUB["SignalR Hub\nReal-time Chat"]
SVC["Domain Services\nBusiness Logic"]
EF["EF Core 9\nData Access"]
end
DB[("PostgreSQL 16")]
end
subgraph External["Servizi Esterni"]
GOOGLE["Google OAuth 2.0"]
TELEGRAM["Telegram Bot API"]
GEMINI["Gemini API\nTraduzioni"]
end
FE -->|"HTTPS"| NGINX
NGINX -->|"/api/*"| API
NGINX -->|"/hub/*"| HUB
NGINX -->|"/*"| STATIC["File Statici"]
API --> SVC
HUB --> SVC
SVC --> EF
EF --> DB
SVC --> TELEGRAM
SVC --> GEMINI
API --> GOOGLE
Quanto impiegherebbe un super senior developer .NET/Angular a costruire questo progetto partendo da zero, scrivendo tutto a mano?
| # | Fase | Giorni | Note |
|---|---|---|---|
| 0 | Setup Ambiente | 1.5 | Node, .NET SDK, Docker, PostgreSQL, Angular + Tailwind, .NET Clean Arch, EF Core, Git |
| 1 | Autenticazione | 3 | Google OAuth 2.0, JWT, ruoli (SystemRole + CrewRole), login page, interceptor, guard, test TDD |
| 2 | Layout & UI Core | 3 | Layout responsive (sidebar, header, content), dark/light mode, i18n EN/IT, PWA, mobile fixes |
| 3 | Backend CRUD + Test | 5 | 15 entità DB, 5 servizi (User, Event, Payment, Proposal, Dashboard), controllers, security, TDD |
| 4 | Frontend Features | 5 | Dashboard, calendario settimanale, pagamenti, proposte 3 categorie, membri, profilo, integrazione FE-BE |
| 5 | Sistema Chat | 7.5 | SignalR Hub, Telegram Bot API (3 canali), chat UI, media, emoji, voice, traduzione Gemini, permessi, test. Parte più complessa |
| 6 | Polls + Notifiche | 3 | Pattern messaggi estensibile (Poll/Quiz/Survey), voto multiplo, notifiche in-app SignalR, badge chat |
| 7 | Deploy & DevOps | 2.5 | VPS Hetzner, Nginx + SSL, PM2, script deploy, backup/restore, versioning automatico |
| 8 | Fix & Polish | 2 | Safari/iOS fix, mobile UX, bug fixing post-deploy, test con utenti reali |
| TOTALE | 32.5 | ~6.5 settimane — ~1 mese e mezzo |
| Voce | % | Note |
|---|---|---|
| Scrittura codice | ~45% | Il codice in sé |
| Debug & troubleshooting | ~20% | Cose che non funzionano come previsto |
| Ricerca (ChatGPT, docs) | ~12% | API esterne, config, best practices |
| Test (TDD + manuali) | ~12% | 213 test + test su device reali |
| Decisioni architetturali | ~6% | Ripensamenti, piccoli refactor |
| Config & infrastruttura | ~5% | Docker, CORS, SSL, proxy |
Il sistema chat (Fase 5) da solo è il ~23% del progetto. Telegram Bot API è la variabile più rischiosa: documentazione non sempre chiara, limiti API, webhook debug. Il primo deploy in produzione rivela sempre problemi invisibili in locale.
Il progetto è stato costruito da un designer junior che dirigeva un AI coding assistant come sviluppatore AI. L'AI scriveva il codice, l'umano decideva cosa fare, testava su iPhone, e approvava. Dati estratti dalla storia Git: 344 commit, dal 21 dicembre 2025 al 1 febbraio 2026.
| Data | Ore | Commit | Cosa è stato fatto |
|---|---|---|---|
| Day 1 | ~10h | 16 | Setup progetto, design deploy, dark mode, i18n, Nginx, Memory Bank |
| Day 2 | ~1h | 2 | Calendario responsive mobile |
| Day 3 | ~1h | 1 | Ottimizzazione responsive tutti i componenti |
| Day 4 | ~1h | 4 | POCs merge (12 proof of concept) |
| Day 5 | ~2h | 4 | POC Telegram + SignalR completo |
| Day 6 | ~6h | 2 | Telegram media support, POC finito |
| Subtotale | ~21h | 29 | Setup + Design + POCs |
| Day 7 | ~10h | 29 | Requirements + intero BE+FE in 1 ora! |
| Day 8 | ~12h | 35 | Reactions, media, deploy, ruoli, security sprint, chat, PWA |
| Day 9 | ~10h | 40 | Mobile fix, iOS safe-area, profilo, PWA icon |
| Day 10 | ~10h | 34 | Chat SignalR-first, layout fix, PWA reload, version endpoint |
| Subtotale | ~63h | 167 | Core build sprint: da zero a app deployata |
| Day 11 | ~2h | 7 | Safari Google login fix |
| Day 12 | ~5h | 51 | Proposte 3 categorie (TikTok, Coreo, Eventi) |
| Day 13 | ~12h | 36 | Pagamenti, versioning, dashboard, notifiche, bugfix |
| Subtotale | ~82h | 261 | Features secondarie + fix |
| Day 14 | ~8h | 55 | 3 canali Telegram, permessi, badge chat, traduzioni |
| Day 15 | ~6h | 24 | Polls (TDDAB 1-7 backend + frontend + UX) |
| Day 16 | ~1h | 4 | Backup/restore, deploy finale, chiusura |
| TOTALE | ~97h | 344 | 16 giorni attivi — ~12 giorni lavorativi equivalenti |
| Metrica | Senior umano (stima) | Reale con AI | Speedup |
|---|---|---|---|
| Ore totali | ~260h | ~97h | 2.7x |
| Giorni lavorativi | 32.5 | 12 | 2.7x |
| Settimane | 6.5 | 2.5 | 2.6x |
| Test scritti | 213 | 213 | = |
| Codice | ~21.000 righe | ~21.000 righe | = |
| Fase | Stima umano | Reale con AI | Speedup |
|---|---|---|---|
| Setup + Scaffolding | 1.5 gg | ~0.3 gg | 5x |
| Auth + Ruoli | 3 gg | ~0.5 gg | 6x |
| Layout + UI + PWA | 3 gg | ~1 gg | 3x |
| Backend CRUD + Test | 5 gg | ~1 gg | 5x |
| Frontend Features | 5 gg | ~2 gg | 2.5x |
| Chat + Telegram | 7.5 gg | ~4 gg | 1.9x |
| Polls + Notifiche | 3 gg | ~1 gg | 3x |
| Deploy + DevOps | 2.5 gg | ~1.5 gg | 1.7x |
| Fix + Polish | 2 gg | ~1 gg | 2x |
| TOTALE | 32.5 gg | ~12 gg | 2.7x |