Creating the WorldWide Toolbox Application
Heading to the Client
The Client overview
- Type: Public
- Industry: Chemical & Construction Industry
- Founded: 1910, Switzerland
- Headquarters: Baar, Switzerland
- Area Served: Fully owned subsidiaries in 98 countries
- Revenue: CHF 5,747.7 million (2016)
- Number of Employees: 17419 (2016)
The client saw in their roadmap the strategic competitiveness that a toolbox application oriented to facilitate the acquisition of their products to the end consumer could demonstrate. They saw in some of their competitors the need of an application with utilities for people in the construction field: unit conversors, photo markup tools, flashlight, etc.; among with company news, distributors, use cases, and more.
The key in this application was the need of people to use it for their daily tasks in construction, organize the material and take some pictures of their jobs. After some usage, users could buy their products using the application, find distributors and sellers using geolocalizations and find the products technical overviews among with use cases where they were used.
In fact, they needed a complete toolbox application ready to promote their products with some useful generic features that end users would need. Some key features were:
- News and Use Cases Feed
- Product search, organized by categories
- Find distributors and sales representatives with geolocation
- Photo markup tool: possibility to take pictures and put some stickers in there
- Buy products with the application
- Utils: flashlight, unit conversor
The team planned this application in different phases. Each phase involves three main products ready to concrete the entire solution for the company need.
First of all, the Backend API, responsible for managing the entire information of the solution and providing the services needed for the other two products. In this case, it was developed using Python 3.6 with a framework called Flask-Restplus which provides Swagger Documentation useful for the rest of the team. Data was stored in PostgreSQL database using SQLAlchemy ORM. Everything was deployed on Heroku, using Github and pipelines to differentiate staging from production environments. There was some third-party integrations like Bullseye for geolocalization data, Wistia for 360º video management and Hybris for product catalog management. Thus were tools that company people used to store their data.
The second product was the Toolbox Application itself. This is perhaps the most important product at all cause it’s the end consumer interface. In this case, the application was developed using the most used framework in the company: Ionic. Using this framework among with Angular 4, the interface and the UI were ideal to communicate to the backend and bring the useful data to show in the app. Mockups were provided by the other companies, we needed to be able to pixel-perfect the entire mockup and create the same replica in a functional way. Using testflight, alpha intermediate builds were released daily in order to provide value in a fast and reliable way.
The last product was, obviously, the Admin Console. Also hosted on Heroku with different environments, this console was based in an OSS framework called ng-admin using AngularJS as the MVC framework. This product gained importance in the last weeks of phase 1 in order to provide content dynamically to manage application data and features.
This company was perhaps one of the most important development projects DinoCloud faced. It represents an disruptive moment when we started thinking about the impact development could have and thought us how to manage production-like environments with really high quality standards.
This was one evidence that the company is prepared to develop full stack solutions using multi platform environments; the toolbox is complex, big and in continue growing. The architecture itself needs to be prepared to face the next challenges.