Hire us

Work with Exyte

Your name
E-mail
Website or company name (optional)
How can we help?
Thank you for your interest! A member of our team will be in touch as soon as possible.
GuruPrepCoach
Building an application for coaches in the health and fitness industry
2020
Project length
GuruPrepCoach
Scroll down
Background

GuruPrepCoach is an application for coaches in the health and fitness industry. Their goal is to ensure that coaches are given the necessary tools to provide the highest quality of coaching for each of their clients.

With GPC, coaches can customize meal plans, create detailed workouts, and schedule weekly check-ins with their clients. To track improvements easily, clients can upload their progress pictures and send them directly to their coach right from the GPC app. Coaches also can engage in real-time communication with their clients and track metrics to make certain that specific goals are being accomplished.

The client came to us with a ready design and asked for help implementing the app.

React Native development for GuruPrepCoach
Application features

  • Delightful interface for coaches and their competitive athletes.
  • Body measurement tracker to document height, weight, body fat percentage, and other metrics.
  • Data visualization to easily track progress with metrics and access to check-in history.
  • Real-time messaging for both coach and client.
  • Scheduled alerts (reminders) so that clients will not miss any meals, training sessions, or check-ins.
  • Ability to submit progress pictures at check-ins.
  • Coaches can receive push notifications when their clients send check-in updates and messages.
  • Clients can receive push notifications if there are any updates or modifications to diet or workout programs.
  • High customizability to enable coaches to guide their clients to success.
Challenges
React Native development for GuruPrepCoach

Since the project had a limited budget, there were no funds to hire two teams for both iOS and Android. We proposed to use React Native — a technology that enables development in both platforms at once.

The flexibility of React Native comes with its limitations. We had to navigate the development process well to ensure that the application is integrated with both iOS and Android and that all features work on both of these platforms. In our case, push notifications and paid subscriptions were somewhat challenging.

Process

In total, eight people worked on the project (including five developers).

The main feature of this project is the calendar with events like meal, workout, and check-in. We implemented the calendar’s functionality from scratch with the ability to create recurring events, edit events while taking into account repetitions, and create scheduled reminders. For the calendar, we did not use any third-party API like Google Calendar.

React Native development for GuruPrepCoach

For authentication, we used Amazon Cognito with its Amplify wrapper. Despite the complexity of the setup and some bugs in the library itself, Amazon Cognito helped implement many features like login, registration, the refresh token, password changes and resets, authorization with social networks.

From a UI perspective, the application had a rather tricky client registration process, with different screens and complex transitions. The application had to serve both coaches and clients, with a different registration process for each. The users could change roles: we needed to give users that register as clients the opportunity to register as coaches later, and vice versa.

React Native development for GuruPrepCoach

We solved that by using MobX, a library for state management, and React Navigation. We designed a specific state machine with a set of flows: coach, client, coach as a client, client as a coach. Depending on the current state, the application knew how to adjust its state and which screen should it display next.

The most difficult feature in this project was paid subscriptions. This is because the APIs of Google and Apple differ significantly for this, and it is not easy to bring them to a common denominator. The react-native-iap library helped us develop this feature — it was the only third-party solution that met our requirements. Otherwise, we would need to implement some native parts for iOS and Android.

Project stack

On the mobile development side, we used React Native, TypeScript, MobX. React-Native allowed us to implement an application for both platforms at the same time.

React Native development for GuruPrepCoach

On the backend, we used the NestJS framework. This technology made it possible to find a balance between development speed, the quality of the production-ready backend, and the need to write all the necessary utilities. NestJS provides a lot out of the box. For example: an ORM layer, work with databases, database migrations, dependency injection, modular architecture.

Communication with the client was organized via Slack, Zoom, Jira, and GitHub.

Results

For the client, we developed a real multi-platform application that is stable and quite easy to support.

Because of React Native, the app works on two platforms for the same cost as developing something for only one platform.

Review

«The team’s commitment and exceptional work ethic result in a valuable partnership. Following a detailed project overview, Exyte has not only remained on schedule and budget but also communicated challenges to ensure transparent collaboration. Their accessibility leads to effective engagement.»

GuruPrepCoach reviewer image
James Pratt
CEO at GuruPrepCoach
Read more on Clutch

See cases