Sei applicazioni, un backend, nessuna logica duplicata
Euroingro è un marketplace all'ingrosso con più tipi di utente: chi compra, chi fornisce, chi amministra. Ognuno ha bisogno di uno strumento diverso, ma i prezzi, le disponibilità e i permessi devono essere gli stessi ovunque.
Risultati misurati
1
backend API-first per tutte le interfacce
6
applicazioni: web, console e mobile
9
repository coordinati nello stesso ecosistema
api/v2
contratto unico verso ogni client
01 — Contesto
Una piattaforma che cresceva per aggiunte
Il primo storefront era un'applicazione Angular Universal con Ionic e Capacitor: un solo pacchetto che doveva servire web e mobile, e che a ogni funzione nuova diventava più difficile da rilasciare.
Nel frattempo erano nate esigenze diverse fra loro: i fornitori avevano bisogno di una console per i propri cataloghi, l'amministrazione di strumenti di controllo, il team tecnico di vedere in un punto solo lo stato dei servizi.
02 — Approccio
Prima il contratto, poi le interfacce
La scelta di fondo è stata separare il backend dalle facce: il monolite Django espone `api/v2`, documentata, e ogni interfaccia diventa un repository per conto suo che consuma quel contratto senza conoscerne l'interno.
Così il negozio è stato riscritto in Next.js con rendering sul server — meglio per chi arriva da una ricerca — mentre le console sono React con Vite, veloci da costruire, e le due app sono in Flutter. Nessuna riscrive le regole di prezzo: le chiede.
03 — Soluzione
Le applicazioni della piattaforma
Storefront
Il negozio in Next.js App Router con rendering sul server: home, catalogo, scheda prodotto e pagine azienda.
Console fornitori e acquirenti
Gestione cataloghi, candidatura pubblica per nuovi fornitori e pannello acquirente, in React e Vite.
Superadmin e stato dei servizi
Due console interne: amministrazione avanzata e inventario delle API con lo stato dei siti in tempo reale.
App mobile
Due applicazioni Flutter — redazione dei contenuti e vetrina — costruite sullo stesso contratto API.
04 — Risultato
Cosa cambia con questa separazione
Ogni interfaccia si rilascia per conto suo: correggere il negozio non tocca le console, e una console nuova nasce senza rimettere le mani nel backend. Il contratto API è il punto in cui si concordano le modifiche, ed è l'unico posto dove le regole di prezzo e i permessi vivono davvero.