Mastering React - Creare uno shop con CMS

React PRO - Creare
Real World applications

Tailwind, Zustand, Vite e TypeScript

Un corso pratico in cui sviluppiamo da zero un'applicazione React con TypeScript analizzando diversi scenari e casi d'uso frequenti - autenticazione, state management locale e globale, gestione forms, router, creazione layout e componenti, best practices e molto altro...
~8 ore
di lezione
160+ lezioni
intensive
10 capitoli
(real world app)
2 capitoli
(bonus)
Mastering React - Creare uno shop con CMS

Il corso

Questo corso sposa la filosofia "Learn by Doing".

Creeremo passo-passo un piccolo negozio per la vendita di prodotti, dal layout alla gestione del carrello. Avrai modo, inoltre, di configurare il database e sviluppare il relativo CMS per la gestione di ordini e prodotti, integrando tutto il processo per gestire autenticazione e sicurezza .

Cosa imparerai in questo corso?

L'obiettivo del corso non è tanto quello di creare un software pronto per la produzione ma:

  • acquisire confidenza nell'utilizzo di TypeScript in progetti React
  • creazione layout con Tailwind, senza l'ausilio di UIKIT esterni e/o template di terze parti
  • gestione route di primo e secondo livello, con navigazione primaria e secondaria
  • gestire componenti con molti stati locali tramite l'utilizzo di useReducer, separando azioni, side effect, selettori e stato
  • comprendere il potenziale degli state manager per la gestione dello stato globale (utilizzeremo Zustand)
  • creare un database tramite l'utilizzo di PocketBase (un fantastico strumento scritto in Go, che potrete utilizzare anche in altri progetti reali)
  • effettuare le classiche operazioni CRUD creando un CMS da zero per gestione prodotti, ordini e upload di immagini
  • gestire il processo di autenticazione con JWT e tutti gli step necessari per limitare l'accesso all'area riservata, agli elementi del DOM e alle route protette
  • applicare best practices e strategie di clean coding per la creazione di codice manunitebile
  • 1
    Modern Stack
    React 18, TypeScript, Vite, Tailwind, Zustand.
    2
    Progetto real-world
    Sviluppo applicazione CRUD con area pubblica e riservata. La maggior parte dei concetti sono comunque applicabili anche in meta-framework come Next o Gatbsy e state manager come Redux
    3
    Pochissime dipendenze
    Utilizzeremo pochissime dipendenze, quindi creeremo layout, componenti e la maggior parte delle funzionalità dell'applicazione senza l'ausilio di UIKIT o dipendenze di terze parti.
    4
    Mini corso ES6 & TypeScript
    Incluso nel prezzo un mini-corso di 3 ore su Javascript ES6 e TypeScript, propedeutico all'apprendimento di React
    5
    Supporto
    Puoi chiedere supporto tramite i commenti visibili sotto ad ogni video

    A chi è rivolto

    Beginners

    Beginners

    Non hai mai usato React?
    Questo percorso rappresenta la strada più veloce per comprendere il potenziale della libreria tramite la creazione di un progetto reale.

    Sei alle prime armi nello sviluppo Front-End?
    Troverai incluso un mini-corso su JavaScript ES6 e TypeScript. Il primo capitolo bonus, inoltre, fornirà una panoramica veloce su React e TypeScript e ogni capitolo ininzia un elenco dei prerequisiti necessari per svolgerlo in serenità, con relativi link di approfondimento
    React Developer

    React Developer

    Utilizzi React da un po' di tempo o hai già seguito un corso base?

    Potrai scoprire nuovi trick, strategie e strumenti da applicare nel lavoro quotidiano!
    Consulta il programma completo disponibile in questa pagina e verifica se il corso è adatto alle tue esigenze

    *Puoi anche acquistarlo, valutarlo ed eventualmente chiedere il rimborso entro 30gg nel caso non soddisfi le tue aspettative

    Requisiti

    Tutti i concetti descritti nel corso sono affrontati passo-passo. Tuttavia consiglio di acquistarlo solo se si possiedono le seguenti conoscenze:

  • HTML e CSS: conoscenza base
  • Confidenza nell'utilizzo di JavaScript ES6: manipolazione Array e Oggetti, destructuring, arrow syntax, promise, Spread operator. Incluso nel prezzo troverai comunque un corso introduttivo di 3 ore su JavaScript ES6 e TypeScript
  • Utilizzo basilare dei types in TypeScript: non è necessario che tu conosca TypeScript ma, prima di iniziare, ti consiglio di guardare il mini corso su ES6 / TypeScript incluso nel pacchetto e il capitolo Bonus su React e TypeScript
  • Punti di forza

    Acquisire il know-how necessario per creare progetti reali in React nel più breve tempo possibile:

    Progetto real-world

    Progetto real-world

    Organizzare e strutturare un progetto React / TypeScript
    Tailwind & CSS

    Tailwind & CSS

    Creare layout senza l'ausilio di componenti e temi pre-confezionati
    React e TypeScript

    React e TypeScript

    Acquisire confidenza con React e le sue API con particolare attenzione all'utilizzo di TypeScript
    State Management

    State Management

    Gestione stato locale con useReducer e stato globale con Zustand
    React Router

    React Router

    Creare applicazioni multi-view con route di primo e secondo livello
    Clean Coding

    Clean Coding

    Best practices, convenzioni e diversi consigli utili per la creazione di codice manutenibile
    Autenticazione

    Autenticazione

    Gestire il processo di autenticazione e sicurezza: area pubblica e riservata, protezione DOM e route, procedure di login / logout e molto altro...
    CMS

    CMS

    Utilizzo di CMS Headless (PocketBase), creazione del database e integrazione con SDK esterni.
    PREVIEW
    La piattaforma
    Il corso è fruibile tramite la piattaforma Teachable:

    • Video tutorial organizzati in lezioni e capitoli
    • Elenco pre-Requisiti con link di approfondimento all'inizio di ogni capitolo
    • Risorse e codice sorgente disponibile sotto ogni video
    • Possibilità di commentare ogni lezione e chiedere supporto
    • Possibilità di inserire note personali
    • Monitoraggio del proprio progresso
    LEARN BY DOING
    Crea un progetto reale da zero
    In questo corso realizziamo un semplice shop online per l'acquisto di prodotti, con carrello, CMS per gestione prodotti e ordini, autenticazione e molto altro. Utilizzerai React e TypeScript, il layout sarà creato interamente con Tailwind, lo stato locale tramite useReducer e quello globale con il micro state manager Zustand, utilizzerai Cloudinary per l'upload delle immagini, gestirai router, forms e molto altro.

    Riassumendo:
    affronterai moltissimi scenari tipici presenti nella maggior parte delle applicazione front-end.
    AUTENTICAZIONE JWT
    Sviluppo dell'area riservata
    Creiamo un'area riservata, con accesso protetto tramite JWT, per la gestione di prodotti e ordini:

    creazione database, sviluppo pagina di login e procedura di logout, proteggere l'area riservata da accessi indesiderati, nascondere elementi del DOM in base allo stato dell'utente e molto altro...

    Il corso non approfondisce l'aspetto relativo alla sicurezza e la strategia utilizzata da PocketBase, JWT + localStorage, è stata integrata a titolo esemplificativo allo scopo di descrivere e implementare diverse funzionalità di React.
    PREVIEW CORSO
    POCHISSIME DIPENDENZE
    Uno dei problemi più diffusi nello sviluppo e per la manutenzione di applicazioni React è il numero elevato di dipendenze che spesso includono questi progetti. Spesso si installa una dipendenza senza pensarci molto ma la realtà dei fatti è che rappresenterà di certo un debito tecnico !

    Per questo motivo creeremo pressoché tutto da zero eccetto per alcune dipendenze chiave:
  • clsx: utility (20 righe) per applicare dinamicamente classi CSS
  • font-awesome: un banale set di icone
  • pocketbase: l'SDK per comunicare con il database che integreremo
  • react, react-dom e react-router-dom: la libreria React e il router più utilizzato nel suo ecosistema
  • zustand: uno dei micro state manager più diffusi per gestire facilmente stati globali
  • CONSIDERAZIONI PERSONALI
    BEST PRACTICE e TIPS
    React non è un framework opinionato e per questo motivo ogni sviluppatore ha diverse metodologie di lavoro e convinzioni su quale sia l'approccio migliore per risolvere un problema o gestire un determinato scenario.

    Anche se il progetto realizzato è composto da poco più di 50 files, in questo percorso cercherò di trasferire la mia esperienza, le strategie e i pattern che spesso adotto per creare applicazioni scalabili e manutenibili nel tempo.

    Il Programma

    Il progetto è stato realizzato con React 18.2, Vite 4, Tailwind 3, React Router 6.8 e le ultime versioni di ogni libreria (aggiornate al primo trimestre del 2023).

    Ogni capitolo ha due obiettivi:

  • sviluppare una specifica sezione del progetto
  • esplorare un argomento, utilizzando diverse API, strumenti e/o pattern
  • CAPITOLO BONUS: Introduzione su React, TypeScript e TSX
    Durata: 46:02
    Un bonus per apprendere o ripassare velocemente le fondamenta di React e JSX in TypeScript:
    01. Introduzione
    02. Creare un progetto React / TypeScript con Vite
    2:41
    03. React Components e TSX: Arrow Function vs Regular Function
    1:00
    04. JSX Multiline
    0:55
    05. React Fragment
    1:24
    06. JSX Expressions
    0:37
    07. Dynamic Attributes
    0:35
    08. Conditional DOM
    0:56
    09. Ternary Operator
    0:24
    10. Split in functions
    1:28
    11. Custom components
    1:16
    12. Component Properties
    1:56
    13. Split in multiple files
    1:47
    14. Mouse Events
    0:58
    15. Rendering e React Strict Mode
    1:51
    16. useState hook
    4:04
    17. Visualizzare un elenco di dati con map
    1:32
    18. useState & Map: aggiungere elementi alla lista
    2:22
    19. useEffect and Fetch Data (GET)
    4:35
    20. fetch, POST e aggiornamento stato
    1:52
    21. Custom Types
    2:32
    22. Utilizzare axios per la comunicazione con le API REST
    2:29
    23. TypeScript TIP: strict flag in tsconfig
    1:31
    24. TypeScript TIP: noImplicitAny
    1:04
    25. TypeScript TIP: Union Type
    0:30
    26. TypeScript TIP: Typed useState
    2:49
    27. TypeScript TIP: useState, Union Type e null
    1:32
    28. TypeScript TIP: strictNullCheck
    1:52
    Capitolo 1: React, Vite, TypeScript & Tailwind
    Durata: 26:37
    Creare un progetto React 18 utilizzando Vite e TypeScript.
    L'obiettivo del capitolo è quello di configurare il progetto correttamente, impostare il layout e iniziare a prendere confidenza con Tailwind creando diverse classi di utility globali che ci serviranno per la realizzazione dell'applicazione: buttons, forms, layout, tabelle.
    1. Creare il progetto React con Vite
    1:39
    2. Strict Mode
    1:50
    3. Configurare Tailwind
    2:52
    4. Utilizzare Google Font
    0:58
    5. Tailwind @apply utility e mobile developers tools
    6:00
    6. Tailwind Page responsive layout
    2:41
    7. Tailwind Creare Button e varianti
    6:07
    8. Tailwind Forms Plugin
    2:41
    9. Tailwind Tables
    1:49
    Capitolo 2: Multiview applications con React Router
    Durata: 32:42
    Come creare Single Page Application multi-view con route di primo e secondo livello. Si analizzano, inoltre, alcune best practices per l'ottimizzazione degli import e l'organizzazione delle cartelle del progetto
    01. Creare le pagine dell'applicazione
    3:56
    02. Installare React Router e creare le regole
    7:10
    03. La Navigation Bar (+ Emmet TIP)
    10:33
    04. Nested Routes e Navigazione Secondaria
    3:01
    05. TIP - Short imports con Barrel Files
    3:02
    06. TIP - TypeScript Alias paths
    5:00
    Capitolo 3: CMS & API con Pocket Base
    Durata: 28:06
    Installare e configurare PocketBase, un CMS headless scritto in Go che sfrutteremo per la creazione delle REST API e per tutto il processo di autenticazione e sicurezza. Sarà, inoltre, creato il database step-by-step, sarà utilizzato l'SDK JavaScript di PocketBase e si procederà con la sua integrazione e la visualizzazione dei primi dati all'interno dell'applicazione React
    01. Installare Pocket Base
    4:10
    02. Database - la collezione products
    3:50
    03. Database - la collezione orders
    3:08
    04. Popolare il database
    2:29
    05. Installare e usare l'SDK JavaScript di PocketBase
    3:40
    06. Creare il custom type "Product"
    2:58
    07. L'hook useEffect
    2:29
    08. Gestione stato locale con useState e visualizzazione prodotti
    1:42
    09. TIP - env variables - differenziare le proprietà tra ambiente di sviluppo e produzione
    2:57
    10. Creare il file pocketbase di configurazione
    0:43
    Capitolo 4: Shop Page
    Durata: 20:24
    Creiamo la pagina del negozio online per la visualizzazione dei prodotti.
    In questo capitolo daremo spazio al concetto di componenti: organizzare la view in componenti gestendo stato, proprietà e lifecycle.
    01. Shop Layout - CSS Grid with Tailwind
    1:13
    02. Creare il layout dello Shop con Tailwind
    3:31
    03. Creare il componente ProductCard: gestire proprietà primitive e callback
    7:49
    04. Comunicazione con le API REST e gestione stato di "pending"
    1:38
    05. Gestione degli errori
    1:33
    06. Creare il componente "ServerError"
    1:32
    07. TIP - Aggiornare gli alias paths in tsconfig.json
    0:18
    08. Creare un componente "Spinner" animato utilizzando le icone di FontAwesome
    2:50
    Capitolo 5: Zustand e gestione stato globale
    Durata: 24:38
    Installare e configurare il micro state manager "Zustand" per creare porzioni di stato accessibili globalmente. Creeremo un componente "CartPanel" per visualizzare una preview del carrello in overlay, il cui stato di visualizzazione sarà controllato da diverse parti dell'applicazione
    01. CartPanel Layout
    7:17
    02. useCartPanel - Glogal Store con Zustand
    6:15
    03. Use global state in NavBar e Shop Page-audio
    3:10
    04. Usare lo store nel componente Cart Panel
    0:57
    Capitolo 6: Il Carrello e la pagina Checkout
    Durata: 01:01:50
    Creaimo il carrello della spesa e la pagina Checkout esplorando diversi argomenti: utilizzo di stati locali, globali, creazione di "controlled forms", validazioni e molto altro.
    01. Cart Store con Zustand
    6:50
    02. Dynamic Cart Panel - Utilizzare lo store
    2:42
    03. Enhance Store - gestione quantità
    2:58
    04. Cart Selectors
    4:12
    05. Usare i selettori nella NavBar
    0:52
    06. La pagina Cart
    7:39
    07. useCart store - refactoring e completamento
    4:01
    08. Checkout Button
    1:44
    09. Controlled Forms: la pagina Checkout
    10:06
    10. Form Validations
    1:45
    11. Form Field Validation e dynamic CSS class con "clsx"
    1:46
    12. Dirty State e setState simultanei
    2:28
    13. Regex Validators
    0:50
    14. Form Prevent Default
    1:23
    15. Creare il Type Order
    3:37
    16. Ultimi fix per procedere alla pagina thank you
    2:22
    17. useCheckout - spostare la business logic in un custom hook
    4:09
    18. Thank you Page
    0:22
    19. Disabilitare il Cart Badge se il carrello è vuoto
    0:40
    20. Demo Finale
    1:24
    Capitolo 7: Autenticazione
    Durata: 33:35
    Gestire il processo di autenticazione: si utilizza lo state manager Zustand per la gestione delle procedure di sign-in e logout, store e azioni e si creano componenti per la protezione degli elementi del DOM e delle route.
    01. Login Form - Controlled Form
    4:36
    02. useLogin - Custom Hook
    1:13
    03. Creare un modulo per le API di Authentication di PocketBase
    2:27
    04. Authentication Store and Actions con Zustand
    5:07
    05. Auth Zustand Selectors
    0:42
    06. Auth Barrel File
    0:52
    07. Usare le API di Autenticazione
    1:47
    08. Gestione Errori nel Login
    1:53
    09. Redirect dopo il login con useEffect
    1:37
    10. AuthLogin e LocalStorage
    1:48
    11. Logout
    1:45
    12. Componente "IfLogged": protezione DOM, Fragment and PropsWithChildren
    4:28
    13. Componente IfLogged...else
    1:53
    14. Private Route
    3:21
    Capitolo 8: useReducer, custom hooks e side effects
    Durata: 01:06:18
    Organizzare stato, side effects e azioni tramite l'utilizzo dell'hook useReducer.
    Ampio spazio sarà dato alla gestione dei tipi in TypeScript
    Pre-Requisiti
    14:06
    Introduzione e Obiettivi del capitolo
    1:16
    01. da useState a useReducer
    12:11
    02. Products API - non-null -assertion operator and typescrit utility types
    7:58
    03. Typed State
    1:39
    04. Typed Actions
    2:53
    05. Product Actions
    4:19
    06. Separare il reducer dalla UI
    0:54
    07. Products Reducer
    9:28
    08. useProductsService - custom Hook Prodotti
    10:16
    09.Barrel File e Considerazioni su Refactoring
    1:18
    Capitolo 9: CMS UI - Components
    Durata: 01:28:36
    Ampio spazio sarà dato alla creazione e all'organizzazione delle view in componenti. Si creano inoltre controlled forms, componenti riutilizzabili, si esplorano funzionalità come l'hook useEffect, la gestione di proprietà, la gestione di stili e layout e molto altro.

    Verrà, quindi, completata la UI del CMS per l'inserimento, la cancellazione, la modifica e l'upload delle immagini dei prodotti,
    01. useEffect
    1:09
    02. Differenziare i messaggi d'errore nel componente "ServerError"
    3:28
    03. Spinner, useEffect e cleanup function-applicare un debounce
    5:03
    04. Creare la tabella statica per la visualizzazione dei prodotti
    2:29
    05. Popolare la tabella, cancellare e selezionare elementi e stopPropagation
    10:00
    06. clsx - applicare dinamicamente classi css
    3:33
    07. Product List Component
    7:26
    08. Product Form - creare un side panel con transitions
    7:59
    09. Product Form - Controlled Form e Validazioni
    8:02
    10. useEffect e dipendenze - sync props con state
    3:16
    11. Product Form - gestire EDIT e ADD
    7:17
    12. Gestire campi di tipo differente
    6:01
    13. Dirty State
    0:59
    14. Immagini
    0:43
    15. Scrollable Side Panel
    0:26
    17. Upload con Cloudinary Widget
    8:05
    16. Upload images con Cloudinary - Setup Account
    2:57
    18. useCloudinary - custom hook e Promise
    6:44
    19. Creare il file definition type per Cloudinary: index.d.ts
    1:31
    20. ShopPage - refactoring - usare actions e reducer
    1:28
    Capitolo 10: gestire gli ordini
    Durata: 31:18
    Gestire gli ordini degli utenti. Si consolidano i concetti acquisiti nei capitoli precedenti
    CAPITOLO PRESTO DISPONIBILE!

    Riassunto argomenti:
    01. Caricare gli ordini
    3:24
    02. Order Type
    4:26
    03. Orders API
    2:03
    04. Orders Actions
    1:45
    05. Orders Reducer
    2:37
    06. useOrdersService: custom hook
    6:49
    07. Orders Barrel File
    0:23
    08. CMS Orders Page - invocare la prima azione
    0:49
    09. CMSOrders Page - UI
    3:20
    10. Salvare su database il nuovo ordine
    1:23
    11. Gestire Azioni e Promise
    4:19
    Capitolo 11: Bonus e Aggiornamenti
    Durata: 15:14
    01. React, Components & CSS Modules: Local vs Global CSS
    09:10
    02. Versioning & Deploy di applicazioni React su Vercel
    06:03
    03. React Router & Lazy Loading (IN ARRIVO)
    04. Reusable Layout components (IN ARRIVO)
    + altri video in arrivo....
    Incluso nel pacchetto
    Mini corso JavaScript ES6 / TypeScript
    JavaScript ES6 Fundamentals
    • Introduzione ad ES6/TS, Babel e Webpack (8:48)
    • Javascript ES6 - Cheatsheet
    • var vs let - Block Scope vs Function Scope (4:06)
    • Le costanti: const - Mutabilità vs Immutabilità (6:23)
    • Template literals: stringhe multiline con espressioni (3:58)
    • Short Object syntax (2:26)
    • Destructuring Array (3:38)
    • Destructuring Object - part 1 (5:47)
    • Destructuring Object - part 2: nested props (3:27)
    • Destructuring Object - part 3: rename & short object syntax (2:13)
    Manipolazione dati e immutabilità
    • Array Spread operator: clone, merge e modifica array (3:15)
    • Object Spread operator vs Object.assign (4:55)
    • Arrow function (4:32)
    • Array: map (4:10)
    • Array: filter (2:41)
    • Array: find & findIndex (3:29)
    • Immutabilità in ES6, React, Angular, Redux (13:30)
    • Classes, Ereditarietà e lexical this (6:41)
    imports and modules
    • Creazione progetto ES6 con webserver e npm (3:01)
    • Hello ES6: il tag "script" (1:38)
    • Import modules e type="module" (5:34)
    • Import as (1:56)
    • Import default (5:23)
    Async & Promise: by Andrea Simone Costa
    • Promises (8:39)
    • Fetch: comunicazione con il server (2:53)
    • Async Await (2:31)
    TypeScript: fundamentals
    • Introduzione a TypeScript (1:29)
    • Utilizzare il mio playground TypeScript (3:45)
    • Utilizzare on-line playground: StackBlitz (3:19)
    • Inferenza in TypeScript (2:36)
    • Primitives Types (4:17)
    • Tipizzare oggetti usando interface e gestione proprietà opzionali (5:55)
    • Tipizzare oggetti complessi (4:14)
    • Tipizzare array (3:15)
    • Utilizzo di class e type per la tipizzazione (6:15)
    • Classi: private vs public (1:41)
    • Classi: getter & setter (3:42)
    • Tipizzare funzioni (5:02)
    • Type, literals e introduzione a Union types (1:56)

    Acquista il corso

    Accedi al materiale dove e quando vuoi... per sempre!

    5 studenti

    98
    + iva
    /utente
    • Prezzo scontato per 5 o più utenti

    • Report / Progress per singolo utente

    • Promozione applicabile solo a società e team. Non gruppi di acquisto

    SUPER PROMO / LIMITATA

    Singolo Utente

    178 + iva
    40% di sconto (offerta limitata)
    • Corso React Pro:
      Creare Real World applications
    • ~160 video tutorial
    • 12 capitoli
    • ~8 ore di lezione
    • Corso JavaScript ES6 / TypeScript (+3 ore di lezione)
    • 15 gg soddisfatto o rimborsato
    Hai bisogno della fattura?
    Devi inserire i dati in fase di acquisto cliccando il checkbox "Add a business tax ID" o non sarà più possibile richiederla

    10 studenti

    78
    + iva
    /utente
    • Prezzo scontato per 10 o più utenti

    • Report / Progress per singolo utente

    • Promozione applicabile solo a società e team. Non gruppi di acquisto

    FAQ

    Ho qualche dubbio che il corso faccia al caso mio. Posso contattarti?
    Certo, puoi scrivermi tramite il Form di Contatto
    È possibile fruire il corso simultaneamente su device?
    Gli accessi simultanei alla piattaforma da diversi IP verranno bloccati. Nel caso fossi interessato all’acquisto di più di una licenza d’uso sono previsti degli sconti.
    Contattami per ulteriori info.
    È previsto un rimborso nel caso non fossi soddisfatto?
    Sono sicuro che apprezzerai i contenuti del corso ma se non fossi soddisfatto potrai comunque essere rimborsato totalmente entro 15 giorni dall'acquisto
    Posso ricevere la fattura?
    In fase di acquisto, è necessario inserire la partita iva (utilizzando IT come prefisso, ad es. IT1234567890) cliccando sul pulsante "+ ADD BUSINESS DETAILS" e inserire i dati per la fatturazione. Teachable, la piattaforma americana utilizzata per erogare i corsi, si occupa di tutto il processo di pagamento e di mettere le ricevute di acquisto. Essendo un sistema di pagamento extra EU, nel caso di acquisto con partita iva, l'iva non sarà applicata e quindi sarà tolto il 22% dal totale. Prima di effettuare l'ordine guarda un esempio di fattura che riceverai.
    L'iva viene applicata? La fattura è inviata da un'azienda americana
    Il mio corso è fruibile tramite la piattaforma Teachable, azienda con sede negli Stati Uniti. Per questo motivo: se richiedi la fattura e inserisci la partita iva in fase di acquisto NON verrà applicata l'iva. Al contrario, il costo per i privati sarà comprensivo di IVA
    La possibilità di visionare il corso è limitata nel tempo?
    No! La licenza d’uso non ha nessuna scadenza. Una volta acquistato il corso potrai fruire dei contenuti del corso ed eventuali aggiornamenti senza limiti di tempo.
    Dubbi e Domande?
    Scrivimi in privato su LinkedIn o utilizza l'apposito form di contatto
    Dove posso seguirti per ulteriori aggiornamenti?
    Sono presente su tutti i principali social network. Trovi i link nel footer.
    Per tutti gli aggiornamenti puoi seguirmi su Telegram e non dimenticare di iscriverti alla newsletter
    ☠️ PIRATERIA : hai visto il mio corso replicato su qualche piattaforma oppure la tua azienda condivide l'account tra più studenti?
    Per favore inviami una segnalazione compilando il Form di contatto
    Keep updated about latest content
    videos, articles, tips and news