Web Solutions

Come realizziamo le nostre applicazioni web, mobile e desktop

Creiamo applicazioni veloci e sicure in Laravel, React Native, Electron, Vue.Js.

→ AGILE e Scrum, la logica degli sprint
Scrum è “un framework per sviluppare e sostenere prodotti complessi”, come viene definito dalla guida ufficiale.
Fa parte delle metodologie Agile, di cui è la versione di gran lunga più diffusa. Come tutte le metodologie Agile, si basa sulla divisione del progetto in più fasi, chiamate Sprint.
Ad ogni Sprint, il gruppo di lavoro presenta nuove funzionalità, operative e implementabili, che vengono fatte valutare al cliente. Si configura così un sistema iterativo che consente di incrementare poco alla volta, ma molto di frequente, le funzionalità del progetto.
E allo stesso tempo si può verificare costantemente l’andamento complessivo e la soddisfazione del cliente su quanto già prodotto.

 

→ Strumenti di condivisione e programmazione (Planner, Teams, diagramma di GANTT)
Durante la realizzazione utilizziamo strumenti per la condivisione del progetto: Microsoft Teams per comunicare con il team di sviluppo, Microsoft Planner per monitorare sprint e to do list, diagrammi di GANTT per gestire i rilasci.

 

→ OWASP come fondamento per la programmazione
OWASP è un acronimo che sta per Open Web Application Security Project.
Si tratta dunque di un progetto, di un’iniziativa nata con lo scopo di divulgare i principi del codice sicuro nelle fasi di sviluppo di un software.
Le tecniche e i principi definiti da OWASP stanno diventando delle best practices riconosciute a livello internazionale per la prevenzione delle vulnerabilità informatiche.
Tramite l’applicazione sistematica di queste procedure, lo sviluppatore può ridurre considerevolmente il rischio di data breach (violazione/perdita di dati) causati da attacchi hacker e agevolati da una scarsa qualità del codice.

→ Cloud Server
L’architettura si compone di 3 server:

  • 1 server dedicato al Frontend: qui verra installata l’applicazione sviluppata con Nuxt.js. Per farla funzionare utilizziamo PM2 che permette di interfacciare il server di Node.js su cui funziona, con Nginx.
  • 1 server dedicato al Backend: qui viene installata l’applicazione sviluppata in Laravel. Viene montato Apache e PHP 8. Su questo server viene configurato il dominio di backend (le famose “API”) che può essere reso interfacciabile anche con applicazioni di terze parti (oltre che applicazioni mobile e desktop e, ovviamente, il frontend).
    Viene anche configurato un dominio isolato dedicato allo storage dei file (codiddetto “static”). Se necessari, vengono configurati gli accessi FTP.
  • 1 server dedicato al Database: Viene installato MySQL 8. Questo server non è aperto al pubblico, può solo parlare con il server di Backend

Su tutti i 3 server viene installato Linux (Distro: Debian).
Può essere configurato anche un WAF per aumentare la sicurezza.

 

→ Ambienti di staging e produzione
Tutto l’ambiente di sviluppo è basato su Git (utilizziamo GitHub), per cui sono previsti 3 ambienti:

  • Development
    Ambiente di sviluppo (generalmente in locale)
  • Staging
    Area di test, è uguale all’area di produzione ma viene utilizzata per i test pre-produzione
  • Production
    Area di produzione dove viene installato il prodotto finito utilizzabile dall’utente.

Sviluppiamo 3 tipi di applicazioni: web, mobile e desktop.
Per ognuna di esse utilizziamo i migliori strumenti disponibili.

3.1 Hai bisogno di un’applicazione web: Laravel è la risposta!

Con Laravel è possibile creare applicazioni web di qualsiasi tipo di alto livello.

Il pregio di Laravel è che offre tutti gli strumenti di base necessari per realizzare app di livello: le rotte delle pagine web o delle API, le basi per l’autenticazione, le basi per la gestione della persistenza, l’invio di notifiche e molto altro.
Allo stesso tempo lascia spazio a qualsiasi tipo di personalizzazione. Tutto con un occhio rivolto alla sicurezza.

  • Frontend
    Sviluppato con Nuxt.js, è un Framework basato su Vue.js.
    Questo ambiente lavora su Node.js
  • Backend
    Sviluppato con il Framework Laravel, è basato su Symfony e il pattern MVC (Model-View-Controller).
    Utilizziamo Redis (pacchetto Linux + modulo PHP) per la gestione della cache, delle code di lavorazione in background.
    Usiamo il Supervisor (è un pacchetto Linux) per la gestione delle code, in modo da tenerle sempre attive e monitorate.
    Questo ambiente lavora su PHP e Composer.

Facciamo qualche esempio per capirci.

Un magazzino di medie dimensioni può essere controllato tramite una web app che gestisce e ottimizza tutti i processi logistici: dal monitoraggio delle giacenze all’inserimento degli ordini, dalla gestione dei corrieri fino alla fatturazione.

Un altro esempio: il gestionale per il customer service. Una web application fornisce una visione d’insieme di tutti i clienti dell’azienda: dall’anagrafica completa allo storico degli interventi, per non parlare poi delle azioni di post-vendita e di marketing.

3.2 Applicazioni mobile veloci grazie a React Native.

React Native permette di sviluppare un’applicazione nativa multipiattaforma (iOS, Android) condividendo lo stesso codice nativo ma allo stesso tempo permettendo di personalizzarlo in base alla piattaforma.

Inoltre, l’applicazione può essere “estesa” per sviluppare facilmente la versione per la TV (AndroidTV, tvOS).

React Native è un estensione di React (un Framework sviluppato da Facebook).

3.3 Realizziamo app desktop cross-platform JavaScript, HTML, and CSS con Electron.

electron

Electron permette di sviluppare un’applicazione nativa multipiattaforma (macOS, Windows, Linux) condividendo lo stesso codice nativo ma allo stesso tempo permettendoti di personalizzarlo in base alla piattaforma.

Inoltre, essendo basata su Node.js, il codice del Frontend può essere usato come base da cui partire.

Prima di procedere con i test manuali, usiamo dei test automatizzati con una libreria PHPUnit per quanto rigurada l’ambiente Laravel e utilizziamo Jest per quanto riguarda l’ambiente con Node.js.

Dopo aver pubblicato l’applicazione, su tutti i nostri ambienti viene installato Sentry è un servizio che tiene monitorati tutti gli errori e gli eventi non previsti quando il prodotto va in produzione.

È molto utile poichè accorcia i tempi di debug del problema e fornisce informazioni utili per risolvere i problemi.

Dal sito web aziendale all'applicazione personalizzata

Raccontaci il tuo progetto: lo svilupperemo insieme a te

Creiamo l’applicazione che fa per te, che sia un sito vetrina, un ecommerce o un’applicazione mobile realizzata su misura in base alle tue necessità.

01.

Sviluppo siti web

Velocità, semplicità e sicurezza: partendo dallo studio grafico, progettiamo e realizziamo siti web con piattaforme open source, performanti da mobile e user-friendly.

02.

Mobile Application

Creiamo applicazioni per iOS e Android interfacciate con qualsiasi sito web, utilizzando framework ibridi come Ionic e React Native.

03.

Digital Signage

Soluzioni complete e pronte all’uso che permettono di sfruttare le potenzialità delle tecnologie digitali e creare campagne di comunicazione coinvolgenti, rapide, sempre aggiornate.

04.

Ecommerce

Consulenza, analisi, strategia, piattaforma performante e sicura: realizziamo il tuo ecommerce e ti aiutiamo a gestire in modo redditizio la vendita online.

05.

Web Application

Realizziamo applicazioni web integrate che consentono lo scambio di dati e l’integrazione dei processi di business.

06.

Digital Scan

Il check up del tuo un sito web, partendo dalla salute e dall’usabilità della piattaforma, passando dalla reputazione online del brand, fino ad arrivare alla sicurezza e alla vulnerabilità del dominio.

Le Business Units di Gmg Net

Affidati a noi

Hai un'idea ma non sai come realizzarla?

Siamo un team di creativi, developer, marketers, appassionati di UX Design ed esperti di Cyber Security pronti a dare corpo alle tue idee più ambiziose.