July 18, 2019 | XEO
About the Kids Eat Free Mobile App
Kids Eat Free is a discount card to help tourists save money where they are staying. Originally rolled out in Orlando and Anaheim this card is quickly expanding to other cities from New York to Las Vegas. There are three core brands: Kids Eat Free, VIP Shop and Dine4Less, and Play4Less. New partnership are being struck which require the creation of custom branded discount cards which allow the partner to decide which of the available discount offers across all three core brands to include on their card. This making a significant impact in the travel software sector.
As we started this project, each discount card brand had a unique Drupal 6 website which was slightly different than the others. Partners now wanted the flexibility with the new white label software to create their own branded cards with a subset of all offers across the three core brands. This required a new platform with a single list of discount offers which could be segmented by brand. Also, within each brand, offers are specific to a city and to a card variation. Most cards have three variations: Basic, Plus and Gold; additionally there are City Hopper and Global cards. The new site needed to be as easy to add new offers and venues as it is on the Groupon Orlando site and mobile app.
The first step was to create a single system of record to store all the brands, card types, card cities, discount offers and purchased cards. We decided to build this in Laravel and MySQL.
The second step was to upgrade to Drupal 7 as Drupal 6 and deliver a single site that supports multiple brand themes.
The third step was reduce the number of online stores from two to one. We chose to retain the Magento store and share it between Drupal 7 and the mobile applications.
XeoDev knew that we wanted a future proof system. That meant that we needed to allow quite a few scalable aspects. The number of supported brands and cards needed to be unlimited and easy to expand. The various discount offers needed to be easy to assign to multiple card types without duplication. There needed to be a strong template system so that UX worked exactly the same across the various cards yet expressed the brand differences.
We started by building the single system of record in MySQL and wrapping it with a robust Laravel admin panel. This allowed the client to adjust offers and email template formatting and content page copy directly. It tracks reviews, login history, favorite offers, card purchases and offer redemptions. This enables analytics on which offers are being used within the system.
Then we upgraded the Drupal 6 sites into a single Drupal 7 site which supported multiple brands on multiple domains. This way the user could go to multiple domains and see brand specific content which was ultimately sharing the same page templates across all brands. This enables us to add a fourth brand by providing only a new brand theme and domain routes.
The Magento store was almost configured correctly, just needed to enable iframe hosting mode so it could be shown within the application and the Drupal store page with maximum reuse.
We locked down security on this Drupal 7 site by removing the concept of logging in. Logging in is now only through the mobile application - again a single system of record of which users are active on the system.
The existing mobile application was at the proof of concept level. It utilized a large number of expensive assets including Sharepoint, full MS SQL, a beefy Windows server. We worked out workflows for card purchasing, offer selection, offer redemption, and support for multiple cards. One fun feature is that you can share your card wallet with one other person so you and your significant other can take advantage of multiple offers at different venues at the same time.
Discount offer workflow still includes Drupal 7 initial entry to match the client work pattern. These changes are synchronized into the Laravel offer store automatically each evening or on demand.
In the future, another round of changes will replicate the Drupal website experience in Laravel. This continues the platform simplification into a single ux platform for all use cases.
This project was a success in providing multiple brand support from a single platform. This greatly simplifies the management work to maintain discount offers and track user behavior.
We were able to transition away from the expensive MS SQL implementation, the Sharepoint site is no longer used. Reports which used to be manually harvested as csv files from the Sharepoint site are now seamlessly available in the Laravel admin panel. Overall hosting costs went down and smaller server footprints were able to handle increased traffic.
Advertisement slots were added to the application to facilitate boosted offers and other messages to be distributed to all application users. Notifications were added so that users could be notified of new offers or special offers. This was possible to add from the core Laravel platform where it wasn'
One key metric for this redesign was how easy it is for the internal customer support team to adjust discount offers and manage incoming customer requests. The improved workflows have significantly lowered customer support requests and average time to resolution is drastically shorter.
During the post mortem meeting on the release one of the client partners raise this high compliment for the XeoDev co-founders: 'David contributed as if he were a founder of our company, not as a vendor and I really respect that.' That sums up our intended relationship model: we would like to be your technology partner and bring that founder mindset into your business to deliver complex redesign projects together.
Xeodev provides SaaS and Mobile Android and iOS App platforms for companies ranging from solopreneurs to unicorns. When you need this type of technology for your business get started by requesting a quote.