worklog logo

Worklog

Time Tracking for software professionals

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

Summary

Worklog 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.

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:

Worldwide
Worldwide

technologies:

Flutter, Supabase, Webflow
Flutter, Supabase, Webflow

year:

2023
2023
image grid

In Media

Request

main task

Create MVP of a time-tracking web platform that could be quickly extended to a mobile or desktop application based on user feedback.

The key features of the tool should be fast logging, easy navigation, and wide opportunities for teamwork. 
UI and UX should be beautiful, minimalistic, and friendly.

The platform has to be made specifically for software engineers.

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 task was to create a time-tracking tool for software professionals with fast logging and a user-friendly design. 

We needed to create a web application, UI, and landing page to test the idea. During the development process, our beta users asked us about the desktop application with hotkey support.
Besides, we helped with all the marketing and branding side of the project: visual identity, and social media.

Our main technical components:
Flutter
Supabase
Why Supabase?
  • Backend-as-a-service

    BaaS ensure access not only to a database via API but also to provide user authentication, file storage, automated testing, and analytics. The huge advantage of the BaaS is that scaling is implemented by the platform.
  • Relational Database

    It allows to structure of data so later engineers can have access to build functionality on top of it by using aggregations and creating complex queries for reporting.
  • Auth

    Supabase Auth gives the ability to easily manage your users with email logins, and magic links and third-party logins. Supabase supports many different authentication methods, which may also be very useful, since there is a large variety of software engineering-oriented authentication providers: GitHub, GitLab, and Bitbucket.
  • 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

Using Flutter for the Web, we developed a web application that supports the four most popular browsers: Chrome, Safari, Edge, and Firefox. Based on feedback from beta users, we created a desktop app that is identical to the web version, built swiftly with Flutter. This MacOS application can be activated by hotkeys and doesn't distract from work, providing a seamless experience for users.

Supabase environments were created for smooth development, testing, and production. Engineers configured tests using Supabase CLI and ran them via pgTAP. Row Level Security rules have been thoroughly written to protect the data. The suite of tests was created to make sure that RLS rules work as intended.

Firebase hosting was used to securely serve the Worklog app to the users.

The UI design was created using Figma and user questionnaires helped us to shape the perfect UX. Our team created 426 prototypes of the Worklog's elements.

As for marketing, we collected user reviews, made a SWOT analysis, and did competitor research. The results of this work were a landing page, feedback boards, and presence on the most relevant social and PR platforms.

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

Currently, Worklog is in its beta stage. With very low effort we received the first subscribers.
hours logged:
34000
Number of Projects:
58
number of work logs:
30000
subscribers:
142
Final thoughts

With Worklog we had a chance to make an MVP and quickly scale it to a full-fledged product with dozens of users and thousands of working hours tracked on the platform.

Flutter showed perfect cross-browser compatibility. Also, it has great potential and flexibility to extend to other platforms if needed. 

Supabase is a new and solid platform that proved to be a great tool for creating scalable backend. While Firebase provides more tools in general, having a relational database in Supabase is beneficial and preferable for a large group of projects including Worklog. 

We have implemented convenient reporting with a powerful filter feature and the ability to export to PDF and Excel.

Thanks to marketing activities, we got to know our users more and find out what features they are interested in. Worklog’s UI design received great feedback and appealed by its superb visual solutions. 

The outcome of our effort is a platform that showed a new perspective on how software professionals can log their work time to stay more effective and receive help from mentors.

year:
2023
solid software.
cross lines
comment photo
Taha Tesser, Flutter Contributor

"I can see the hard work you’re doing for Worklog.AI to make it best possible time tracker for individuals & teams. Keep it up, excited for the future updates."

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.