The backend or VenueCenter is a large LAMP application, available in English and Dutch. From within the VenueCenter, venues can manage service areas, order locations, menus and many other settings.
The VenueCenter is built according to modern standards. The PHP code is namespaced (PSR-0 and PSR-1 compliant), Composer is used for package management and auto-loading.
The frontend is a mobile HTML5 website rendered inside a Webview component. The YourSmartButler App, available for free for Android, iOS and Windows Phone, scans a QR code, then loads the scanned URL. The mobile website that's loaded is built upon two main pillars: compatibility with as many phones as possible and speed.
In order to keep the webapp as lightweight (short loading times) as possible, no frameworks were used. All code (HTML, CSS and Javascript) is as lean as it can be. Aggressive cashing mechanisms, both server- and client side, were implemented. The hierarchical menus are cached client side, navigating the menu does not result in any calls to the server. Only upon placing an order, a single AJAX request is sent to the server.
The webapp's single codebase is compatible with all Android, iOS and Windows Phone phones, keeping maintenance straightforward. Users who don't have the Your Smart Butler App installed, can use any other QR code reader to view the venue's menu and place orders. In that case, a simplified version of the webapp is loaded, which is compatible with even more (and older) phones.
The webapp is available in English, Dutch, German, Bulgarian, Russian and Arabic. The Arabic language posed a small challenge, as it is a right-to-left language. New languages can be added in hours.
The frontend features tight integrations with Facebook, Twitter and Foursquare. Users can share their experience at a venue to these social platforms from within our App.