Case study

The booking app for non-profits

Mobile applications and a web platform for travel and multiple services booking. The app serves several types of users providing unique complicated functionality in a simple way. Most important here, it cares for low-end devices users and related restrictions.

Booking app on a phone

Background

Valor’s client, being a volunteer organization and the provider of different kinds of help to the countries in need, has hundreds of staff representatives in numerous countries around the world.

To enable booking for accommodation, transfer, visits to clinics, and meet other possible needs of the organization's staff on their missions, Valor Software have built a complex mobile solution that allows doing all the above in a single app, connecting staff and authorized service-providers.

What's more, we've utilized the “Offline first” development paradigm to ensure all the functionality works despite the lack of a network connection, which is highly possible in the locations our customer targets.

Specifics

Humanity stands for the frontline of the whole organization activity, therefore this project is exclusive in priorities. Our client is not pursuing a goal to increase income with the app but rather solving a particular problem – the sooner their staff gets the working solution, the better they can do their job, and the more people get help. So, we put functionality and vitality under harsh conditions first while minimizing the maintenance effort for the product.

“When you’re in the middle of nowhere, you want your app to be simple. And you’ll gladly sacrifice the latest trends for this simplicity in use!”

The Product Owner of the Platform.

In this project the design part was the first part in the play. We’ve started with it – precisely, with the improvement of the user journey. What’s more important than that, right?
Only when we actually impressed (at least it seemed like it) the customer with this core value for the project, development came into play. Now is the time for good advice you never asked for – Analyze and Fix Mistakes first, then do all the rest. The rest is less important!

Valorians are proud to release the MVP version for the mobile application within a month since we started working on this project. We're honored to be fully in charge of the mobile part and, since recently, developing the web platform. Our team including designer, backend, frontend, and QA engineers, became part of a big international unit and blended into their existing development flow.

Technologies & services

Mobile

Web

Deliverables

Pursuing the client’s goal to get the working app in the shortest time possible within a strictly limited budget, we’ve built a cross-platform solution using React Native. The framework allows sharing of the logic layer of the app between iOS and Android, and uses JavaScript to compile the app’s user interface. This way, we saved money for the development as we had just one team involved instead of two and still kept the app's native look and feel.

A brief diagram describing the logic behind the app and how our React Native code interacts with the mobile modules

Deliverable

Deliverable 1

Rides

The application unites drivers, air carriers, accommodations, and medical services all in one place for the organization’s staff only. We implemented the transfer functionality to connect staff and volunteers with trusted drivers with over 4000 vehicles at their disposal. Here the module offers two sets of functionality:

For staff

Comfy and simple user journey to pic the destination, request a ride, meet the driver, estimate the trip, and do everything you need to accomplish the mission. Google Maps is one more third-party service used in this mobile app. It helps users to choose a pick-up/drop-off location.

Deliverable

For drivers

To get a car, estimate its state, accept the ride, also use a ride-sharing option and pick up several users for similar routes, do their job fast and efficiently.

Deliverable

Deliverable 2

Accommodation booking

This menu option allows users to create a booking in a hotel or a guesthouse in one out of more than a hundred locations across the world. A user picks the place, adds personal information and info connected with the travel, like a purpose, employment details, and flight tickets, and waits till the confirmation of booking. Once confirmed, users see all the details of their booking in the “My bookings” section.

Deliverable

Deliverable 3

Booking of medical services

We’ve implemented complicated functionality that allows staff to get medical assistance in any place where their missions take place. Users get access to the database of clinics, book an appointment, pick a convenient date and time, leave remarks, and attach documents related to their medical condition. They also have an opportunity to book an online consultation and join from a mobile device using third-party services.

Deliverable

Deliverable 4

“My bookings” features and capabilities

It’s a huge part of functionality where users can view and interact with their bookings, whether it’s a hotel, a transfer service booking, or a consultation with a doctor. Precisely they can:

  • View the history of bookings
  • Check the status and cancel booking
  • View details, e.g. contact details
  • Contact the driver or the hotel
  • Rate services and leave feedback
  • Create favorites’ lists and rebook
  • Save booking cards to use offline


Deliverable

Challenge 1

Security measures

Our client cares a lot about users’ personal data safety and the security of their solutions. The Booking Platform is only available for the organization’s employees, that’s why we paid additional attention to the procedure of authentication and login.

Solution

  • User authentication and access management solutions ensured that only preliminary registered users with the organization's domains get access to the app.
  • We’ve also added the SSO functionality for a better user experience with the app. As our target audience is likely to be limited in time to make their bookings and order carriages, SSO simplifies access to the app and eliminates the need to remember usernames and passwords.

Impact

  • The app has security authentication that lets users to log in and use the app only after they pass the domain check
  • Streamlined access to the application with SSO

Challenge 2

Poor Internet connection

Most of our audiences access the Platform from low connectivity locations and high-latency connections. So we intended to create an app that allows users with bad or no connectivity to browse through pages and make bookings.

Solution

  • The app uses Realm as a local database which also supports caching to store data for offline mode. Once the connection is restored, the data is transferred to the server and the request is processed.
  • For applying the app offline, a user selects the services he’s going to need, and all the data gets uploaded to the local DB and becomes available in a few minutes despite the connection loss.
Diagram 1

Impact

The application can be used offline and on conditions of intermittent Internet connection at full capacity!

Challenge 3

Low-end devices

We anticipated the fact that most of the users have low-end smartphones, so the app must be light. Despite this restriction, we still wanted to provide users with the experience they expect from a good service application, which is fast, friendly, and simple to navigate.

Solution

  • The first thing we did was adaptive testing to make sure the layout looks good on the users’ screens of all the most common sizes. Google Analytics helped us specify kinds of devices that are the most popular in our audience, and we crafted the app for them.
  • To cope with the problem of time-consuming data processing inside the app, which we couldn’t really avoid because of the app’s rich functionality, we played with animations. The engineer called for an animation whenever calculations took longer and became noticeable for a user.

Impact

  • The Booking Platform app performs well regardless of users’ phones' processing capacity, as our audience tends to use older versions of smartphones
  • We kept a decent user experience and made heavy calculations go unnoticeably for users

Challenge 4

Integration with the backend

The functionality of the mobile and the web app overlaps, and these platforms share particular endpoints on the backend. So, for example, changes in the API version for the web may affect the performance or even the entire functioning of the mobile app that reuses this API. And we faced the situation that even if the mobile team immediately upgrades the app with modernized endpoints, there’s no chance we can make all the app users upgrade to the latest version immediately.

Solution

  • We implemented versioning, so every dependency stays in its place and users who continue using older versions of the app experience no difficulties because they’re still supported.
  • Also, we incorporated the practice of early reporting about any “breakable changes” to the APIs that can affect the mobile app. This way, the mobile team can foresee and avoid possible breaks.

Impact

Engineers of the web and backend team can make upgrades and push new features to production without interrupting the user experience of mobile app users. Versioning saves the day!

Future

We’re currently working to provide the Multi-leg trips option when users plan more complicated routes for their journey. They will have an opportunity to call on multiple locations within one ride, save time and be even more efficient!

Also, we’re striving to extend the functionality in terms of booking in a mobile app, add an opportunity for invoicing, so users can upload and save invoices for their rides and accommodation. This and other features now available on web only, will soon significantly boost the experience of mobile apps’ users. Stay tuned to track the progress!

Next Case

Ashes of Creation

A web platform and an online shop for the game studio working on the MMORPG Ashes of Creation.

Check it out
Ashes of Creation