ZitaSmart
Piattaforma SaaS multi-tenant per prenotazioni di attività di servizi (saloni, cliniche, consulenti). Gestione appuntamenti, operatori, servizi e abbonamenti.
Panoramica
ZitaSmart è un sistema full-stack di booking per attività di servizi. Offre multi-tenancy con ruoli (SuperAdmin, TenantAdmin, Worker, Client), gestione prenotazioni con stati e piani abbonamento flessibili (Free, Basic $20, Professional $50, Enterprise $100). Cloudinary abilita branding tenant e gestione immagini.
Architettura
Architettura monorepo (pnpm + Turbo) con frontend Next.js 15 e backend .NET Core. Il backend usa Clean Architecture: WebApi -> Application (CQRS) -> Domain -> Infrastructure (EF Core + PostgreSQL). Database con schemi identità, multi-tenancy, booking e pagamenti.
Decisioni tecniche chiave
Monorepo con pnpm + Turbo per codice condiviso, build rapide e CI/CD unificata
Next.js 15 App Router per server components, SEO e pattern React moderni
.NET Clean Architecture per separazione responsabilità e manutenibilità
EF Core con PostgreSQL per dati relazionali e migrazioni
JWT + Refresh Token per autenticazione stateless sicura con rotazione
Soft Delete per retention logica e filtri globali
Repository generici per applicare DRY nelle CRUD
Piani multi-tier con limiti d uso per livello
Sfide
Concorrenza: gestire prenotazioni simultanee sullo stesso slot
Isolamento multi-tenant con query efficienti
Applicare limiti piano su operatori, servizi e prenotazioni
Disponibilità operatori con logiche di eccezioni e ferie
Integrazione pagamenti con upload prova manuale e sessioni
Compromessi
Complessità monorepo vs deploy indipendenti
EF Core (produttività) vs SQL raw (performance)
Repository generici (DRY) vs query specifiche
JWT stateless vs session management tradizionale
Coupling frontend/backend vs SOA per iterare più veloce in MVP