Leica Florian Robert

Professione: Sviluppatore Web & Mobile

È un esperimento: il sito come sarebbe stato negli anni '90. Per vedere quello vero, premi il pulsante in fondo alla pagina.


<< Torna ai progetti

Piattaforma per investimenti — case study

Ruolo: Ideazione, design, sviluppo e infrastruttura. Anno: 2020.

Per una società di investimenti finanziari ho costruito tutta l'infrastruttura informatica: due web app gestionali, un'app mobile e i servizi che le tengono insieme, dall'idea alla pubblicazione.

Stai vedendo questo case study con il motore Legacy. Per vederlo come è stato progettato, attiva il rendering nativo qui sotto.

Clienti su fogli Excel

All'inizio la società gestiva i suoi clienti con dei fogli Excel.

Mi ha commissionato tutta la sua presenza online: applicazioni, grafica, sviluppo e infrastruttura.

Dall'idea alla pubblicazione

  • Ideazione delle applicazioni, insieme all'azienda.
  • La grafica.
  • Due web app gestionali, con Nuxt e Vue sul frontend e Node.js e AdonisJS sul backend.
  • Un'app mobile con Ionic, Vue e Capacitor, per Android e iOS, con il suo server in NestJS.
  • I microservizi in Laravel che tengono insieme tutto.
  • I server e la pubblicazione di tutto, app comprese.

Una porta sola

Le web app e l'app mobile parlano con un solo server, che fa da porta d'ingresso: lì si fa l'accesso, e da lì passano le chiamate a tutti gli altri servizi.

Un proxy controlla chi chiama, aggiunge le chiavi dell'app e del server e, se la richiesta porta dei file, li salva prima su S3 e passa al servizio solo i loro dati. Così le app conoscono un indirizzo solo, e ogni servizio sa sempre chi lo sta chiamando.

Servizi che lavorano insieme

Tutto passa dal core: le app fanno lì il login, e da lì si arriva agli altri servizi. Lo IAM non fa il login: dice al core e all'app chi può entrare dove.

  • L'area riservata web e l'app mobile parlano solo con il core: login unico, utenti, proxy.
  • Dal core si arriva al backend dell'app, con i suoi dati; ai file, cioè i moduli PDF; alle code, in tutte e due le direzioni; alle notifiche, con news e avvisi.
  • Lo IAM dà ruoli e permessi al core e al backend dell'app; non fa il login.
  • L'app di controllo accessi parla con le notifiche.

Node e Laravel sulla stessa coda

Un lavoro nasce in Node, passa dalla coda di Laravel e lo fa un endpoint, scritto nel catalogo.

  • Il core e il backend dell'app, in Node, e il pianificatore, in Laravel, mettono i lavori nella coda: la tabella jobs, in MySQL, nel formato di Laravel.
  • Il worker Laravel prende il lavoro e legge nel catalogo indirizzo, metodo e chiavi.
  • Chiama l'endpoint del servizio, che fa il lavoro vero.
  • L'esito va tra i risultati, con richiesta e risposta salvate, o tra i falliti, che dal pannello tornano in coda.
  • I server in Node scrivono i lavori direttamente nella coda di Laravel, nel suo formato: un lavoro creato da Node lo esegue un microservizio Laravel.
  • Un pianificatore lancia a orario i lavori periodici, come i calcoli di fine mese, chiamando i servizi con utenti dedicati; se qualcosa va storto, il lavoro resta tra i falliti, da riprovare.
  • Le notifiche passano tutte da un servizio solo: ogni app le mette in coda, e lui le salva con destinatari e letture e le manda in app, come push o per email.
  • I dati sono su MongoDB, condivisi tra i servizi; MySQL per le code, Postmark per le email e la firma dei contratti online.

Dai server agli store

  • I server gestiti da me: all'inizio quelli in Node su Heroku, poi tutto spostato su droplet DigitalOcean gestiti con Laravel Forge.
  • I database su MongoDB Atlas e i backup su Amazon S3.
  • L'app mobile pubblicata sull'App Store e su Google Play.

Come una banca online

  • Ogni cliente con il suo profilo e la sua area privata.
  • Clienti autonomi nelle operazioni, come in un home banking.
  • Acquisti direttamente dall'app mobile.

Ottimizzato per Netscape Navigator 4.0 — 800×600

Privacy Policy