I accepted the challenge of creating a robust technology platform....

I was invited to the INVESMARK CONSULTORIA Y SERVICIOS SAS DE CV company founded in México City and decided to accept the challenge of creating a robust technology platform to handle territorial and on-site research whether to be performed in big cities or in small towns that had difficult access and no internet connection at all so having a mix of real-time surveys progress and local storage was mandatory to ensure data consistency.

logo invesmark pet projects
I got very excited about this opportunity because the former team had Data analysis and market research experts, and with the help of the technology we were planning to make a huge impact on the way that on-site market research is done in México, and completely deprecate the usage of physical paper and ensure data accuracy among other benefits.
We initially started using a third-party surveys application(I think it was questionpro.com) in order to validate some ideas and be able to attend to current customers' demands, and then we decided to launch our very first MVP for the Android application and a backend built in Ruby on Rails.
But Heriberto tell me, What’s the actual difference with similar survey products such as typeform.com, Google Forms, surveymonkey.com, etc?
I think the main differentiator from Invesmark was that in addition to the people resources and experts/analysts working in the internal team, it was the technology that we were able to build and release let’s look into some of those details:
We developed a powerful native Android application using Kotlin and after installing the application on your Android device, you were able to get full control of the devise capabilities, especially if you were performing territorial and on-site research(streets, malls, or any hard-to-reach location) and with the help of a group of well-trained collaborators, as the internet connection was optional, you were able to track everything in real-time or to synchronize the device later on-demand, and then auditing some samples, the auditing process is based on different aspects you can evaluate, aspects such as the audio recording, physical location for each survey response, duration, etc and validate that the surveys were applied and held in the right location and made to the right target.
In this project, I was the one that architected and developed everything in the backend, and all the API’s architecture, with the different endpoints that were consumed by the Single Page admin panel, the Android app, and the public version of surveys. The main technology I decided to use here, was Rails 5, Angular.js, and React.js for the Single Page Application admin panel, and Postgresql with JSONB, in order to get all the benefits from the SQL and no-SQL worlds also because we needed to support very dynamic information storage and being able to support SQL queries to calculate statistics and generate reports.
So regarding the mobile application, we decided to build it on the Android platform because we needed to buy a lot of devices and tablets and the ones that have Android are way cheaper than the IOS devices.
You can review the Android app in the Google Play Store. https://play.google.com/store/apps/details?id=mx.com.invesmark.invesmark&hl=es_GT&gl=US
Regarding the Web Application
invesmark header pet project
Here is a working demo, that you can play with as an administrator and manage surveys, access users with different privileges, see some statistics, etc, the only disadvantage is that the language is Spanish as this product was designed for Latin America initially.

Full administrator with access(Would be shown soon)

user: ******
password: ****

Note: Do not worry if you mess up with data, I have a backup that I can push to Heroku at any time and start with clean data again :)
Final words: I learned a lot about dynamic fields, complex logic, and a few geolocation concepts, during my role as programmer and CTO of this product. I was also part of the company as a partner and had some shares in the company’s stock.