06development · 2025

Voyago — Flight & Tour Booking Platform

An online flight & tour booking system built by Phúc Khang

RoleFull Stack Developer
Tech Stack
Java Spring Boot 3.xVue.jsTailwind CSSMySQLRedisKafkaSocket.ioDocker
Voyago — Flight & Tour Booking Platform
Voyago — Flight & Tour Booking Platform

Overview

Voyago is a product Phúc Khang built himself, modelled on an online travel agency selling flights and tours. Customers go through the whole journey: search → choose a fare → hold a seat → pay → receive the ticket. Seats are held for a set time so two people can never buy the same seat; cancellations and refunds are handled automatically by policy; and the operations team follows orders and flights live in the admin panel. It is the foundation a ticket agent, tour operator or coach company needs to sell seats online.

Problem Statement

When many people book the same trip at once, seats can be sold twice or left stuck because someone held a seat and never paid. The system had to update seat availability for everyone at the same time, return seats automatically when an order passes its payment deadline, and refund transparently by policy — all without staff stepping in by hand.

User Interface

traveloka.com/flight/search
Flight Search Results
9:41
📶🔋
Mobile Login
Booking List
Real-timeBooking Management
Support Center
SystemCustomer Support

My Process

01

Booking & time-limited seat holds

Built the main booking flow: search, fare selection, seat hold and ticket issuance. Seats are held on a countdown; if the customer does not pay in time, the system releases the seat for someone else to buy.

02

Automatic cancellation & policy-based refunds

Unpaid orders are cancelled automatically and refunds follow the set policy; every change in an order's status is recorded for checking and shown clearly to the customer.

03

Live operations dashboard

Order and flight status is pushed straight to the admin panel in real time, so the operations team always knows how many seats are left and who has just booked.

0
Double-booked seats
50ms
Time to update seat availability for every viewer
98%
Seat availability shown accurately