Find Beyond Your Expectation

With our service provider browser, you would be able to address your focus in the actions that matter the most. When you think on your service, you can find out the closest, fastest, cost-effective most recommended in a heartbeat.

#

The Backstory

Our Client came to us with the idea of an app – called GoHarpy – a platform where users can meet service providers. Client already knew what needed to be done, what features had to be implemented. Client was inspired by our portfolio and chooses ChromeInfotech to develop the app according to the requirement.

We had previously developed many similar apps based on on-demand & marketplace. GoHarpy works in similar vein and was defiantly our kind of project.

GoHarpy Chart Flow Manual

#

GoHarpy Chart Flow Auto

#

What is GoHarpy?

GoHarpy combines all necessary features - for users, service providers and employees- all in one system.

For users, GoHarpy brings new way of getting help. From a car accident to a medical emergency, we have efficiently integrated all user needs in one app. Download the weight of stress on app service during an emergency, accident or incident. User gets best companies available in their region, where they can choose at their discretion. Filter companies based on price, distance and ratings of other users. We are the easiest and most comfortable solution for the most complex moments!

For Service Providers, they create employees profile and assign the service request from user to them. Service provider can also set request to go automatic to employee based on nearest employee to the location from where the request is created. Service Provider can track their employee real time on map.

For Employees, they can use the app to get the request and navigate to problem area. After completing the task they have to get digital signature from user before closing the task.

Let's get In Touch

How does it work

Backend

Engineering Challenges and Wins

1.) Unifying text input fields

Many screens have different fields for text input, though they all have similar UI. These fields have various input methods: regular input fields, fields for calendar dates, fields where a user has to choose from a list of options, and fields that display content that was chosen on another screen. To implement all these fields we decided to develop a single component with a flexible data source, data validation and formatting.

2.) Displaying routes on the map

In GoHarpy each service request has a corresponding route that must be displayed on the map in the app. This route must be put on the employee app screen. The UI object "map" requires a lot of resources: which would have significantly slowed down the UI performance. This is why we decided against using the interactive map and went with Google Static Maps API instead.

When we form a request, we send all necessary data within it, including coordinates, color and thickness of lines, and required size of the image. This returns a static image, which is then displayed for a user.

3.) Tracking Employees

In the Service Provider app and User app we had to create a way for displaying a route with changing position of the employee on the map. The employee apps send real coordinates for each employee to server and server updates user and service provider app in every 10 seconds with updated location.

The map should be refreshed every 10 seconds to correctly display the change of coordinates. This way with every page refresh the pin on the map that indicates the delivery vehicle location moves to the next point on the map.

3.) Delivery Confirmation

A Employee should be able to confirm once job is done. To do that they have to get their customer signature and send it to the server. It should be possible to take a signature and complete an job even if there is no Internet connection at the moment.

To enable this feature we added two "status" fields - one that contains a value on the server, and one that contains a local value. An employee app sees a local status of delivery. If the request to the server to change the status is sent successfully, the local value is equal to server value. If the request fails, then the local value is replaced with a new server value without any changes.

In the app there is also a background service that monitors the Internet connection status. When the internet connection is active, the server queries the local database looking for delivery orders whose local and server values are different. If any are found, they are updated to become equal (i.e. data is synced between the phone and the server).