The customer is a software and hardware vendor that specializes in car electronics products. The company has a strong presence in Europe and Asia with plans to expand to the rest of the world.
The customer’s flagship hardware device was able to communicate with a vehicle’s electronics to start and stop the engine, open and close the doors, retrieve diagnostics information, etc. It also had a build in GPS unit, along with motion and crash sensors. Additionally, this device had a GSM module that was able to send data to/from a server.
The customer needed to develop a complex client-server solution with interactive web interface and feature-rich mobile applications for Android and iOS platforms that would allow clients to communicate with their vehicle and perform a variety of actions.
ScienceSoft’s team has developed the software solution in three phases that are further described below.
The initial phase dealt with the integration of the hardware tracking device mounted on a vehicle with a web server. ScienceSoft’s engineers worked together with the device manufacturer’s technical team located in South Korea. As a result, the I/O interfaces were determined and server application programming interface was implemented. Web server prototype was created for proper testing and stabilization. ScienceSoft’s Quality Assurance team performed various stress tests, ensuring high connection stability and solid performance.
The second development phase involved design and implementation of the back-end web server, which integrates user’s web-interface, administrative functionality and an electronic payment system.
Some technical details on the developed solution:
- The web interface with a ‘user cabinet’ functionality that allows clients to track their balance and make payments through the electronic payment system. There is a referral program for new users’ attraction.
- Back-end architecture of the web user interface is based on Entity Framework 6.0, a powerful object-relational mapping (ORM) system. It implements development pattern called “Repository” by using Unity library, which provides IoC/DI.
- All server-side applications (except for “User’s Cabinet” application) are based on Command Query Responsibility Segregation and Event Sourcing pattern. Command/Query Buses were implemented using Microsoft Azure Service Bus. All server-side applications are scalable thanks to Microsoft Azure Web and Worker roles. All databases of the system are stored in Windows Azure Databases.
- Administrative tool provides reporting functionality, ability to build charts and view maps.
- System can track up to tens of thousands of applications simultaneously without any performance issues.
- System has an integrated module for tracking possible bugs, receiving reviews, organizing users’ forum and a voting system.
During the third development phase ScienceSoft’s team has designed and implemented mobile applications with modern and intuitive user interface for Android and iOS platforms. These mobile client applications were successfully integrated with the developed back-end system.
The major technical challenges that ScienceSoft’s ream faced while developing Android and iOS applications, which were then successfully solved, are listed below:
- Intelligent voice command interface. Google Voice Actions for Android and Siri for iOS platforms were used.
- Low battery consumption while tracking vehicle state.
- Real-time GPS tracking with push notifications of alerts.
As a result, a complex solution was successfully developed. After installing the new product, customer’s clients could now use any web browser or their iOS and Android devices to perform the following actions:
- Track a vehicle’s position.
- Start or stop the engine.
- Control air temperature inside the vehicle.
- Schedule engine warm-up.
- Open and close doors and trunk.
- Turn the lights on or off.
- Monitor and display trip information.
- Get instant notifications about accidents or speeding violations.
- Track driving style and view driver’s safety score.
- Review fault diagnostics.
- Receive push notifications of maintenance required.
The developed solution could be used not only by the general public, but by insurance companies and car dealers as well. The customer’s sales increased significantly as a result of introduction of these feature-rich iOS and Android applications to the market.
Technologies and Tools
.NET: Visual Studio, Microsoft SQL Server, ASP.NET MVC 4, Entity framework 6, Unity IoC, JQuery UI, Knockout.js, Hightchart, Windows Azure SDK, Newtonsoft.Json, Google Maps API.
iOS: iOS, Objective-C, UIKit, CoreLocation, GoogleMaps SDK, SpeechKit, Cocoapods, AFNetworking, Crashlytics.
Android: Android OS, Android SDK, Google Maps Android API, Azure Mobile Android SDK.