El Catre — Prima Piattaforma E-Commerce Indipendente di Cuba.

Sfida
El Catre si è proposto come la prima piattaforma e-commerce indipendente di Cuba — un marketplace dove le piccole imprese cubane potessero aprire vetrine, elencare prodotti, lanciare promozioni e accettare pagamenti. Costruire per Cuba significava aggirare i vincoli dell'embargo statunitense sulle vie di pagamento, progettare per connettività intermittente, e combinare un layer di commercio sociale — chat in tempo reale, notifiche push, condivisione — sopra un carrello e un checkout convenzionali.
Approccio
Ho costruito il frontend in Nuxt 2 con Vue 2, Vuex e Buefy sopra un client Apollo GraphQL che parla con un backend Django + Graphene. L'autenticazione federava la verifica telefonica di Firebase con OAuth Facebook/Google e token JWT emessi dal backend. La chat in tempo reale e le notifiche live giravano su Django Channels tramite vue-native-websocket, le notifiche push passavano per OneSignal, e ApexCharts alimentava le dashboard di analytics per i venditori. Il supporto PWA e il server-side rendering hanno tenuto l'app utilizzabile su connessioni lente.
Stack
Risultato
Lanciata una piattaforma e-commerce multi-tenant a Cuba con vetrine venditori, catalogo prodotti, carrello e checkout, chat in tempo reale, dashboard di analytics e funzionalità di commercio sociale. La piattaforma non è più attiva.
Contributi Principali
- Frontend Nuxt 2 con SSR e client Apollo GraphQL con query HTTP batched
- Vetrine venditori, catalogo prodotti, ordini, carrello e flussi di checkout
- Chat in tempo reale e notifiche su WebSocket (backend Django Channels + Redis)
- Autenticazione federata — verifica telefonica Firebase, OAuth Facebook e Google, JWT
- Notifiche push tramite OneSignal e integrazione email tramite Mailchimp
- Dashboard di analytics per venditori con ApexCharts; ritaglio immagini e generazione QR per i flussi prodotto
- Ottimizzazione PWA + SSR per le condizioni di rete cubane
- Supporto al backend Django + Graphene come contributore secondario (non ero lo sviluppatore backend principale)