Leica Florian Robert

Profesie: Dezvoltator Web & Mobile

E un experiment: site-ul așa cum ar fi arătat în anii '90. Ca să-l vezi pe cel adevărat, apasă butonul de la sfârșitul paginii.


<< Înapoi la proiecte

Platformă de investiții — studiu de caz

Rol: Concepție, design, dezvoltare și infrastructură. An: 2020.

Pentru o firmă de investiții financiare am construit întreaga infrastructură IT: două aplicații web de gestiune, o aplicație mobilă și serviciile care le țin împreună, de la idee la lansare.

Vezi acest studiu de caz cu motorul Legacy. Pentru a-l vedea așa cum a fost proiectat, activează randarea nativă mai jos.

Clienți în foi Excel

La început firma își gestiona clienții în foi Excel.

Mi-a încredințat întreaga sa prezență online: aplicații, grafică, dezvoltare și infrastructură.

De la idee la lansare

  • Conceperea aplicațiilor, împreună cu firma.
  • Grafica.
  • Două aplicații web de gestiune, cu Nuxt și Vue pe frontend și Node.js și AdonisJS pe backend.
  • O aplicație mobilă cu Ionic, Vue și Capacitor, pentru Android și iOS, cu propriul server în NestJS.
  • Microserviciile în Laravel care țin totul împreună.
  • Serverele și publicarea tuturor, inclusiv a aplicațiilor.

O singură ușă

Aplicațiile web și aplicația mobilă vorbesc cu un singur server, care face pe ușa de intrare: acolo se face autentificarea, și prin el trec apelurile către toate celelalte servicii.

Un proxy verifică cine apelează, adaugă cheile aplicației și ale serverului și, dacă cererea conține fișiere, le salvează mai întâi pe S3 și trimite serviciului doar datele lor. Așa aplicațiile cunosc o singură adresă, iar fiecare serviciu știe mereu cine îl apelează.

Servicii care lucrează împreună

Totul trece prin core: aplicațiile se autentifică acolo, iar de acolo se ajunge la celelalte servicii. IAM nu face autentificarea: spune core-ului și aplicației cine unde poate intra.

  • Zona rezervată web și aplicația mobilă vorbesc doar cu core-ul: autentificare unică, utilizatori, proxy.
  • Din core se ajunge la backend-ul aplicației, cu datele lui; la fișiere, adică formularele PDF; la cozi, în ambele direcții; la notificări, cu știri și avertizări.
  • IAM dă roluri și permisiuni core-ului și backend-ului aplicației; nu face autentificarea.
  • Aplicația de control al accesului vorbește cu notificările.

Node și Laravel pe aceeași coadă

O sarcină pornește din Node, trece prin coada Laravel și este făcută de un endpoint, scris în catalog.

  • Core-ul și backend-ul aplicației, în Node, și planificatorul, în Laravel, pun sarcinile în coadă: tabelul jobs, în MySQL, în formatul Laravel.
  • Worker-ul Laravel preia sarcina și citește în catalog adresa, metoda și cheile.
  • Apelează endpoint-ul serviciului, care face munca propriu-zisă.
  • Rezultatul ajunge printre rezultate, cu cererea și răspunsul salvate, sau printre cele eșuate, care din panou revin în coadă.
  • Serverele Node scriu sarcinile direct în coada Laravel, în formatul ei: o sarcină creată de Node este executată de un microserviciu Laravel.
  • Un planificator pornește la oră fixă sarcinile periodice, ca calculele de la sfârșitul lunii, apelând serviciile cu utilizatori dedicați; dacă ceva nu merge, sarcina rămâne printre cele eșuate, de reluat.
  • Toate notificările trec printr-un singur serviciu: fiecare aplicație le pune în coadă, iar el le salvează cu destinatarii și citirile și le trimite în aplicație, ca push sau pe email.
  • Datele sunt pe MongoDB, comune serviciilor; MySQL pentru cozi, Postmark pentru emailuri și semnarea online a contractelor.

De la servere la magazine

  • Serverele, gestionate de mine: la început cele Node pe Heroku, apoi totul mutat pe droplet-uri DigitalOcean gestionate cu Laravel Forge.
  • Bazele de date pe MongoDB Atlas și backup-urile pe Amazon S3.
  • Aplicația mobilă publicată în App Store și Google Play.

Ca o bancă online

  • Fiecare client cu profilul și zona sa privată.
  • Clienți autonomi în operațiuni, ca într-un internet banking.
  • Cumpărături direct din aplicația mobilă.

Optimizat pentru Netscape Navigator 4.0 — 800×600

Politica de confidențialitate