Muhammad Arslan
Assumimi
Torna ai progetti

Halatap

Una piattaforma per creare, condividere ed esportare moderni biglietti da visita da un'unica dashboard tramite email, QR, vCard e Apple Wallet.

Ruolo: Front-end and feature engineer (multi-developer team)Tempistiche: 2025-2026Tipo: Full-stack web app

Next.js 16

React 19

TypeScript

Convex

Tailwind CSS 4

Radix UI

Resend

Anteprima interattiva del biglietto digitale Halatap con profilo di esempio

Panoramica

Halatap sostituisce il biglietto da visita cartaceo con un'alternativa digitale sempre aggiornata. Ogni utente dispone di una dashboard per creare biglietti a partire da una serie di modelli, per poi condividerli secondo le necessità del momento: un link pubblico, un codice QR, un'email, un file di contatto scaricabile o un pass salvato direttamente in Apple Wallet. È un'applicazione full-stack realizzata con Next.js e Convex, dotata di account sicuri, dati in tempo reale e supporto bilingue per inglese e arabo.

Il problema

I biglietti cartacei sono invecchiati male. Le informazioni diventano obsolete nel momento stesso in cui cambiano un ruolo aziendale o un numero di telefono, sono facili da perdere ed esistono solo in un unico formato fisico. La condivisione digitale in pratica non è migliore, perché finisce per frammentarsi tra link, PDF, codici QR e app di messaggistica senza un'unica fonte di verità. Inoltre, gli utenti internazionali necessitano di biglietti in più lingue e i team hanno bisogno di un modo per creare molti biglietti contemporaneamente anziché uno alla volta. Halatap si è posta l'obiettivo di integrare tutto questo in un unico sistema.

Il mio ruolo e approccio

Questo è stato un progetto di squadra, e ho contribuito sia al front-end che a diverse funzionalità end-to-end collaborando con altri sviluppatori. Il lavoro ha coperto l'esperienza di creazione dei biglietti e della dashboard, i flussi di condivisione e le integrazioni che rendono il biglietto utile all'esterno dell'app: pass Wallet, esportazione vCard e invio di email. L'approccio adottato è stato quello di mantenere il prodotto modulare: un unico sistema di template gestisce sia l'anteprima nell'editor che il biglietto pubblico, e un singolo schema serve sia la creazione singola che l'importazione massiva, consentendo alle funzionalità di riutilizzare le medesime basi anziché ramificarsi.

Stack tecnologico

FrameworkNext.js 16 (App Router) with React 19 and TypeScript
BackendConvex for the real-time database, queries, and mutations
Stile / UITailwind CSS 4 with Radix UI primitives
Autenticazionecustom email/password plus Google OAuth
EmailResend, through the Convex integration
Pass Walletpasskit-generator with node-forge for certificate signing
ExtraJotai for local state, Framer Motion for transitions, react-qr-code, Sonner for notifications

Funzionalità chiave

Generatore di biglietti basato su templatemodelli multipli in cui l'anteprima e il biglietto pubblico finale vengono renderizzati a partire dagli stessi componenti, così ciò che progetti è esattamente ciò che condividi.
Dashboard multi-bigliettocreare, modificare, duplicare, eliminare e condividere qualsiasi numero di biglietti da un'unica posizione.
Condivisione pubblica e privatai biglietti pubblici si aprono da un link; i biglietti privati sono riservati a specifici indirizzi email di destinatari, con restrizione applicata nel backend.
Condivisione via emailinviare un invito con biglietto da visita tramite Resend con link e contesto allegato.
Pass Apple Walletgenerare un file PKPass firmato con colori specifici per il biglietto, un codice a barre QR per il link pubblico e campi localizzati.
esportazione vCardscaricare i dati di contatto che vengono inseriti direttamente nella rubrica del telefono.
Caricamento massivo tramite CSVimportare molti biglietti contemporaneamente, mappando campi anagrafici, link social e immagini riga per riga.
Supporto bilingueversioni in inglese e arabo dei campi principali, gestite sia attraverso l'interfaccia utente che nei pass generati.

Galleria

Editor di biglietti Halatap con profilo ed elementi di contatto di esempio
Editor dei link social di Halatap con URL di esempio per il sito web

Sfide e soluzioni

Il controllo degli accessi doveva rimanere flessibile senza diventare intricato. I biglietti pubblici e privati richiedono regole differenti, per cui la condivisione è modellata tramite una tabella dedicata alle condivisioni collegata al biglietto e al destinatario. L'accesso pubblico è consentito solo quando un biglietto è esplicitamente contrassegnato come tale, e la verifica è integrata nella query del biglietto stesso anziché frammentata nell'interfaccia utente.

L'autenticazione è stata sviluppata internamente anziché esternalizzata completamente, il che ha richiesto un'implementazione accurata. Le password vengono sottoposte a hashing con PBKDF2 e salt tramite la Web Crypto API anziché essere memorizzate in chiaro, mentre i token di reimpostazione hanno scadenza temporale e vengono contrassegnati come utilizzati una volta spesi. La funzionalità più complessa è stata la generazione dei pass Apple Wallet: richiede la firma basata su certificati, gli asset inclusi corretti, un payload QR integrato e campi formattati e localizzati, il tutto prodotto su richiesta e restituito con il corretto tipo di contenuto. Il supporto sia per utenti singoli che per team è stato ottenuto riutilizzando lo stesso schema di biglietto sia per il normale flusso di creazione che per un percorso separato di importazione CSV.

Risultato

Halatap adempie a quanto richiesto a un biglietto da visita digitale: un'unica identità modificabile trasferibile tra web, email, QR, file di contatto e Apple Wallet, in due lingue, sia per singoli che per team. Le funzioni relative ai pass Wallet e all'importazione massiva, in particolare, trasformano il servizio da semplice pagina profilo a strumento adatto alla condivisione multicanale in contesti reali.

Hai un problema di prodotto simile?

Condividi il prodotto attuale, il risultato di cui hai bisogno e i vincoli già presenti. Li utilizzerò per definire un primo milestone sensato.

Assumere uno sviluppatore full stack
Inizia il tuo project brief
Tutti i progettiProgetto successivoMLZ-Advanced
Halatap: piattaforma di biglietti da visita digitali con Apple Wallet e vCard | Muhammad Arslan