See more case studies

75%

faster operations

1

Excel file instead of dozens

80%

shorter billing time

Streamline distribution: How a rewards-driven experience can transform your operations

Challenge: Replace outdated methods with the latest in app technology

From the outset, the project aimed to develop an application that would streamline operations for Carlsberg Polska distributors and their managers. There was a pressing need to move away from outdated and error-prone methods, such as managing hundreds of emails and numerous Excel sheets. Our client also wanted to simplify and speed up the user billing process. To meet these needs, the new system had to be user-friendly, automated, and reliable.

However, when Carlsberg Polska first approached us, they were recovering from releasing an unsuccessful app that failed to meet user expectations and was withdrawn. Meanwhile, competitors had seized the opportunity and launched their own applications, which were well received in the marketplace. 

So our challenge was twofold: to keep pace with established competitors and to create an easy-to-use and reliable system that would significantly improve operations.

The goals of the Hoppy project for Carlsberg Polska:

  • Replace outdated email and Excel methods with an automated solution to improve existing market processes.
  • Use the application to reduce the operation time and the organization’s manual effort.
  • Ensure products are delivered quickly and efficiently to retail stores. Keep products visible to potential customers.
  • Enable users to conveniently access and complete tasks in the field, increasing engagement.
  • Have a world-class product that provides an edge over the competition.

Solution: Key strategies for improving user interaction

How clear initial goals set us up for success

From the beginning, our team focused on gathering and analyzing feedback from the previous version of the app. This step was critical to ensuring that the new version would meet users’ needs and improve their day-to-day experience. We also held workshops to determine the full scope of the project and plan it in phases that made financial and strategic sense.

Lower costs, faster development with Flutter

Technologically, we opted for Flutter for its cross-platform capabilities, allowing us to launch simultaneously on iOS and Android. This choice guaranteed lower project costs and a faster app release.

Rewards-driven app: Improved UX for streamlined operations

Hoppy is designed to offer a rewards-driven experience in order to make the distribution process simple and fun. While redesigning the app, we focused on simplicity and functionality to streamline daily operations for both distributors and managers. Here’s what we’ve introduced.

For distributors:

  • Ease of use: Distributors can easily select and complete tasks directly from their smartphones.
  • On-the-go functionality: A user-friendly interface, tasks with a map and timely reminders make it easy for dealers to use on the road.
  • New features: The app allows users to register for new tasks, approve completed ones, read news, participate in e-learning modules, and more.
  • Bonus cash out: Users can easily convert their earned points into cash through the in-app store.

For managers:

  • Admin panel: Streamlines task management by enabling managers to create tasks, add users, upload documents, and distribute points.
  • Advanced dashboard: Provides complete visibility into distributor activity with real-time updates on tasks and key metrics.
  • Enhanced coordination: The interface simplifies administrative tasks, ensures compliance, and enhances managers’ ability to respond quickly to changes, improving team coordination and decision-making.

Results: 75% less time spent on operations

Hoppy is a huge time saver

Before Hoppy, it took 15-20 hours a week to manage a distribution project. Now that time has been reduced to just 5 hours per week. This saves 75% of the time.

Faster user billing

Hoppy helped us to reduce user billing time by 80% thanks to the automatic transfers we implemented.

Streamlined and automated workflow

With Hoppy, we’ve streamlined the process to just one Excel file and one required PDF document, significantly reducing the previous clutter of dozens of Excel files and hundreds of emails.

Hoppy is a solid application, technically and business-wise there is nothing to complain about. For the record, you can now remember with a slight smile all the security tests we went through, I’ve never seen such a thoroughly tested application at Carlsberg (and I’ve seen a lot).
– Senior Manager/IT Senior Architect at Carlsberg

Strategic task management

Hoppy simplifies the process of assigning tasks to sales reps and provides the flexibility to stop tasks when they’re no longer needed, resulting in cost savings.

Increased user engagement

Hoppy streamlines task completion and management, improving the overall experience. Both sales reps and their managers have given positive reviews of the new version of the app.

Here are some of the quotes from our survey of users of the new version of the Hoppy app:

  • “This is a great way to make extra money.”
  • “More mobilization.”
  • “Salary motivates.”
  • “I like to stay up to date.”
  • “Additional benefits in the form of knowledge and cash.”
  • “It’s quick, without unnecessary paperwork.”
  • “It motivates me to act.”
  • “Makes it easier to control tasks.”
  • “Transparent, easy to use. It is fast and efficient compared to other manufacturer programs.”
  • “Additional funds are needed by everyone. Thanks to tasks, it is possible.”
  • “It has motivated me to make more sales.”
  • “Opportunity to earn a penny and entertainment in one.”

The scope of the project

Product Discovery Workshops

The initial workshops laid a strong foundation by focusing on cost estimation, pricing, and defining the project scope. Using an agile process, we broke the scope into manageable phases that aligned with our budget and goals. These sessions were key to identifying key launch features and planning for future enhancements, ensuring flexibility and focus on critical aspects of the app.

App Redesign

To meet the needs of users, we introduced a new design that includes an easy-to-use admin panel and a detailed dashboard for user data and statistics. The redesign was carefully planned to enhance the user experience with a modern and attractive look that meets current standards. This fresh approach not only improved the functionality of the app, but also greatly enhanced its visual appeal.

Mobile Flutter App

Using Flutter, we developed a mobile app that supports both iOS and Android, speeding up the development process. The app streamlines former sales processes by allowing users to complete tasks, earn points, and directly redeem them for cash. This approach not only updates task management but also boosts user engagement with its rewarding system.

Web App

The web application enables effective task management by enabling administrators to customize tasks with various settings, including types, rules, and point awards. They can also assign tasks to groups or all users, adding surveys, and managing key resources like users and notifications. Crucially, it tracks and rewards task completion with points redeemable for prizes, ensuring comprehensive system control.

Backend

The backend application was developed using REST API architecture to communicate via JSON across different platforms (web, iOS, and Android). To meet business requirements and simplify product maintenance, integrations with a file-sharing service, e-learning platform, and money transfer execution were implemented on the API side.

Quality Assurance

To ensure thorough oversight of the testing phases, we use JIRA and Xray for test management and defect tracking. Browserstack and STF are in use for device compatibility testing, while Crashlytics is in use for detailed bug reporting. Postman and Insomnia facilitate API testing, and Firebase monitors app performance to ensure smooth functionality across all platforms.

Maintenance

Following the release of the Hoppy app, our focus is on maintaining its user-friendliness and bug-free operation. Our monitoring tools help us quickly identify and address any arising issues. We also regularly update the app in response to Flutter upgrades, system changes, or user feedback to ensure it remains current and functional.

Key features

How we did it

We developed a versatile app for both Android and iOS using a single codebase with the Flutter framework and Dart language, utilizing the BLoC architecture pattern for robust management of the app’s state.

For real-time notifications, such as alerting users about new tasks or rewards, we integrated Firebase Messaging. This ensures users are promptly updated about important actions and changes within the app.

To understand user behavior and refine our business and marketing strategies, we incorporated Google Analytics. This tool provides essential insights that inform our decision-making processes, enhancing user engagement and app functionality.

Deep linking plays a crucial role in our app, particularly during the registration process. This enables users to verify their accounts through email links that seamlessly transition them back into the app as verified users, streamlining the account creation process. Following email verification, the user completes a four-step account creation process, with the final step leveraging an external API to autofill address details from postal codes, significantly reducing form completion time.

In the app’s second development phase, we tackled the challenge of displaying custom tasks on a map by integrating with Google Maps using the google_maps_flutter library. We added custom pins that vary by task type and, when selected, display available tasks at that location.

We also enhanced task functionality by incorporating surveys that administrators can customize when setting up tasks. These surveys can gather user preferences or verify task completion, including options for basic single, multiple-choice, and text answers, as well as photo uploads from either the gallery or direct capture, and QR code scanning.

Lastly, integration with an e-learning platform was achieved using the flutter_inappwebview library, ensuring that users experience a seamless transition to and from the educational content, making it a smooth and integral part of the app experience.

Framework

Flutter

Language

Dart

Architecture

BLoC

Networking

Dio

Notifications

Firebase Messaging

CI

Bitrise

Testing

Mockito

Localization

Intl

We developed a web application using React with the Vite bundler to accelerate development, using Material UI for quick design implementation. A significant challenge was designing a task creation form that could handle various task configurations while adhering to business rules. This included conditional fields that would appear or adjust based on other entries. We addressed this complexity by using react-hook-form to manage form state and Zod for validation.

The application heavily relies on API data, which serves as the primary source of truth. We used the react-query library for effective state synchronization and React’s context mechanism for managing the global state.

We organized the application into modules to keep the code manageable, employed ESLint for static code analysis, and Prettier for code formatting. Additionally, the application integrates Firebase for behavior analysis and Sentry for error reporting, enhancing the overall functionality and user experience.

Language

Typescript

Framework

React

Application type

Single Page application

State management

react-query (sync state with API)

UI library

Material UI

3rd party integration

Firebase, Sentry

We developed our API using Node.js with the NestJS framework, which expedited our development by providing numerous built-in features. We adopted clean architecture as our guiding principle, ensuring that our business logic remained independent of external dependencies, frameworks, and databases. This architecture not only facilitated the creation of clear and efficient acceptance tests but also provided robust protection against bugs.

The business requirements necessitated integration with a variety of external services, ranging from commonly used ones like Sendgrid for email services and AWS S3 for file storage, to more complex systems such as e-learning platforms and virtual credit card money transfers. 

We meticulously reviewed the documentation and enhanced communication with these services to develop robust abstractions that concealed the implementation details without losing critical information. This was especially crucial with services like Igoria Trade, which uses a SOAP communication architecture. To ensure data integrity, we utilized the Zod library for response validation, confirming that the data received was in the correct format.

For code quality and consistency, we used the same tools we used for web application (ESlint & Pretier). The application is containerized using Docker and deployed on AWS infrastructure, ensuring reliable and scalable operation.

API type

REST

Language

Typescript

Framework

NestJs

Database

Postgresql

ORM

TypeORM

File storage

AWS S3

End-to-end-tests

jest

3rd party integration

Sengrid, Sentry, Igoria Trade, SaleOn

We kicked off the app project with product discovery workshops where we defined the scope and divided it into versions to meet the budget requirements and business goals. Throughout all design phases, starting with wireframes, designers were part of the SCRUM team, ensuring constant communication with the client and product team. During weekly design reviews, we refined the output along with the component library to meet the client’s vision. All work was done in Figma.

In the first version of the application, we provided users with convenient access to group tasks, earning points and the ability to exchange them for real money.

After the first release, we received positive feedback from users. The application achieved its goals and helped to centralize tasks and earn rewards. Users identified tasks as the most important feature, so we added other types of individual tasks, such as surveys, educational tasks, distribution tasks, and sales tasks. In addition, we integrated a database of retail stores, giving users access to tasks via a map for greater convenience.

In future versions of the application, we plan to continue gathering feedback from users and improve the gamification features while expanding the store.

Workshops

Miro

UX flows

Figma

Wireframes & UI

Figma

Clickable prototyp

Figma

Collaboration

Figma

Design system

Figma

To ensure the application meets the highest standards of quality and reliability, we use a mix of manual testing and advanced tools. We use test management tools such as JIRA and Xray to design test plans, manage defects, and track test case results, facilitating effective collaboration and progress tracking across the development team.

For device compatibility testing, we use services such as Browserstack and STF (Smartphone Test Farm), which provide access to a wide range of real devices, emulators and simulators. This enables us to rigorously test the app across multiple platforms and configurations. For crash and bug reporting, we use Crashlytics for detailed diagnostics and troubleshooting, which helps us maintain a stable and high-quality application.

API testing is performed using tools such as Postman and Insomnia, which are essential for verifying backend interactions and ensuring that our APIs deliver correct results and handle errors effectively. We also use Alice, an HTTP inspector tool built specifically for Flutter, to debug HTTP requests within the application.

Finally, Firebase Performance Monitoring helps us track and optimize app performance by providing key metrics on startup times, network latency, and user interactions. This holistic set of QA strategies and tools ensures that the Hoppy project delivers a robust and user-friendly mobile application.

Test management tools

JIRA, Xray

Device farm

Browserstack, STF

Crash and bug reporting tools

Crashlytics

API testing

Postman, Insomnia

HTTP Inspector tool for Flutter

Alice

Performance monitoring

Firebase

Analytics

Firebase

How it works

Team

We adjusted the size of the team according to our client's needs

Product Owners

Krzysztof Adamczyk
Olga Krasucka-Krawczyk

Scrum Masters

Marta Małkowska
Beata Bojanowska

Customer Success Manager

Joanna Śpiak-Jadłosz

Business Analysts

Krzysztof Hołownia
Mark Rumianstev

UX Researchers

Agnieszka Bartkowiak
Katarzyna Styrnol

Flutter Developer

Jakub Janiec

Web Developers

Bartosz Skuza
Michał Skuza
Michał Raszczuk

UX / UI Designer

Hanna Miashkova

Quality Assurance

Remik Gągała
Filip Kowalewski

Build your app with an experienced team

We’ll guide you throughout the entire journey, from ideation to a successful launch and beyond

Not ready for an estimate? Write to us and book a Product Design Workshop to clarify your vision and prepare the crucial documentation.

Other case studies

Nice To Fit You – mCommerce Diet Catering App

mCommerce diet catering app

CPOT – Construction App for Road Maintenance

Construction app for road maintenance in the Nordics

Portfolio

Top