Case study · Health and wellness
It's Time Texas
Community Health App and Website Takeover
Choose Healthier helps people find healthy activities near them, posted by local gyms, parks departments and community groups. We took over the website and the iOS and Android apps from the firm that built them, fixed search, rebuilt the tools vendors use to post activities, and shipped app updates to both stores.
Overview
Choose Healthier is a free website and mobile app from It's Time Texas, a cause organization working to make healthy living easier across Texas. Gyms, studios, parks departments and community groups post healthy activities, and people nearby find them by date, distance, audience, skill level and price, then save or share them with friends and family.
It's Time Texas brought us in during the fall of 2015 to take over the website and the iOS and Android apps from the firm that built them. We supported both through 2016: fixing what was broken, rebuilding the tools vendors use to post activities, and shipping app updates to both stores.
The Challenge
The site looked like a WordPress site, but its pages were rendered by a JavaScript application built with its own toolchain and served from inside a WordPress multisite install on WP Engine. The same custom API fed both the website and the mobile app, which was built in Unity. A change to one could break the other, and even small template edits had to go through the JavaScript build instead of the WordPress theme.
On top of that, the basics were failing. Searching by ZIP code returned activities miles outside the radius. Audience filters were ignored. Searches took up to 26 seconds. Vendors could see and edit other vendors' activities, and the form they used to post them had no way to set up a class that repeats every week. On Android, more than 3,000 devices could not install the app at all.
What We Built
A plan that did not break the app
We documented how the system fit together and recommended incremental changes over a full rebuild, so the website and the app could keep running while we worked. The first step moved the site's layout and styles into a proper WordPress theme, so routine changes no longer needed the JavaScript build. We set up a staging copy, put the code in version control, and later split the app and the website into separate repositories.
Search that returns the right results
We fixed the distance, audience and price filters on the website and in the API the app uses, added a loading indicator while filters run, and fixed the geocoding that turns a ZIP code into a location. We also added a table that stores geocoding results, so a repeated ZIP code does not have to be looked up with Google again. Search across more than 2,000 activities went from 18 to 26 seconds to under 4.
Vendor tools people could use
We rebuilt the form vendors use to submit activities. Vendors now see and edit only their own activities and their own saved venues and organizers. A Repeat option opens a window modeled on Google Calendar for weekly or custom schedules. Open events have a start and end time and stay listed until they close. Youth pricing appears only when an activity is for kids or teens. When a vendor saves with a missing field, the form scrolls to the first error. New activities no longer become featured on the home page by default; staff choose those.
Keeping the app in both stores
We updated the Unity app's Android build so it installs on about 1,300 more devices, added organizer names to the activity cards, removed a deals section the client no longer offered, fixed sign-out, updated the Facebook SDK so the app would build again, and checked the app against iOS 10. Each release went to the client's testers first, then to Google Play and the App Store.
Opening the data to partners
When a San Antonio partner wanted Choose Healthier activities on its own site, we wrote documentation for the API's search requests and responses. We also added ZIP code and radius parameters to the site's URL, so any partner can link to a list of activities near its community.
Ongoing support
We handled monthly WordPress and plugin security updates, SSL, Google Analytics for the website, and requests that came in through our helpdesk.
Results
- Website and app search returned activities within the chosen distance, audience and price, and results loaded in under 4 seconds instead of up to 26.
- Vendors could post one-time, repeating and open activities themselves, and could only change their own.
- The Android app became installable on about 1,300 more devices, and updated versions shipped to both app stores.
- Partners could link straight to local results or use the documented API.