mPet

A mobile app to store and share pets' medical and health data

Industry:
Healthcare
Location:
Northern America
Partner:
Since 2019
A mobile app to store and share pets' medical and health data
Client's idea

Pet parenting is never easy. To track the health and wellness of their pets, many pet owners use a spreadsheet, which works but is not convenient. Through years of practice, Natalie Punt, an emergency veterinarian and passionate advocate for the human–animal bond, became convinced that to properly track pets’ health, pet owners needed a better tool than spreadsheets.

Natalie decided to develop a mobile app that would allow pet owners to record medical information, create vaccination schedules and wellness journals, share medical records, and even track lab results. To bring this idea to life, she searched for a team of software developers with experience creating medical apps and found Globaldev. 

Market analysis

According to the 2019-2020 APPA National Pet Owners Survey, 67% of US households (which amounts to about 85 million families) have a pet. To keep track of a pet’s health and ensure regular visits to the vet, a pet owner needs to properly organize their pet’s medical records.

Though there are already apps for pet care, pet first aid, and veterinary recommendations, the need for an app like mPet was high. mPet combines the features of all three types of existing apps. With mPet, users can store and edit health-related data, share it with a veterinarian, and locate pet sitters and walkers, pet stores, dog parks, and beaches on Google Maps. 

Solution

The Globaldev team built an MVP version of the mPet mobile application for iOS and Android. We used Flutter for smooth cross-platform mobile app development. Upon downloading the app and creating an account, pet owners are asked to create profiles of their pets. In these profiles, owners provide data about medical conditions, medications, vaccinations, and diets to make sure their four-legged pals are healthy. 

The MVP version of the application is free. mPet post-MVP phase is meant to provide private veterinarians with the functionality to consult their customers via the app by using chats or even video-consultancy tools. For this, we will have to build another user role "veterinarian", who should be able to access the pet's medical information with the pet's owner's permission and also build the related solution which allows pet owners and veterinarians to communicate through the app.

Eventually, mPet app plans to use a business-to-consumer (B2C) business model. 

Dedicated engineering team

User roles

Administrator
The admin has full permissions in the mPet mobile app. They can manage the app’s content and add links to pet care resources such as pet shops.
Pet owner
A pet owner can create an account and pet profiles, enter pets’ medical information, store that information, manage it, and send it to a veterinarian.
Created the UI/UX

Our client’s design idea included purple and yellow as the main colors for mPet. But after discussions we and Natalie decided to change the colors. Since mPet is a medical application, we decided to go with a color palette that’s more traditional for the industry: blue and white.

The mPet app has over 50 screens, most of which are forms for entering medical information.

As mPet is a cross-platform mobile app, our designer made sure it follows the design principles for both platforms, Android and iOS.

Developed iOS/Android apps

We used Flutter to develop mobile applications for iOS and Android. We architected the Flutter project using the BLoC pattern, and we used the animation capabilities in Flutter to provide smooth cross-screen transitions.

Developed the backend

We developed the backend of mPet using Python 3 and Django 2.2. We used PostgreSQL 9.6 for permanently storing user data and AWS S3 to securely store data such as user photos.

The pytest testing tool helped our backend developer write tests to make sure the project components worked as expected. Redis was used to transport messages to Celery, a queue for asynchronous (delayed/periodic) tasks.

We took advantage of drf-yasg for generating pretty API documentation and drf passwordless for passwordless authentication with SMS tokens.

Integrations

We used the Twilio API to send messages that contain authorization codes. Also, we implemented the Google Maps Places API so users can see information about pet stores and other places based on their location or by searching in the app.

Implemented features

Sign up and create a user account
Upon downloading the mPet app, a user has to sign up and create an account. To sign in to the app, the user provides a telephone number and receives a verification code. To fully set up an account, a user has to add a photo, username, and email. If a user needs to change their account phone number, the app allows them to contact support by pressing the Contact us button at the bottom of the account page.
Pet's medical record
General information about a pet can be accompanied by significant medical data: vaccinations, allergies, diagnosis, medications, and diets. mPet also lets users enter information about the pet’s quality of life. Owners are asked to rate the severity of conditions (diarrhea, seizures, vomiting), specify their pet’s level of energy, and measure the amount of water consumed.
Personal dashboard
A user is automatically taken to their personal dashboard after logging in. The personal dashboard includes pet profiles. At the top of the dashboard are two more features: by pressing +, the user can add a pet, and by pressing Useful Info, the user can find links to pet food stores, hotlines, vet services, etc.
Locator
This feature allows mPet users to find locations of interest. To see these, users have to turn on geolocation in their mobile phone settings. Locations shown in mPet include trails, pet-friendly parks, and beaches. With the locator, owners can also find vets, pet walkers, and pet sitters in the area.
Pet management
When adding a pet, a user provides the pet’s name, date of birth, gender, breed, weight, and blood pressure (optional).