Trumpos nuorodos ir dizainerio QR
Vue 3 + webedge-db: trumpų nuorodų servisas su statistika ir QR dizaineris.
Dev-storyIššūkis
Pasidalinti kampanija reiškia trumpą URL, kurį gali sekti, ir QR kodą, kuris neatrodo kaip beveidis juodas kvadratas — dažniausiai du atskiri mokami įrankiai.
Ką darėme
Trumpų nuorodų programa (Vue 3 + webedge-db, Better Auth) su asmeninėmis nuorodų kolekcijomis, viešais trumpais URL ir paspaudimų sekimu, kartu su dizainerio QR generatoriumi, kuris stilizuoja kodą; abu veikia ant mūsų webedge-db backendo.
Rezultatas
Pats pasidarai sekamą trumpą nuorodą ir firminį QR bei matai paspaudimus — be trečios šalies nuorodų trumpintuvo.
Dev-story straipsnis
Kaip buvo kuriamas projektas: Trumpos nuorodos ir dizainerio QR
URL trumpinimas – išspręsta problema, tad įdomiausias klausimas buvo iš kur atsiranda paspaudimų skaičius. Vietoj serverinio 301, peradresacija ties /s/:slug yra Vue maršrutas, kuris iškviečia reaktyvaus backend'o mutaciją, užfiksuoja apsilankymą ir tik tada perduoda naršyklę į paskirties adresą. Taip visa sistema lieka statiniu frontend'u prieš reaktyvią duomenų bazę, o analitika yra tos pačios transakcijos dalis kaip ir šuolis, o ne atskiras 'siųsk ir pamiršk' žurnalas.
Skyriai
05
Moduliai
05
Stackas
Vue 3 + webedge-db
Kodėl projektas atsirado
Pasidalinti kampanija reiškia trumpą URL, kurį gali sekti, ir QR kodą, kuris neatrodo kaip beveidis juodas kvadratas — dažniausiai du atskiri mokami įrankiai.
URL trumpinimas – išspręsta problema, tad įdomiausias klausimas buvo iš kur atsiranda paspaudimų skaičius. Vietoj serverinio 301, peradresacija ties /s/:slug yra Vue maršrutas, kuris iškviečia reaktyvaus backend'o mutaciją, užfiksuoja apsilankymą ir tik tada perduoda naršyklę į paskirties adresą. Taip visa sistema lieka statiniu frontend'u prieš reaktyvią duomenų bazę, o analitika yra tos pačios transakcijos dalis kaip ir šuolis, o ne atskiras 'siųsk ir pamiršk' žurnalas.
Ką sukūrėme
Trumpų nuorodų programa (Vue 3 + webedge-db, Better Auth) su asmeninėmis nuorodų kolekcijomis, viešais trumpais URL ir paspaudimų sekimu, kartu su dizainerio QR generatoriumi, kuris stilizuoja kodą; abu veikia ant mūsų webedge-db backendo.
Autentifikuotas trumpų nuorodų servisas: prisijungę naudotojai kuria nuorodas su nebūtinais savais slug'ais, pavadinimais ir pastabomis, o atgal gauna trumpą URL ir jį atitinkantį QR kodą. Kiekviena nuoroda seka paspaudimų skaičių ir paskutinio paspaudimo laiką, remdamasi atskira clicks lentele, saugančia referrer ir user-agent kiekvienam apsilankymui. Sąsaja – vieno puslapio Vue aplikacija su trikalbe (EN/LT/RU) sąsaja ir kiekvienam naudotojui skirtomis, ieškotinomis nuorodų kolekcijomis.
Pagrindiniai moduliai ir vartotojo kelias
recordVisit mutacija atomiškai padidina clickCount ir lastClickedAt bei prideda clicks įrašą (referrer, user-agent) prieš grąžindama paskirties adresą – sekimas transakcinis, o ne atsietas analitikos signalas
Peradresacija ties /s/:slug yra kliento maršrutas, kuris paleidžia mutaciją ir tada window.location.replace, tad peradresacija ir jos analitika yra vienas reaktyvus iškvietimas be atskiro sekimo serverio
Slug variklis su rezervuotų žodžių sąrašu, 3–48 simbolių validacija ir atsitiktinių slug'ų generatoriumi iš nepainaus abėcėlyno (be 0/1/l/o), kuris kartoja bandymą įvykus kolizijai ir pailgina nuo 6 iki 8 simbolių
Paskirties adreso apsauga: pliki domenai paverčiami į https, ne http(s) protokolai atmetami, o URL ribojami iki 2048 simbolių prieš išsaugant
Kliento pusėje generuojamas QR su prekės ženklą atitinkančia ink/parchment spalvų palete, reaktyviai pergeneruojamas vos sukūrus nuorodą
Architektūra ir technologiniai sprendimai
Sukurta su Vue 3, webedge-db, Tracking.
Vue 3 + Tailwind vieno puslapio aplikacija prieš savą (self-hosted) reaktyvų backend'ą, su Better Auth sesijoms, qrcode biblioteka QR generavimui kliente ir links/clicks/users lentelėmis, indeksuotomis pagal slug ir pagal naudotoją sąrašų atrankai.
Rezultatas ir pamokos
Pats pasidarai sekamą trumpą nuorodą ir firminį QR bei matai paspaudimus — be trečios šalies nuorodų trumpintuvo.
Kompaktiškas, veikiantis servisas, kuris teisingai atlieka esmę – transakcinį paspaudimų sekimą, saugų slug'ų paskyrimą ir QR kodus pritaikytus produkto paletei; QR čia 'dizainerinis' prekės ženklo spalvų prasme, o ne su įterptu paveikslėliu.
Toliau skaityti
Susijusios projektų istorijos
Šie projektai turi artimų technologinių arba produkto sprendimų, todėl padeda matyti, kaip tas pats principas veikia kitame kontekste.
Dev-storyCMS
Dinaminis CMS ant webedge-db — turinio tipai, medija, rolės ir vieša skaitymo API, maitinanti mūsų svetaines ir straipsnius.
Dev-storyKalendoriaus rezervacijų platforma
Rezervacijos ant Vue 3 — laisvi laikai, užsakymai, laiškai ir Meet vaizdo nuorodos.
Dev-storyFableVita
FableVita — DI fitneso treneris su lygomis, užduotimis ir nuo sukčiavimo apsaugota apdovanojimų ekonomika.
Turite panašią idėją?
Aptarti projektą