worklog logo

ODRIVE

Web Dashboard for the Robotics Motors

Uber-like two-sided peer-to-peer freight platform
Tools Providers
Fluxx iOS App screenshotFluxx iOS App screenshot preview
ODrive Flutter Web GUI preview on Macbook
fluxx main imagefluxx main image
Summary section grid picture

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.The ODrive Web Graphical User Interface is a Flutter web application developed to enhance the configuration and real-time data display capabilities of the ODrive control board and motors. The primary objective was to create a user-friendly interface that simplifies the interaction with the company's products.

To achieve this, Flutter was chosen as the development framework due to its ability to create high-performance web applications with a single codebase. For the backend infrastructure, Firebase was leveraged, taking advantage of its powerful solutions such as Firebase Analytics and Firestore.

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.

Summary Section line

select languages:

Dart

location:

USA
Worldwide

technologies:

Flutter, Firebase
Flutter, Firebase

year:

2023
2023
image grid

Background

ODrive is a manufacturer that specializes in producing motors, controllers, and components tailored to the robotics industry.

ODrive-powered projects have become a highlight in the robotics community, capturing attention with their impressive capabilities. Notable examples include the agile back-flipping robot: Stanford Doggo, and Michigan’s Tech’s water-seeking lunar rover.

While ODrive has garnered popularity in the robotics community, its extensive range of parameters and configurations has introduced complexities in its control and management processes.

Historically, the controllers were primarily managed through the ODrivetool command-line interface (CLI). This approach required users to install the tool itself, Python 3, and for Mac users, Homebrew, in addition to familiarizing themselves with specific commands, scripts, and their respective usage.
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.
ODrive Command Line Interface screenshot

Request

main task

The primary objective was to replace the current command-line interface tool used for managing and configuring ODrive motors with a new solution that offers comprehensive control and configuration capabilities while eliminating the need to install additional software.

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 

Our goal was to make it possible to interact with ODrive by plugging a device in and with a click of a button opening an easy-to-use GUI dashboard.

We needed to create a web application with an intuitive user interface that could integrate with plugged-in ODrive devices.

Our main technical components: Flutter for Web and Firebase.
Flutter logo
Flutter
Firebase
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?
  • High performance

    Flutter's fast rendering speeds and high performance were essential for the real-time updates required by the ODrive Web GUI.
  • Ability to integrate with WASM

    Flutter makes it possible to conduct integration with the ODrive WASM module and ensures smooth interoperability and enhanced performance.
  • Cross-browser consistency

    Due to Flutter’s use of Canvas-based rendering, UI elements' coherence is remarkable. Flutter for Web leverages the underlying power of modern web browsers to deliver highly performant applications.
  • 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?
  • Exceptional Backend as a Service (BaaS) capabilities

    Firebase simplifies the development and deployment process. It’s helped us by eliminating the need to handle server management and infrastructure concerns, enabling us to focus on creating exceptional user experiences and functionalities.
  • Firestore integration

    Firebase's Firestore database could be used to store user configurations for the ODrive Web GUI, providing a central location for accessing and modifying settings across multiple devices.
  • Analytics support

    Firebase Analytics was utilized to track users' activity (after they have provided the consent) and improve the application based on this data, enabling the team to understand better how users interacted with the ODrive Web GUI and make informed decisions on feature development and optimizations.
  • Integration with Flutter

    Firebase offers a straightforward and user-friendly client library for seamless integration with 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 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

Our team developed The Web GUI, transforming robotic controllers and motors' configuring and setting up. With its intuitive and streamlined interface, users can now achieve their desired configurations with ease and simplicity.

We utilized Flutter for the Web, harnessing the power of the Flutter framework to create a web application that offers a seamless and consistent experience across different browsers.

To ensure a smooth development workflow, we established multiple test and production Firebase environments. These dedicated environments facilitated efficient testing and reliable deployment of the application.

In addition to the core functionality, our engineers implemented analytics collection using Firebase Analytics. With user consent obtained within the application, we were able to gather valuable insights and metrics, helping us better understand user behavior and preferences. This data-driven approach enables us to continuously improve the application and tailor it to the needs of our users.

  • 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

Overall, the ODrive web GUI offers an improved user experience and enhances the accessibility and functionality of ODrive motors, making them more accessible to a wider range of users.
Number of countries
113
ConFiGuration speed
x6
ConFiGuration speed
x6
ODrives configured
185
Final thoughts

Working with ODrive presented us with the exciting opportunity to collaborate with an innovative robotics company dedicated to providing high-performance motor control solutions to professionals and businesses. We are excited to see how the simplified configuration will help the robotics community worldwide to create new things.

We made the successful integration of WASM with Flutter for Web, unlocking new possibilities for enhanced functionality and seamless user experience. It gave the possibility for high-performance communication and efficient low-level integration with ODrive motors inside the browser.

The notable part of our solution on this project was the research of existing libraries to do efficient plotting of the data. As a result, we tried innovative solutions and were able to identify and improve the most performant libraries for high-performance data plotting.

In conclusion, this project showcased the power and versatility of Flutter for the robotics industry, demonstrating our commitment to excellence and customer-centricity through simplifying the process of ODrives configuration, reducing the likelihood of errors, and enhancing the overall usability and productivity for robotics professionals.

year:
2023
solid software.
cross lines
Performance Report by

Our team's productivity was analyzed by a third-party: Haystack. They found 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, Firebase

check it out
arrow icon
Metrics

Metrics

Metrics is a set of software components to collect and review software project metrics like performance, build stability, and codebase quality.

next project

arrow icon
also you can:

Select languages

Dart

Technologies

Flutter, Firebase

check it out
arrow icon
Metrics

Metrics

Metrics is a set of software components to collect and review software project metrics like performance, build stability, and codebase quality.