Insane Lab was approached spring of 2019 by Big Mouth Survey with a task holding 3 requirements:
– Develop and establish a new brand for Big Mouth Survey on all applicable offline and online marketing channels.
– Assist with full product development of a customizable tablet based survey kiosk accompanying a full web-based administration system.
– Complete it in 6 months.
We pulled it off!
Product Development, Brand Development, Web Development, Mobile Development
Web, Mobile - Android
Due to the nature of the audience it was extremely important for all UX interactions and UI presentation to be as clear and intuitive as possible. This was achieved with our vast experience in the field and very thorough Usability Testing.
Establish a complete brand for a new product to be marketed in all applicable channels. Product design, web/mobile UI design, trade show booth, business cards, brochure etc. were all endeavors included in this delivery.
Development of this product required close communication and continuous strategy sessions with client. We discussed, strategized, and came up with a tailor-made solution ready for a cross market audience.
Countless hours spent with customer at the drawing board. Partner with the right kiosk manufacturer. Exhaust all limitations on the Android platform. Simulation, user and stress tests of complete solution.
It is always a large task to translate advanced logic and development to a simple, clear and intuitive User Interface that is applicable and user friendly. Based on the feedback from customer and their customers, I’d say we pulled it off again.
A complete product and accompanying brand all established and launched to market in 6 months!
Global solution that allows Big Mouth Survey to apply to multiple markets such as healthcare, hospitality, travel, retail etc.
In distributing tablet devices nationwide it was important to gain full control over device status and health. This was achieved by preparing the devices for target kiosk’s destinations.
Big Mouth Survey application was written for Android using Xamarin and a 100% native API. We have used MvvmCross to speed-up development and maintain high quality code-base.
As Big Mouth Survey application use internet connection to retrieve all of the survey data – we have used Refit library to implement HTTP API integration with ease. To handle connectivity issues we used Polly library – to retry failed requests with grace.
Thanks to this – our customers could use Big Mouth Survey even though they might lose their internet connection for a while.
We had to use native Android features to develop kiosk based application. The strict requirement was that user should not be allowed to exit application and that application should run after device boots or restart after it gets updated.
Therefore, we had to block activities like: expanding status bar, hide or disable hardware buttons – home and back button.
We were able to achieve all of the requirements by writing Android BroadcastReceivers and automated entering Android “screen pin” mode by leveraging device owner privileges.
This was possible due to the fact that we were responsible for preparing devices for target kiosk’s destinations. We had crafted custom bash scripts that allowed us to automate device setup process – which included:
– automated installation of APK into the device,
– setting device settings like brightness,
– automation of granting required application permissions,
– granting application device owner privileges
It was all possible thanks to unlimited possibilities of Xamarin Android – which maps whole “Android Java” into the .NET world.
– Vue as a component progressive framework for API in main components and views via vue-router
– Simple boxes with a lot of data (ex. Dashboard with all overview data)
– Fast and reliable components to show data from API
– Editing on one screen whole profile settings, business settings and location settings
– Setting filters to show data from last X days in one place and populating them into VUE components to reload needed data (sync between components)
– Managing users, devices, BMS questions, delete responses and possibility to login to each business for Super Administrators to provide best experience for businesses and it locations
– Managing surveys and attaching to device
– Location TV dashboard with overall information about specific location from today with option to compare live with previous 30 days by simple showing arrows up/down and percent change value.
– Vue-auth with connection to laravel api authorization
– API calls via AJAX with Laravel cache interface to load data faster than generating everything in every request
– Providing all data needed by every piece of view (results, BMS score etc.)
– Integrated vue-router for fast and live reloading views without refreshing application
– Queues for grouping daily BMS data to serve them much faster than when taking all data from time frame and generating for all of them
– Versioning by vue-version package for having always updated view
– Location TV has ability to reload it CSS/JS if version of app will change automatically by requesting version number in requests.
– Laravel Notifications to provide email / SMS notifications for customer or business owners to have all reports, informations about bad submits etc.
– JWT tokens for keeping API authorization (Bearer)
– Integrations with Sendgrid, Twilio, Sentry (error reporting platform)
– Providing endpoints to get all Survey settings from one endpoint and also sending submits are also built for one-endpoint exchange that location TV or Survey Device is using only two endpoints and Laravel is making whole rest job to provide all necessary actions.
– Every API call is sent through multiple API middlewares to protect as much data as needed to have in controller ability to use data instead of checking them.
– Repositories and Services patterns to have option to cache them and also use many external services
This is our pride and joy – the portfolio. See for yourself how our experience, work ethic, and sense of design came together in the projects that we’ve crafted recently.