Dentro NearYou: Next.js, Node.js e il percorso di un'offerta locale

Scritto da

Come le aree clienti, attività e amministratori condividono il backend, dalla scoperta di un'offerta alla convalida del codice QR.

Pubblicato il

Dentro NearYou: Next.js, Node.js e il percorso di un'offerta locale

Aggiornato

Un'offerta coinvolge più persone

NearYou mette in contatto le persone in Romania con le attività locali e le loro offerte. Le pagine pubbliche permettono di esplorare categorie, promozioni e profili. Dietro questo percorso ci sono aree di lavoro separate per clienti, titolari delle attività e amministratori.

Per capire l'architettura basta seguire un'offerta. Un'attività la crea, un cliente la richiede e il personale ne convalida l'utilizzo. Ogni interfaccia deve riflettere lo stesso stato.

Next.js gestisce interfaccia e API

NearYou usa Next.js e React per l'interfaccia, con TypeScript in tutta l'applicazione. Il backend Node.js è implementato nei route handler di Next.js. Si tratta di un'applicazione con rotte server, affiancata da processi Node.js dedicati ai worker e alle attività pianificate.

Prisma collega l'applicazione a MySQL. Redis e BullMQ gestiscono le code per notifiche e campagne email. MinIO conserva i file multimediali, che l'applicazione distribuisce attraverso le proprie rotte. Stripe gestisce i pagamenti degli abbonamenti, con l'elaborazione dei webhook nel backend.

Questa struttura mantiene interfacce e regole delle offerte nello stesso codice, lasciando le operazioni in background a processi dedicati.

Catalogo pubblico delle offerte NearYou

Il catalogo pubblico, acquisito il 19 settembre 2026.

Richiedere un'offerta è un'operazione del server

Quando un cliente richiede un'offerta, il backend verifica autenticazione, requisiti e limiti. Impedisce al titolare di richiedere un'offerta della propria attività. Una chiave di idempotenza può identificare una richiesta ripetuta.

I controlli decisivi vengono ripetuti in una transazione del database con un blocco sulla riga interessata. È un dettaglio importante quando arrivano due richieste quasi contemporaneamente: la decisione deve basarsi sullo stato attuale del database.

Anche l'utilizzo del voucher ha un passaggio di stato controllato. L'attività può scansionare il codice QR oppure inserire il codice a mano. Il backend registra la convalida e usa una chiave di deduplicazione nell'assegnazione dei punti fedeltà. Questi meccanismi gestiscono gli invii ripetuti nel punto in cui i dati cambiano.

Ogni ruolo ha la propria area

I clienti gestiscono i voucher richiesti, seguono le attività e consultano punti e notifiche. Le attività curano profili e offerte, controllano le richieste, convalidano i voucher e leggono le statistiche. Gli amministratori approvano le attività e gestiscono utenti, categorie, contenuti, campagne e assistenza.

Pagina NearYou per le attività con anteprima pubblica del pannello

La pagina pubblica per le attività contiene un'anteprima del pannello. La schermata proviene da quella pagina, non da un account privato.

I dati condivisi collegano queste aree. Al cliente serve un voucher utilizzabile, all'attività la conferma della sua validità e all'amministratore gli strumenti per gestire la piattaforma.

Le operazioni in background hanno processi dedicati

L'invio di una campagna o delle notifiche non deve occupare la richiesta che mostra una pagina. NearYou esegue worker e attività pianificate separatamente dal processo web. I webhook di pagamento prevedono anche verifica della firma e registrazione dello stato di elaborazione per gestire le consegne duplicate.

La complessità del sistema nasce da questi flussi collegati. Next.js e Node.js danno struttura all'applicazione; transazioni, controlli dei ruoli e worker ne definiscono il comportamento durante l'uso.

Esplora NearYou · Scopri il progetto

I dettagli architetturali derivano dal codice del progetto. Le schermate mostrano il sito pubblico.

Parliamone

Raccontami cosa hai in mente. Rispondo di solito entro un giorno lavorativo.