Blog

Thoughts from my daily grind

FreePMU - Project Management & Time Tracker

Posted by Ziyan Junaideen |Published: 20 September 2021 |Category: Products
Default Upload |

Thanks to the COVID19 pandemic, the workforce learned that it didn't have to always commute to work. Technological advancements and widely available broadband internet connections have made it possible for the masses to work from home. One key component in WFH is the ability to track time. If necessary, an employee has to have the ability to stop work and attend to his family needs without billing their client or employer.

The ideal tool for this task is a time tracking utility with supportive features to give clients and employers confidence that they were billed for work done—ideally something like the UpWork (formerly oDesk) time tracker.

Features

  • A desktop time tracking software supporting Windows, macOS, and Linux
  • Tracking keyboard activity
  • Tracking mouse/trackpad activity
  • Random screenshots ( taken at intervals of about 10 minutes)
  • Stop tracking when there is no activity for some time
  • A web app for employers/clients to view details
  • Auto-generate invoices (valid for freelancers)
  • Review period (for the client to contest work done)
  • Accept payments from PayPal or Stripe

Background

I am a freelance software engineer. I use UpWork to find clients in need of my speciality, which lies in web application development and accompanying mobile applications. About four years ago, my account was temporarily suspended by UpWork for less than 6 hours following a minor policy violation (including my Skype handle and Phone number in my updated bio details).

Fearing the worst could happen and result in a long-term suspension, I decided to work on my website, adding project management and billing features to mitigate the risk. Fortunately, I never got to use the feature.

The COVID19 pandemic pushed people to work from home. I noticed that employees were suspicious that their employees were keeping to their commitments. Many I talked to showed interest in having a time tracking tool as described above.

Project Structure

The initial project expectations were to develop the following components.

  • Web application & API based on Ruby on Rails
  • PDF generation utility backed by Puppeteer - the Node JS library connected through gRPC
  • Fluter based mobile application (iOS and Android)
  • Swift UI based macOS - desktop tracker
  • C# dotNET based Windows - desktop tracker

Update: Recently, I discovered that Trackabi app is developed using Electron (Node JS). The existence of the Trackabi app means I could use the cross-platform Node JS framework to build the tracker for macOS, Linux and Windows. At most, I will have to implement C++ modules to interface with the operating systems APIs. I am yet to explore this avenue.

Current Status & Future

At the moment, I have the web apps features baked into my website. It uses manual time entry, which is not ideal. The backend uses an admin theme, and its developers are not interested to see their intellectual property ending up as part of an open-source project without compensation.

The current outline for the project is as follows:

  • Implement a proof-of-concept desktop app using Electron
  • Separate the code from my Rails 6 website to a SaaS project
  • Develop an API for the desktop tracker to interface with
  • Finalize the desktop trackers
  • Migrate all code towards open-source friendly tools
  • Use the SaaS app to create a stand-alone Rails web application

Timeline

Due to my current workload, progress on the project is slow. The customisation started in April 2020 and was intended to take less than a year. However, time constraints and complications related to the pandemic has pushed the project from my priority list.

Contribution

If you are interested in contributing to an open-source project and have skills that may come in handy I would love to hear from you. The skillsets that would come in handy are as follows:

  • Logo design (I already have few designs in Affinity Designer in my iPad)
  • Client-Side - Admin theme
  • Ruby on Rails
  • Node JS
  • Electron
Tags
About the Author

Ziyan Junaideen -

Ziyan is an expert Ruby on Rails web developer with 8 years of experience specializing in SaaS applications. He spends his free time he writes blogs, drawing on his iPad, shoots photos.

Comments