worklog logo

Metrics

Analyze your builds from any CI/CD of your choice

Uber-like two-sided peer-to-peer freight platform
fluxx main imagefluxx main image

Summary

WorkloMetrics is a set of software components to collect and review software project metrics like performance, build stability, and codebase quality.It was created using Flutter for Web framework and Dart language. We chose Firebase for the backend part. It provides a client for Flutter that gives the possibility to use: Cloud Firestore, Sentry logging, and Firebase Analytics. Over time, Metrics was renamed into Flank Dashboard and was acquired by Google along with Flank.Metrics is a set of software components to collect and review software project metrics like performance, build stability, and codebase quality.It was created using Flutter for Web framework and Dart language. We chose Firebase for the backend part. It provides a client for Flutter that gives the possibility to use: Cloud Firestore, Sentry logging, and Firebase Analytics. Over time, Metrics was renamed into Flank Dashboard and was acquired by Google along with Flank.Metrics is a set of software components to collect and review software project metrics like performance, build stability, and codebase quality.It was created using Flutter for Web framework and Dart language. We chose Firebase for the backend part. It provides a client for Flutter that gives the possibility to use: Cloud Firestore, Sentry logging, and Firebase Analytics. Over time, Metrics was renamed into Flank Dashboard and was acquired by Google along with Flank.Metrics is a set of software components to collect and review software project metrics like performance, build stability, and codebase quality.

It was created using Flutter for Web framework and Dart language. We chose Firebase for the backend part. It provides a client for Flutter that gives the possibility to use: Cloud Firestore, Sentry logging, and Firebase Analytics. 

Over time, Metrics was renamed into Flank Dashboard and was acquired by Google along with Flank.

Worklog.AI is a time-tracking tool for software professionals. Created using Flutter framework and Dart language.

We chose Supabase for the backend part. It provides a client for Flutter that gives the ability to use: Authentication, Database (Postgres), and Realtime.

Our team fully created the UX, UI, and overall design of the tool. To communicate with users, we made a website, social networks, and a feedback board.

select languages:

Dart

location:

USA
Worldwide

technologies:

Flutter, Firebase
Flutter, Firebase

year:

2021
2021
image grid

Background

Creating complex applications like Uber or Lyft requires a significant investment of time and resources. But the work doesn't end with the initial launch - ongoing testing is critical to ensure these apps continue to run smoothly and meet the needs of their ever-growing user bases.

That's where Flank comes in. The powerful testing helper tool works with Firebase Test Lab and enables parallelizing a massive number of tests, drastically speeding up the testing process and ensuring that new features are ready for prime time.

Though, Flank was missing a graphical user interface (GUI), making it difficult to monitor and analyze testing results with ease.
Creating complex applications like Uber or Lyft requires a significant investment of time and resources. But the work doesn't end with the initial launch - ongoing testing is critical to ensure these apps continue to run smoothly and meet the needs of their ever-growing user bases.That's where Flank comes in. The powerful testing helper tool works with Firebase Test Lab and enables parallelizing a massive number of tests, drastically speeding up the testing process and ensuring that new features are ready for prime time.Though, Flank was missing a graphical user interface (GUI), making it difficult to monitor and analyze testing results with ease.
  • No-code

    Webflow is a no-code platform with an easy entry threshold. It means that even non-technical specialists may edit any part of the web page.
  • Faster path to launch

    Instead of pulling software engineers from product work, the marketing, and design team can implement all the key ideas on the landing page.
  • Great SEO Support

    Webflow provides the ability to specify semantic details that search engine indexing bots can easily parse.

Request

main task

As a team of seasoned software engineers and members of the Flutter Early Adopters program, we were approached by Matthew Edwards, an experienced engineering leader from Flank. With extensive expertise in the Flutter framework, having worked with its early versions and honed our skills in pushing the limits of the technology, we were well-suited to tackle this project.

Matthew requested the development of a visualization dashboard to provide insights into the performance and stability of CI builds. An important part of the request was the ability to run automation using various browser drivers.

Our main task was to architect and implement a comprehensive dashboard that would enable effective monitoring of the project's performance and stability across different browsers.

Scope of the project 

The task was to create a two-sided peer-to-peer general freight platform that will match the user’s freight delivery requirements with someone heading to the user’s location. To test the client’s idea, we needed to create two apps: iOS and Android.

Our main technical decisions: Flutter, Firebase and Stripe.
Flutter
Firebase
Why Flutter?
  • The single code base for all platforms

    Gives an opportunity to build, test and deploy mobile applications for different platforms from a single codebase.
  • Application performance

    Great performance because it compiles native code. While other cross-platform frameworks do not compile and/or have other restrictions that directly affect application performance.
  • Ample UI features

    Everything is a widget and it comes up with a wide variety of high-quality pre-existing widgets that can easily be added to your app and create visually appealing apps that that most of the users like.
  • Google Maps integration

    Google Maps has 99% coverage of the world and 1 billion monthly active users. That’s why we chose this map provider. With the Flutter plugin that provides a Google Maps widget, it was allowed to integrate it in no time.
Why Firebase?
  • Backend-as-a-service

    Firebase is the BaaS that provided us the possibility to not implement essential features like Authentication, Data storage, database, and push notifications and don’t spend time on various environments, their management, and scaling. So we didn’t need a separate backend team and fully concentrated on the Frontend part.
  • Integrations

    Firebase provides a feature-rich client for Flutter that is easy to use and integrate. It gives a possibility to connect Flutter with all the services we needed: Cloud Firestore, Firebase Authentication, Firebase Cloud Messaging.
  • Cloud Firestore

    We used Cloud Firestore because it’s a scalable database that allows real-time data exchange and data subscriptions for reactive UI updates.
  • Authentication

    Firebase offers a simple and quick authentication process that allowed us to integrate authentication in our apps via Facebook, Google, and email sign-in.
  • Firebase Cloud Messaging

    This feature helps to configure push notifications on both platforms (Android and iOS) and implement important and necessary notifications such as informing about the acceptance of the request, successful completion of the order, and payment for it.
Why Stripe?
  • Quality and Reliable Reputation

    Stripe is one of the leading solutions for internet payments worldwide. During the last few years over 100k businesses in Australia started using Stripe to proceed with their payment process. It’s one of the very few platforms that provides the possibility to create a two-sided peer-to-peer platform.
  • Payment methods integration

    Allowed to accept cards (and potentially Apple Pay/Google Pay), and securely store payment data to make payments easily.
  • Two-sided payments

    Stripe provides conditions under which the application collects payment and pays out only after a successfully completed order.

Deliveries

We built mobile apps for iOS and Android platforms using the Flutter framework with perfect quality and performance. In this project, our state management was Redux, as it was used by the founding team engineers, and they had experience with it.

Scope of the project 

The scope of the Metrics project includes the development of a web application with a user-friendly UI powered by Flutter, the implementation of data storage and security measures using Cloud Firestore, Sentry logging, and Firebase Analytics, and the creation of tools for deployment, data synchronization, logging, and analytics collection. The Metrics components are also configurable to fit the specific needs of the organization, including integration with CI systems, and authentication processes.

Our main technical components: Flutter for Web and Firebase.
Flutter
Why Flutter?
  • Flexibility

    The most notable thing about using Flutter is that you can write the code once and run it on different platforms. Worklog could be quickly extended to a mobile or desktop application.
  • Cross-browser Compatibility

    Thanks to Flutter you don’t need to worry about how your web application will look and work in each browser.
  • Flutter-Supabase Integration

    Supabase SDK makes it simple for Flutter developers to build secure and scalable products on this platform.
Why Flutter?
  • Code Reusability using Dart

    The Dart programming language, which powers Flutter, provides a strong foundation for building fast, reliable, and efficient command-line applications. This makes possible the creation of both Flutter applications and command-line applications, thus promoting code reuse and reducing development time. The Dart programming language also provides a smooth and seamless experience for developing command-line applications, providing a powerful tool for creating a wide range of applications directly for the terminal.
  • Cross-browser Compatibility

    Cross-browser compatibility in Flutter provides an optimized development process by eliminating the need to constantly check and fix compatibility issues across various browsers. Flutter ensures that the application looks the same in different browsers.Compatibility leads to improved efficiency and faster delivery times, ultimately resulting in improved overall project outcomes.
  • Automated testing

    Flutter offers numerous benefits to the software development process including improved efficiency and accuracy, increased coverage, early detection of bugs, and easier maintenance. By automating the testing process, we can ensure the functionality of the software components across different browsers with ease and precision.
  • Security rules

    Row-level security help to create complex access policies with SQL queries. Each rule is attached to a table, and authorisation is ensured for every single query.
Why Firebase?
  • Scalability

    With the potential of launching over 5000 builds per day, a robust and scalable platform is crucial for success. With its automatic scaling capabilities, Firebase is equipped to handle the demands of a growing business, making it easier to focus on delivering top-notch code without the hassle of infrastructure management. Moreover, scalability is something Google excels at.
  • Firebase Test Lab

    Firebase offers a seamless and integrated solution for the entire software development life cycle, from testing to deployment. With the help of Firebase Test Lab, we thoroughly test applications on a variety of physical devices and configurations, allowing us to identify and resolve any potential issues before release. This all-in-one solution streamlines the development process, saving valuable time and resources.
  • Integration with Flutter

    The Firebase plugin for Flutter allows for direct access to Firebase services, including authentication, real-time databases, and cloud storage. This integration enhances development and enhances app functionality.
  • Security rules

    Row-level security help to create complex access policies with SQL queries. Each rule is attached to a table, and authorisation is ensured for every single query.
Why Flutter?
  • Flexibility

    The most notable thing about using Flutter is that you can write the code once and run it on different platforms. Worklog could be quickly extended to a mobile or desktop application.
  • Cross-browser Compatibility

    Thanks to Flutter you don’t need to worry about how your web application will look and work in each browser.
  • Flutter-Supabase Integration

    Supabase SDK makes it simple for Flutter developers to build secure and scalable products on this platform.
Why Webflow?
  • No-code

    Webflow is a no-code platform with an easy entry threshold. It means that even non-technical specialists may edit any part of the web page.
  • Faster path to launch

    Instead of pulling software engineers from product work, the marketing, and design team can implement all the key ideas on the landing page.
  • Great SEO Support

    Webflow provides the ability to specify semantic details that search engine indexing bots can easily parse.

Deliverables

The Metrics project encompasses a comprehensive set of solutions aimed at providing organizations with a seamless way to monitor and improve their software projects' performance, stability, and quality. The project delivers a fully functional Metrics Web Application featuring an intuitive and user-friendly UI powered by Flutter, making it both fast and reliable.

Despite the visible aspect of our work for the end user, extensive efforts have been made behind the scenes. Here are some of the key achievements of our project:

  • Command Line Application: The Metrics project includes a CLI specifically designed for use with Continuous Integration systems. The CLI facilitates easy integration with the CI system and helps ensure up-to-date data is available on the Metrics Web Application.
  • Command Line Application: The Metrics project includes a CLI specifically designed for use with Continuous Integration systems. The CLI facilitates easy integration with the CI system and helps ensure up-to-date data is available on the Metrics Web Application.
  • Firebase Instance Configuration: The project includes preconfigured environments for Firebase instances, making it easy to set up and use.
  • Firestore Database: All data collected by the Metrics components is stored securely in a Cloud Firestore database. This data is protected by a comprehensive set of Firestore security rules to ensure that only authorized users have access.
  • Logging and Analytics Collection: The Metrics project includes tools for logging and analytics collection, allowing monitoring of the performance of the projects and making data-driven decisions. The logging is performed on the user's Sentry account if enabled, and analytics are reported to the user's Firebase Analytics account.
  • Deployment and Synchronization: The Metrics software components include a set of tools for deployment and data synchronization, making it easy to keep projects up-to-date and running smoothly. Additionally, the project includes installers for creating new Firebase instances, making it simple to get started with the Metrics solution.

In conclusion, the Metrics project delivers a comprehensive solution for monitoring and improving software projects' performance, stability, and quality. The project's user-friendly UI, secure data storage, and robust set of tools make it an ideal choice for organizations of all sizes.

fluxx details imagefluxx details imagefluxx details imagefluxx details image

Prototypes, not presentations

Advertise a freight request and have your goods delivered quicker and cheaper using the Fluxx geolocational algorithm to match your delivery with a peer travelling to your location.

Subsidise your cost of travel and earn money by delivering freight to others on your route. Freight sizes are categorised, so no matter what you drive, there's something that you can carry.

Scope of the project 

The task was to create a two-sided peer-to-peer general freight platform that will match the user’s freight delivery requirements with someone heading to the user’s location. To test the client’s idea, we needed to create two apps: iOS and Android.

Our main technical decisions: Flutter, Firebase and Stripe.

Why Flutter?

  • The single code base for all platforms

    Gives an opportunity to build, test and deploy mobile applications for different platforms from a single codebase.
  • Application performance

    Great performance because it compiles native code. While other cross-platform frameworks do not compile and/or have other restrictions that directly affect application performance.
  • Ample UI features

    Everything is a widget and it comes up with a wide variety of high-quality pre-existing widgets that can easily be added to your app and create visually appealing apps that that most of the users like.
  • Google Maps integration

    Google Maps has 99% coverage of the world and 1 billion monthly active users. That’s why we chose this map provider. With the Flutter plugin that provides a Google Maps widget, it was allowed to integrate it in no time.
Why Firebase?
  • Backend-as-a-service

    Firebase is the BaaS that provided us the possibility to not implement essential features like Authentication, Data storage, database, and push notifications and don’t spend time on various environments, their management, and scaling. So we didn’t need a separate backend team and fully concentrated on the Frontend part.
  • Integrations

    Firebase provides a feature-rich client for Flutter that is easy to use and integrate. It gives a possibility to connect Flutter with all the services we needed: Cloud Firestore, Firebase Authentication, Firebase Cloud Messaging.
  • Cloud Firestore

    We used Cloud Firestore because it’s a scalable database that allows real-time data exchange and data subscriptions for reactive UI updates.
  • Authentication

    Firebase offers a simple and quick authentication process that allowed us to integrate authentication in our apps via Facebook, Google, and email sign-in.
  • Firebase Cloud Messaging

    This feature helps to configure push notifications on both platforms (Android and iOS) and implement important and necessary notifications such as informing about the acceptance of the request, successful completion of the order, and payment for it.
Why Stripe?
  • Quality and Reliable Reputation

    Stripe is one of the leading solutions for internet payments worldwide. During the last few years over 100k businesses in Australia started using Stripe to proceed with their payment process. It’s one of the very few platforms that provides the possibility to create a two-sided peer-to-peer platform.
  • Payment methods integration

    Allowed to accept cards (and potentially Apple Pay/Google Pay), and securely store payment data to make payments easily.
  • Two-sided payments

    Stripe provides conditions under which the application collects payment and pays out only after a successfully completed order.

Deliveries

We built mobile apps for iOS and Android platforms using the Flutter framework with perfect quality and performance. In this project, our state management was Redux, as it was used by the founding team engineers, and they had experience with it.

We configured and tested a couple of Firebase environments for development, testing and production. Created a set of security rules for Firebase to protect the data along with a set of security rules tests to ensure that they cover every possible scenario of how users can interact with the platform.

Our team configured a two-sided platform inside Stripe. We made custom integration using Firebase Cloud Functions between Firebase and Stripe (now Stripe has a special extension for Firebase that can speed up development even more).

Scope of the project 

The task was to create a two-sided peer-to-peer general freight platform that will match the user’s freight delivery requirements with someone heading to the user’s location. To test the client’s idea, we needed to create two apps: iOS and Android.

Our main technical decisions: Flutter, Firebase and Stripe.
Flutter
Firebase
fluxx details imagefluxx details imagefluxx details image

Prototypes, not presentations

Advertise a freight request and have your goods delivered quicker and cheaper using the Fluxx geolocational algorithm to match your delivery with a peer travelling to your location.

Subsidise your cost of travel and earn money by delivering freight to others on your route. Freight sizes are categorised, so no matter what you drive, there's something that you can carry.

Scope of the project 

The task was to create a two-sided peer-to-peer general freight platform that will match the user’s freight delivery requirements with someone heading to the user’s location. To test the client’s idea, we needed to create two apps: iOS and Android.

Our main technical decisions: Flutter, Firebase and Stripe.

Why Flutter?

  • The single code base for all platforms

    Gives an opportunity to build, test and deploy mobile applications for different platforms from a single codebase.
  • Application performance

    Great performance because it compiles native code. While other cross-platform frameworks do not compile and/or have other restrictions that directly affect application performance.
  • Ample UI features

    Everything is a widget and it comes up with a wide variety of high-quality pre-existing widgets that can easily be added to your app and create visually appealing apps that that most of the users like.
  • Google Maps integration

    Google Maps has 99% coverage of the world and 1 billion monthly active users. That’s why we chose this map provider. With the Flutter plugin that provides a Google Maps widget, it was allowed to integrate it in no time.
Why Firebase?
  • Backend-as-a-service

    Firebase is the BaaS that provided us the possibility to not implement essential features like Authentication, Data storage, database, and push notifications and don’t spend time on various environments, their management, and scaling. So we didn’t need a separate backend team and fully concentrated on the Frontend part.
  • Integrations

    Firebase provides a feature-rich client for Flutter that is easy to use and integrate. It gives a possibility to connect Flutter with all the services we needed: Cloud Firestore, Firebase Authentication, Firebase Cloud Messaging.
  • Cloud Firestore

    We used Cloud Firestore because it’s a scalable database that allows real-time data exchange and data subscriptions for reactive UI updates.
  • Authentication

    Firebase offers a simple and quick authentication process that allowed us to integrate authentication in our apps via Facebook, Google, and email sign-in.
  • Firebase Cloud Messaging

    This feature helps to configure push notifications on both platforms (Android and iOS) and implement important and necessary notifications such as informing about the acceptance of the request, successful completion of the order, and payment for it.
Why Stripe?
  • Quality and Reliable Reputation

    Stripe is one of the leading solutions for internet payments worldwide. During the last few years over 100k businesses in Australia started using Stripe to proceed with their payment process. It’s one of the very few platforms that provides the possibility to create a two-sided peer-to-peer platform.
  • Payment methods integration

    Allowed to accept cards (and potentially Apple Pay/Google Pay), and securely store payment data to make payments easily.
  • Two-sided payments

    Stripe provides conditions under which the application collects payment and pays out only after a successfully completed order.

Deliveries

We built mobile apps for iOS and Android platforms using the Flutter framework with perfect quality and performance. In this project, our state management was Redux, as it was used by the founding team engineers, and they had experience with it.

We configured and tested a couple of Firebase environments for development, testing and production. Created a set of security rules for Firebase to protect the data along with a set of security rules tests to ensure that they cover every possible scenario of how users can interact with the platform.

Our team configured a two-sided platform inside Stripe. We made custom integration using Firebase Cloud Functions between Firebase and Stripe (now Stripe has a special extension for Firebase that can speed up development even more).

fluxx details imagefluxx details imagefluxx details imagefluxx details image

Prototypes, not presentations

Advertise a freight request and have your goods delivered quicker and cheaper using the Fluxx geolocational algorithm to match your delivery with a peer travelling to your location.

Subsidise your cost of travel and earn money by delivering freight to others on your route. Freight sizes are categorised, so no matter what you drive, there's something that you can carry.

Scope of the project 

The task was to create a two-sided peer-to-peer general freight platform that will match the user’s freight delivery requirements with someone heading to the user’s location. To test the client’s idea, we needed to create two apps: iOS and Android.

Our main technical decisions: Flutter, Firebase and Stripe.

Why Flutter?

  • The single code base for all platforms

    Gives an opportunity to build, test and deploy mobile applications for different platforms from a single codebase.
  • Application performance

    Great performance because it compiles native code. While other cross-platform frameworks do not compile and/or have other restrictions that directly affect application performance.
  • Ample UI features

    Everything is a widget and it comes up with a wide variety of high-quality pre-existing widgets that can easily be added to your app and create visually appealing apps that that most of the users like.
  • Google Maps integration

    Google Maps has 99% coverage of the world and 1 billion monthly active users. That’s why we chose this map provider. With the Flutter plugin that provides a Google Maps widget, it was allowed to integrate it in no time.
Why Firebase?
  • Backend-as-a-service

    Firebase is the BaaS that provided us the possibility to not implement essential features like Authentication, Data storage, database, and push notifications and don’t spend time on various environments, their management, and scaling. So we didn’t need a separate backend team and fully concentrated on the Frontend part.
  • Integrations

    Firebase provides a feature-rich client for Flutter that is easy to use and integrate. It gives a possibility to connect Flutter with all the services we needed: Cloud Firestore, Firebase Authentication, Firebase Cloud Messaging.
  • Cloud Firestore

    We used Cloud Firestore because it’s a scalable database that allows real-time data exchange and data subscriptions for reactive UI updates.
  • Authentication

    Firebase offers a simple and quick authentication process that allowed us to integrate authentication in our apps via Facebook, Google, and email sign-in.
  • Firebase Cloud Messaging

    This feature helps to configure push notifications on both platforms (Android and iOS) and implement important and necessary notifications such as informing about the acceptance of the request, successful completion of the order, and payment for it.
Why Stripe?
  • Quality and Reliable Reputation

    Stripe is one of the leading solutions for internet payments worldwide. During the last few years over 100k businesses in Australia started using Stripe to proceed with their payment process. It’s one of the very few platforms that provides the possibility to create a two-sided peer-to-peer platform.
  • Payment methods integration

    Allowed to accept cards (and potentially Apple Pay/Google Pay), and securely store payment data to make payments easily.
  • Two-sided payments

    Stripe provides conditions under which the application collects payment and pays out only after a successfully completed order.

Deliveries

We built mobile apps for iOS and Android platforms using the Flutter framework with perfect quality and performance. In this project, our state management was Redux, as it was used by the founding team engineers, and they had experience with it.

We configured and tested a couple of Firebase environments for development, testing and production. Created a set of security rules for Firebase to protect the data along with a set of security rules tests to ensure that they cover every possible scenario of how users can interact with the platform.

Our team configured a two-sided platform inside Stripe. We made custom integration using Firebase Cloud Functions between Firebase and Stripe (now Stripe has a special extension for Firebase that can speed up development even more).

cub line

Launch Success

Currently, Worklog is in its beta stage. With very low effort we received the first subscribers.

Launch Success

We were able to build an MVP product with pixel-perfect design implementation using Flutter so it was ready to be showcased internally and externally. Along the way by adopting company processes we were able to achieve:
faster Cycle Time:
85%
faster Deployment Frequency:
200%
more Throughput:
400%
Change Failure Rate:
0.48%
Final thoughts

The Metrics project has proven to be a valuable solution for organizations looking to monitor the performance, stability, and quality of their software projects. The user-friendly UI, secure data storage, and flexible configuration options have set it apart as a leader in the industry.
Based on the results of the work on the project, the Haystack company conducted an analysis of our productivity. After evaluating all aspects of software development, came to the conclusion that we achieved the same level of quality as elite performers.

We are proud to have been a part of its development and are excited to see its continued success in the future.

year:
2022
solid software.
cross lines
Performance Report by

Our team's productivity was analyzed by a third-party: Haystack. They found out that we achieved the same level of quality as elite performers, with key results including a 0.48% Change Failure Rate.

Complete the form and we will shortly be in touch with you.

comment photo
Matthew Edwards
Engineering Leader, ex-Robinhood

"Solid Software helped a financial company improve engineering team productivity by using one language across the front- and backend. I was impressed with the quality of the code and design documents, and the team was able to keep high-quality bars and deliver features on time. Project management was handled helpfully with daily tasks, weekly retrospectives, and backlog refinement meetings."

comment photo
Philipp Temmel,
Curator of Creativerly

"Worklog is especially aimed at software professionals. It was built to help you with your journey to eliminate all the frictions that distract you from engineering."

Looking for your project done right?

next project

arrow icon
also you can:

Select languages

Dart

Technologies

Flutter, Supabase, Webflow

check it out
arrow icon
Worklog

Worklog

Worklog is a time-tracking tool that has been specifically designed for software engineers.