21Million Academy

Piattaforma di corsi di finanza con video protetti, che sostituisce WordPress e LearnDash con un backend su misura.

Online su
21million.it
Tecnologie
Astro, Node.js, PostgreSQL, VdoCipher, Coolify
Area
Software
Pagina iniziale di 21Million Academy

Il punto di partenza

21Million Academy è una piattaforma di corsi di finanza. Girava su WordPress con LearnDash per i corsi, BuddyBoss per la community e VdoCipher per i video protetti. Per far funzionare l’app mobile avevamo già scritto un plugin ponte, perché le API di LearnDash non davano né i progressi dell’utente né l’accesso protetto ai video.

Ogni funzione nuova significava un plugin in più da aggiornare e un altro punto da cui poteva rompersi qualcosa. L’obiettivo era togliere WordPress senza che gli iscritti se ne accorgessero: stessi corsi, stessi progressi, stessa password.

Cosa abbiamo fatto

Abbiamo scritto un backend in Node.js con database PostgreSQL che gestisce corsi, lezioni, iscrizioni, progressi, certificati e community. Le sue API ricalcano una per una quelle del plugin ponte: all’app è bastato cambiare l’indirizzo del server, senza toccare il codice.

Per portare fuori i dati da WordPress non abbiamo chiesto l’accesso al database. Uno script crea un frammento di codice temporaneo sul sito, scarica password cifrate, iscrizioni e progressi, e poi lo cancella. Anche gli identificativi di WordPress sono rimasti gli stessi, così ogni link e ogni riferimento dell’app punta ancora alla risorsa giusta.

Le password non sono state reimpostate. Al primo accesso il backend verifica la password nel vecchio formato di WordPress e la riscrive in un formato più sicuro (bcrypt). Chi entra non nota niente.

Il sito pubblico è in Astro: pagine statiche per catalogo e schede dei corsi, e un’area riservata per seguire le lezioni. Il server web gira al backend le chiamate delle API, sullo stesso dominio.

Durante il passaggio WordPress è rimasto acceso in sola lettura, per poter tornare indietro in qualsiasi momento.

Com’è fatto

  • Backend Node.js ed Express, database PostgreSQL
  • Sito Astro servito da nginx
  • Video VdoCipher con codice di visione valido 5 minuti, chiesto dal server solo per chi è iscritto
  • Filigrana in movimento con l’email di chi guarda, contro la condivisione degli account
  • Accessi con token a scadenza breve e limite ai tentativi di login
  • Community con bacheca, membri, messaggi e notifiche
  • Pubblicazione con Coolify a ogni modifica del codice

Risultato

Il sito gira sul nuovo sistema: 47 corsi e 849 lezioni vivono ora in un database nostro, insieme agli iscritti e ai loro progressi. I contenuti a pagamento sono protetti a ogni passaggio: chi non è iscritto a un corso non riceve né la lezione né il codice per vedere il video. Sito e app usano le stesse API e gli stessi account, e anche la pagina privacy dichiarata negli store è rimasta allo stesso indirizzo.

Vuoi qualcosa di simile? ParliamoneTutti i lavori