Modernizace + automatizace
Chata Roklinka: Modernizace a automatizace rezervačního systému
Projekt jsem převzal ve chvíli, kdy se mu původní vývojář přestal věnovat. Aplikace na Next.js byla architektonicky dobře navržená, ale trpěla technickým dluhem a zastaralým stackem — a hlavně většina rezervací se řešila ručně. Postupně z ní vznikl automatizovaný rezervační systém s online platbami, který klientovi šetří čas místo aby ho bral.
- Ručně → auto
- rezervace bez ručních zásahů
- Online platby
- dokončení bez další komunikace
Výzva
Hlavním problémem nebyla jen technika, ale způsob práce s rezervacemi. Systém existoval, ale procesy byly manuální a každá rezervace znamenala práci navíc. Majitelé museli:
- ručně kontrolovat nové rezervace
- ručně potvrzovat dostupnost termínů
- ručně komunikovat se zákazníky e-mailem
- ručně blokovat obsazené termíny
- ručně uvolňovat termíny při zrušení
- ručně evidovat jednotlivé rezervace
Místo úspory času tak systém vytvářel další administrativu. Souběžně bylo potřeba vyřešit zastaralou verzi Next.js, optimalizaci a bezpečnost projektu.
Stabilizace a modernizace
Aplikace běžela na zastaralé verzi Next.js a navazujících technologií, což komplikovalo nasazování i další rozvoj. Místo přidávání funkcí proto nejdřív proběhl refaktor klíčových částí:
- aktualizace technologického stacku
- úprava build procesu
- odstranění problémů s nasazováním
- optimalizace práce s obrázky
- oprava navazujícího kódu
- zvýšení výkonu aplikace
Součástí byla i bezpečnost — kontrola závislostí a odstranění rizik plynoucích ze zastaralých verzí. Cílem nebylo jen opravit aktuální problémy, ale vytvořit stabilní základ bez zbytečného technického dluhu.
Automatizace rezervačního procesu
Po stabilizaci přišel největší obchodní problém — manuální správa rezervací. Cílem byl systém, který funguje samostatně a nevyžaduje každodenní zásahy. Postupně jsem implementoval automatizace, které zajistily:
- automatické potvrzování rezervací
- automatickou komunikaci se zákazníky
- automatické blokování obsazených termínů
- automatické uvolňování termínů při zrušení
- automatizaci celého rezervačního workflow
- omezení manuálních zásahů provozovatelů
E-mailovou vrstvu jsem v této fázi zachoval a jen ji začlenil do nově automatizovaných procesů — nové funkce tak šlo implementovat rychle, bez kompletního přepracování infrastruktury. Výsledkem bylo výrazné snížení administrativy.
Integrace platební brány
Do rezervačního procesu jsem integroval platební bránu, která návštěvníkům umožnila dokončit rezervaci pohodlně online, bez nutnosti další komunikace s provozovatelem.
- jednodušší proces rezervace
- vyšší komfort pro zákazníky
- rychlejší zpracování rezervací
- méně manuální administrativy
- lepší přehled o přijatých platbách
Frontend a optimalizace
Součástí projektu byly i úpravy uživatelského rozhraní a celkového zážitku:
- lepší použitelnost rezervačního procesu
- úpravy vybraných částí webu
- lepší fungování na mobilních zařízeních
- optimalizace načítání obsahu a obrázků
- vyšší rychlost webu
Tyto úpravy návštěvníkům usnadnily dokončení rezervace a zlepšily celkovou použitelnost aplikace.
Dlouhodobá spolupráce
Po dokončení hlavních úprav spolupráce pokračuje formou technické podpory a průběžné údržby. Díky modernizaci stacku, automatizaci rezervací a vyšší stabilitě má dnes klient řešení, které mu s provozem ubytování skutečně pomáhá, místo aby vytvářelo další práci.
Projekt je zároveň ukázkou toho, že vývoj na míru nemusí znamenat stavět nový systém od nuly. V mnoha případech přináší největší hodnotu převzetí existujícího projektu, jeho modernizace a odstranění procesů, které firmu zbytečně zpomalují.
Rušení rezervací a refundace
Nejnovější fáze se soustředila na to, co se do té doby řešilo telefonem — rušení rezervací a vracení peněz. Cílem bylo, aby host viděl dopředu, kolik dostane zpět, a aby provozovatel nemusel nic přepočítávat ručně.
- náhled refundace ještě před potvrzením storna — host vidí konkrétní částku
- potvrzovací krok s jasnou informací o výši vratky
- jediná definice výpočtu refundace pro celou aplikaci (dřív existovala ve čtyřech kopiích)
- ochrana proti dvojímu stornu — dvě paralelní žádosti už nevytvoří dvě refundace
- u nezaplacené rezervace se refundace vůbec neslibuje
Součástí fáze byla i bezpečnostní oprava endpointu pro storno přes odkaz z e-mailu a úklid e-mailové vrstvy: transport, kterým se reálně nic nedoručovalo, jsem odstranil a veškerá pošta teď jde jednou ověřenou cestou. Provozovatel navíc dostal v administraci přehled prodaných půldnů, mazání celých rozsahů na dvě kliknutí a pojistku, že kalendář nikdy nepřepíše už zaplacený termín.
Použité technologie
- Next.js
- JavaScript
- MongoDB 7
- Resend
- Platební brána
- Cloud hosting
- Automatizované workflow rezervací
Výsledek
- převzetí a stabilizace existujícího projektu
- modernizace zastaralého Next.js řešení
- zvýšení bezpečnosti aplikace
- odstranění technického dluhu
- automatizace rezervací i e-mailové komunikace
- automatické blokování a uvolňování termínů
- integrace platební brány
- storno rezervace s náhledem výše refundace
- výpočet refundace na jednom místě místo čtyř kopií
- ochrana proti dvojí refundaci při paralelních žádostech
- sjednocení e-mailové vrstvy na jediný ověřený transport
- lepší uživatelská zkušenost
- nižší administrativní zátěž provozovatele