Inspiration

The idea for Monday Minutes was inspired by this feature request thread which outlined time tracking issues monday.com users were having. From experiencing my own time tracking issues throughout my career, I found the idea of a feature-rich, monday.com time tracker app a way to help any type of team using monday.com.

The main time tracking features monday.com users requested were:

  • Simultaneous logging by multiple users on a single item
  • Exclusive time tracking so only one user can track a single item at a time
  • A fluid, faster UI to start, stop, and edit time entries easier
  • A simple, yet highly customizable way to view and export your teams time entries

All of these time tracking features were implemented in Monday Minutes while maintaining a clean and simple user interface. I hope Monday Minutes to be the time tracking solution monday.com users were looking for.

What it does

Monday Minutes bridges the gap between monday.com's item-centric, row-column structure and the desired functionality to track time by item per user.

Monday Minutes' core features allow a user to:

Track their own time on any monday.com item they have access too

The Monday Minutes Timer Bar provides a simple way for users to stop and start time entries without having to click through boards or scroll through groups.

View, edit, and delete their time entries all in one place

User time entries are organized by item per day within a responsive user interface designed to make finding time entries easier. Days and item groups are easily collapsable to quickly edit or delete any time entry.

Analyze their teams time by using customizable time entry filters

Users can filter their team's time entries by users, groups, boards, items, and date ranges while dynamically generating pie and bar charts to visualize their time spent.

Export time entries

Any group of time entries filtered using Monday Minutes can be exported to excel to include in team reports and meetings.

How I built it

Monday Minutes was built using express.js and mongoose. At its core, Monday Minutes is a client-side app that stores and reads time entries with the linked user and item ids. This structure provided a powerful framework to analyze, sort, and filter data not supported natively by monday.com.

Bootstrap4 and jQuery were used to manipulate and display the Monday Minutes' UI. All bootstrap elements were stylized by hand to match monday.com's style guide to present a seamless user interface between Monday Minutes and monday.com. A few third-party javascript apps were used for more complex features such as calendar selections, graphing, and list filtering.

A pre-production version of the app has been deployed for this monday.com challenge using heroku and mongodb-atlas.

Challenges I ran into

Documentation around Monday.com's app development flow

It took a while for me to get my app to a stage where I could start focusing on its time tracking functionality. I specifically spent a lot of time on auth flow because I couldn't find a monday app auth flow example, I could only find an integration auth flow example. After some time and research, I was able to build the base of my monday.com app and start working on timing capabilities.

Complexity issues with Monday.com's GraphQL API

There were multiple occasions where I would make an API request for certain data but be rejected based on the complexity being too high. Some of these rejections were confusing. For example, I could not request all groups with subitems but I could request all items with parent groups. When I ran into a complexity issue, I had to find a working request to get the desired data and then manipulate the data into what I originally wanted, instead of requesting it directly.

Toggl API Request Limiting

Being a huge Toggl fanatic with its nice UI and time tracking capabilities, I was excited to find out there was a Toggl API. Monday Minutes was initially developed to be a bridge between Monday.com and Toggl to support many features monday.com integrations can not. Why reinvent the time tracking wheel when Toggl has already done it for me? However, after building the core of my Monday Minutes server on Toggl, I found my app being bottlenecked to a 1 second request rate, with the future possibility of them throttling the requests further. After weighing the pros and cons, I abandoned ship with using Toggl since it would be too much of a hassle to manage the 1 second request rates, Toggl login credentials, and the differences between free and paid Toggl accounts.

Accomplishments that I'm proud of

I am overall proud of how Monday Minutes came out. I am a back-end developer for a startup, so my front-end experience was limited when starting this challenge. The blockades overcome and hours spent developing this feature-rich app were well worth it for the final product.

What I learned

I learned a lot about monday.com's work flow and app development. Even though I didn't end up using Toggl's API in my final application, learning how to use it shaped how I designed my server API and database schema. Overall a learned more about javascript libraries I've never worked with like chart.js, daterangepicker.js and list.js.

What's next for Monday Minutes

Monday Minutes has a long future ahead alongside monday.com. There are still a few feature requests I did not have time to implement like notes on each time entry or duration logging support. In addition, I am sure once people start using the app, there will be plenty more feature requests as well. If this app gets to the marketplace, I have a plan to move away from MongoDB and towards Monday's storage capabilities.

Built With

Share this project:

Updates