Travel Booking Platform
www.bahamago.comTravel & Hospitality
Bahamas
2012-Ongoing
Customer
The customer, Anthony Hanna, is the Director in The Bahamas that operates an online travel agency.
Anthony and his team have been our customers since 2012. He is one of our highly valued returning customers whom we are always happy to help with leveraging his business.
Challenge
The online travel agency required a website that would allow people to book trips to the Bahamas.
Booking had to cover a package of services including:
- a flight,
- a transfer,
- a hotel room,
- tours across the various islands.
There were specific requirements such as:
- Available flights had to be taken from multiple airlines.
- Available rooms had to be taken from internal hotel management systems.
- The cart had to implement certain calculations around prices, taxes, and fees.
- Apply the necessary promotions each hotel has available.
Overall, the booking process had to be easy and transparent so that clients could find the best and cheapest trips without “outrageous” service charges, select additional services they needed, secure payment, apply the confirmation code, and get the receipt without hassle.
Apart from the business requirements, there were also technical challenges:
- The web application and its modules had to be developed in mainstream technologies.
- The code had to be easy to maintain.
- Each hotel could customize their public page by adjusting stylesheets and images.
- The data had to be taken from external services not all of which had a good API.
- The data in BahamaGo had to be provided in the form of a REST API to consumers.
Solution
With those requirements, Cyfrania also received a legacy code base developed in Ruby on Rails.
In order to support the existing code and make it easier to maintain, we followed the test-driven development approach. Every part of the application that had to be improved would get tested first. The tests would be written in the form of automated scenarios. After that, new features would be added without breaking the old behavior.
Following this approach, the developers solved various problems and engineered a solid set of features.
App Features
- Hotel page personalized view. Each hotel could upload their own logos and styles. When users got to a hotel page, they would see styles similar to those that the hotel was using in other online media.
- Hotel ads. Each hotel could upload their own offers and ads so that users could see and book them.
- Synchronization with a cloud hotel management system. The hotel management system stored up-to-date information about booked and available rooms. Those rooms would be shown to BahamaGo users so that they could find and book what they liked.
- Synchronization with airlines. When booking a flight, users would choose the local available flights from the available and book available tickets received from the local airlines' websites. There were multiple local airline providers integrated into the system.
- Package pricing. Users would see up-to-date prices and could pay for a whole package through a payment gateway. Users who had booked rooms and other services, would receive a confirmation and a receipt.
- Management area. The order and the receipt would be shown in the admin area so that the admin could see the bookings and get prepared for the reception of the guests.
- BahamaGo API. The possibility to find and book a hotel room was also provided via a secure API available to BahamaGo partners.
In addition to that, Cyfrania has improved the quality of the application through monitoring the performance in NewRelic and catching exceptions via Rollbar.
Results
Since the launch in 2012, BahamaGo has been a stable solution with a constantly expanding functionality.
The web application was marketed in social media and visible to thousands of people who loved traveling to The Bahamas. Because of that, BahamaGo has been a well known online booking service.
Services Provided
- UX/UI Design
- Project management
- Web development
- Application maintenance and support
- Quality assurance
Technologies Used
- Ruby on Rails
- RSpec / Capybara / Selenium
- OAuth 2.0
- MySQL
- HTML / SCSS
- HTTParty
- Swagger API documentation
- jQuery
- Docker / Dokku