Bus Trip Quotes Website Calculator and Franchise Management Platform
- Multiple-role online platform
- Instant itinerary estimation capability
- Controlled private network for partners
Context
Client
A France-based tourism and bus transportation company requested a website with an itinerary calculator.
The challenge
#1. Instant bus itinerary estimate
The key project objective was to automate and optimize cost estimation for a bus service request with regard to French/European social rules and trip logistics. Since 70% of the requests qualify as ‘not planned’ (ad-hoc), the need for fast estimations is fairly high and justifies the product development. Calculating the travel cost is fairly challenging since various factors are at play:
- bus type (school, excursion or other)
- trip type (one-way, return, ½-day, one-day, several-day)
- level of comfort (high, medium, low)
- optimal route (distance, road types, tolls)
- european drivers health regulations and conventions
- etc.
And so automating this function will be a huge benefit for bus service companies.
#2. Franchise management platform
Building a calculator is quite an investment. To get ROI, it would be nice to be able to open the facility to other bus services as a PaaS.
Solution
User Roles
The website and calculator logic is grounded on the interaction of three user roles – the bus companies (PARTNERS), the site manager (ADMIN), and the users requesting trip quotes and taking advantage of the online calculator (USERS). Each user role comes with a set of its own authorities, functionality, and access rules.
Functionality overview
Back-office
Allows the admin to access the main website’s capabilities, to manage the system, manually update information, access the analytics data. The information available for management includes:
- List of franchise partners
- Map view of franchise partners
- Individual partner pages
- Default buses tab
- Speed per bus
- Pricelist
- Default seasons
- Booking information
- List of franchise managers
The admin can view and extract the information on all bookings. They can also update the information on the site.
Franchised partners extranet
PARTNERS need a secure private space to keep their data in. The extranet allows the partnering bus companies update the information regarding their services. That’s the entry for computing a trip cost.
Each of the partners can view only their own data and can create, update, delete, access the information on:
- company description
- list of buses
- speeds
- bus stations
- seasonal price changes
- bookings
Frontend
A USER’s primary goal on the site is to get a quote for their trip. So their activity centers around filling out the specifics of their request. So the focal point is the calculator. Quote request automatically sends an email to one of the PARTNERS.
Other elements include the blog, ‘about us’ and ‘services’ pages, the contact form and the user account page that allows to track the request status.
Calculator
The calculator algorithm pulls the data from the partners’ extranet and adjusts the estimates to the real-time traffic and topology circumstances.
Each PARTNER is assigned a definite location, so the departure location automatically connects with one of the companies. Alternatively, Bus Privé steps in as a default option in case no other company is available.
User experience was of primary importance. Despite the calculator’s lightweight look and feel, it enables granular approach to user input. Drop-down menus, toggles, radio buttons, date pickers, spin edits, etc. allow to easily specify various trip attributes, without overwhelming users:
- Trip type
- Departure and arrival points
- Number of passengers
- Level of comfort
- Date and time of departure
- On-site duration
Technology
WordPress CMS is handy for user role management, franchise management, request storage, notifications, and other utility tasks.
HERE JavaScript & REST APIs – for geocoding, places autocomplete, calculating bus routes, time of the trip, etc.
Google Maps API – for visualising routes on the map, handy partners’ management.
ECMAScipt 6 (JavaScript ES6) – for improved user experience and code standards. Technically speaking, when it comes to differentiating two concepts – data to represent the state, and functions to represent the behavior – ES6 classes give us a convenient syntax for defining the state and behavior of objects that will represent our concepts.
3rd-party APIs – for generating reports.
Check out our insights in the article How to Create a Hotel Booking App.
Results
The first version of the project has been released so far. The development is ongoing, which means our client is happy with the solution.