Visi projektai

Kalendoriaus rezervacijų platforma

Rezervacijos ant Vue 3 — laisvi laikai, užsakymai, laiškai ir Meet vaizdo nuorodos.

Vue 3webedge-dbScheduling
WebEdge Calendar prisijungimo ekrano vaizdasDev-story
01

Iššūkis

Rezervacijai reikia, kad visi — klientas, administratorius, teikėjas — iškart matytų tą patį pasiekiamumą, o nuomojami planuokliai reiškė dar vieną mokamą servisą ir svetimą duomenų bazę.

02

Ką darėme

Planavimo programa ant Vue 3 + webedge-db: gyvi pasiekiamumo langai ir rezervacijos, veikiantys kaip atskiras projektas mūsų webedge-db backende, su slaptažodžio autentifikacija ir patvirtinimo laiškais per mailer.webedge.dev.

03

Rezultatas

Klientai renkasi laisvus laikus, teikėjai tvarko pasiekiamumą, o patvirtinimai išsiunčiami automatiškai — ant mūsų pačių backendo, o ne nuomojamo planuoklio.

Dev-story straipsnis

Kaip buvo kuriamas projektas: Kalendoriaus rezervacijų platforma

Planavimo įrankiu galima pasitikėti tik tada, kai siūlomas laikas sutampa su tuo, kada šeimininkas iš tikrųjų dirba. Čia slotų variklis iš pradžių skaitė kiekvieno šeimininko darbo valandas "HH:MM" kaip UTC ir ignoravo jo nustatytą laiko juostą, todėl visiems ne UTC naudotojams buvo siūlomi neteisingi laikai, o vasaros/žiemos laiko perėjimai tyliai gadino rezervacijas. Šios klaidos taisymas, o vėliau viešo rezervavimo paviršiaus sutvirtinimas, ir sudarė didžiąją darbo dalį.

Skyriai

05

Moduliai

05

Stackas

Vue 3 + webedge-db

01

Kodėl projektas atsirado

Rezervacijai reikia, kad visi — klientas, administratorius, teikėjas — iškart matytų tą patį pasiekiamumą, o nuomojami planuokliai reiškė dar vieną mokamą servisą ir svetimą duomenų bazę.

Planavimo įrankiu galima pasitikėti tik tada, kai siūlomas laikas sutampa su tuo, kada šeimininkas iš tikrųjų dirba. Čia slotų variklis iš pradžių skaitė kiekvieno šeimininko darbo valandas "HH:MM" kaip UTC ir ignoravo jo nustatytą laiko juostą, todėl visiems ne UTC naudotojams buvo siūlomi neteisingi laikai, o vasaros/žiemos laiko perėjimai tyliai gadino rezervacijas. Šios klaidos taisymas, o vėliau viešo rezervavimo paviršiaus sutvirtinimas, ir sudarė didžiąją darbo dalį.

02

Ką sukūrėme

Planavimo programa ant Vue 3 + webedge-db: gyvi pasiekiamumo langai ir rezervacijos, veikiantys kaip atskiras projektas mūsų webedge-db backende, su slaptažodžio autentifikacija ir patvirtinimo laiškais per mailer.webedge.dev.

Pilna planavimo programa: šeimininkai apibrėžia įvykių tipus ir savaitės prieinamumą, svečiai renkasi laisvus laikus ir rezervuoja, o sistema siunčia el. patvirtinimus bei sugeneruotą vaizdo susitikimo nuorodą. Pradžioje ji veikė ant Fastify + MongoDB + Redis ir buvo visiškai perkelta ant mūsų savarankiškai talpinamo reaktyvaus backend'o, kad prieinamumas ir rezervacijos liktų gyvos be nuolatinio klausinėjimo, veikiant kaip atskiras nuomininkas bendrame webedge-db.

03

Pagrindiniai moduliai ir vartotojo kelias

M01

Laiko juostas teisingai vertinantis slotų variklis: darbo valandos verčiamos į UTC ir atgal per Intl.DateTimeFormat, todėl vasaros/žiemos laikas tvarkomas teisingai, o iteruojama pagal šeimininko vietinę, ne UTC, dieną

M02

Rezervavimo taisyklių sluoksnis: idempotencijos raktai, dublikatų apsauga, aktyvių rezervacijų limitai vienam svečiui, blokuotos datos, dienų perrašymai ir rolling/range periodo apribojimai, visi apskaičiuojami kaip užimtumo sluoksnis prieš rodant laikus

M03

Sutvirtintas viešas HTTP paviršius: neautentifikuoti ICS atsisiuntimai ir gyvi kalendoriaus srautai, JSON slotų API, privalomas svečio el. pašto patvirtinimas prieš viešą rezervaciją, taip pat įvesties validacija, išvalytos klaidos ir dažnio limitai

M04

Vaizdo susitikimų planavimas: rezervacija sugeneruoja susitikimo nuorodą ir gali būti nukreipiama tiesiai į Webedge Meet įvykio kūrimą su atsargine nuoroda gamyboje

M05

Pasirenkamas CRM tiltas: rezervacijų sinchronizacija švariai praleidžiama, kai stack'e nėra CRM, užuot palikus kiekvieną rezervaciją įstrigusią laukime, o kai CRM yra — su užklausos laiko limitu ir ribotais bandymais

04

Architektūra ir technologiniai sprendimai

Sukurta su Vue 3, webedge-db, Scheduling.

Vue 3 + Vite + Tailwind priekyje, mūsų savarankiškai talpinamas reaktyvus backend'as schemai, realaus laiko užklausoms, autentifikacijai (slaptažodžio tiekėjas), suplanuotoms funkcijoms ir HTTP veiksmams; diegiama į statinį hostingą, backend'ą paleidžiant kaip projektą webedge-db viduje.

05

Rezultatas ir pamokos

Klientai renkasi laisvus laikus, teikėjai tvarko pasiekiamumą, o patvirtinimai išsiunčiami automatiškai — ant mūsų pačių backendo, o ne nuomojamo planuoklio.

Veikianti, savarankiškai talpinama planavimo programa, kurios prieinamumas pagaliau teisingas visose laiko juostose ir per vasaros/žiemos laiką, su viešu rezervavimo API, kuris validuoja įvestį, tikrina svečius ir riboja piktnaudžiavimą.

Toliau skaityti

Šie projektai turi artimų technologinių arba produkto sprendimų, todėl padeda matyti, kaip tas pats principas veikia kitame kontekste.

Turite panašią idėją?

Aptarti projektą