Piattaforma Gestione Ordini

Cliente

Per chi è stato sviluppato il progetto?

Il cliente fornisce servizi di logistica e fornitura prodotti per chi vende online.

Obiettivi del progetto

Cosa si aspettava di ottenere il cliente?

Il cliente ha bisogno di una SAAS in abbonamento per permettere agli utenti di gestire i loro ordini e richiedere l’evasione.

Tecnologie Utilizzate

Quali tecnologie sono state impiegate?
PostgreSQL
.NET Core
NodeJS
React
Redux Toolkit e Query
Tailwind CSS

Architettura della soluzione

Come è strutturata l'applicazione?

L'applicazione è strutturata su un'architettura microservizi scalabile, ottimizzata per garantire separazione di responsabilità ed elevata manutenibilità. Il sistema si compone di tre servizi principali:

  • Shopify Webhook API (NodeJS): Servizio specializzato che intercetta in tempo reale gli ordini provenienti dagli e-commerce dei clienti collegati alla piattaforma, elaborandoli e integrandoli nel database centrale con meccanismi di validazione e trasformazione dei dati.
  • Stripe Webhook API (.NET Core): Componente dedicato alla gestione sicura delle transazioni finanziarie, che processa automaticamente pagamenti, rinnovi di abbonamento e notifiche di fatturazione, garantendo integrità e tracciabilità completa del ciclo di vita degli abbonamenti.
  • Core Web Service (NodeJS): Hub centrale dell'applicazione che implementa la logica di business, gestisce le autorizzazioni, elabora le richieste complesse e coordina le operazioni tra i vari microservizi, fungendo da punto di accesso unificato per il frontend.

Il frontend è sviluppato con React.js secondo pattern moderni di gestione dello stato. Utilizza Redux Toolkit per la gestione centralizzata dello stato applicativo interno, mentre le interazioni con il backend sono orchestrate tramite Redux Query, che ottimizza le richieste API con meccanismi integrati di caching, polling, e gestione automatica degli stati di caricamento ed errore.

UI/UX Design

Come è stata progettata l'esperienza utente?

I colori dell’applicazione li ho ricavati estraendoli dal logo.
Essendo un’applicazione piena di funzionalità ho deciso di mantenere un design molto minimal e semplice.
Ho scelto una sidebar che di default occupa il minor spazio possibile considerando che i bottoni e le informazioni da visualizzare tendono a crescere.

Funzionalità Chiave

Cosa permette di fare l'applicazione?
Inserimento chiavi API Shopify e Creazione Webhook
Modifica Ordini
Creazione Lettere di Vettura tramite API
Tracciamento Spedizione in Tempo Reale
Gestione dei Resi Al Mittente
Gestione Inventario Clienti
Gestione delle Giacenze
Creazioni Coupon Sconto tramite Stripe API
Creazione/Modifica/Eliminazione Prodotti
Creazione/Modifica/Eliminazione Categorie Prodotti
Creazione/Modifica/Eliminazione Clienti
Creazione/Modifica/Eliminazione Listino Spedizione
Creazione/Modifica/Eliminazione Listino Giacenze
Creazione/Modifica/Eliminazione Listino Conferme Ordine
Creazione/Modifica/Eliminazione Prezzi Contrassegno

Strumenti Utilizzati

Con quali strumenti è stato realizzato il progetto?

Visual Studio Code

Visual Studio 2022

Github

Flusso di Lavoro

Quali fasi hanno portato al completamento del progetto?

Il progetto è in continua evoluzione da circa un anno, con un ciclo di sviluppo basato su metodologie agili. Gestisco il versionamento del codice tramite GitHub, implementando una strategia di branching strutturata:

  • Un main branch per il codice stabile in produzione
  • Un branch di sviluppo per l'integrazione delle nuove funzionalità testate
  • Feature branch dedicati per ogni nuova funzionalità o miglioramento significativo

Questa architettura di versioning mi permette di mantenere flessibilità operativa, potendo temporaneamente sospendere lo sviluppo di funzionalità secondarie per concentrarmi su correzioni critiche o implementazioni prioritarie richieste dal cliente. L'approccio parallelo garantisce continuità di servizio mentre il prodotto si evolve progressivamente.

Distribuzione

Come è stata resa disponibile la soluzione?
L’applicazione è hostata all’interno di un VPS con sistema operativo Ubuntu gestito personalmente.

Hai un progetto simile in mente? Parliamone.