Trustworthy Time Tracking for Remote Work: Introducing an Open-Source Solution
Since the COVID-19 pandemic, more and more people are working remotely. It has become a popular choice for organizations and individuals. But there's one big problem: trust. Companies can't always be sure if their remote employees are working or just slacking off. To solve this, many use time tracker software. However, the problem is that employees don't trust these tools. They worry about their privacy and how their data is being used. That's why I came up with an idea for a project: creating an open-source time tracker.
As a freelancer who works remotely, I faced the same trust issues. Existing time trackers just didn't cut it. They were closed-source and made me worried about how my data was being handled. Most of them ran silently in the background, taking screenshots and tracking my keystrokes. This raised privacy concerns and made me even more skeptical. It was clear that we needed a more transparent approach to time tracking.
That's where my project "Scout" comes in. I developed an open-source time tracker using Appwrite Cloud for Appwrite Cloud and Hashnode Hackathon, that fosters transparency and trust. By making it open-source, both companies and employees can have a say in how it's built and ensure that it's trustworthy. With open-source software, anyone can look at the code to make sure there are no hidden features compromising privacy or misusing data.
- Aadarsha Dhakal - @aadarshadhakalg
Description of Project
Scout is a desktop application that currently supports the GNU/Linux operating system. To access Scout, users can easily authenticate using their phone number, and the process is quick and hassle-free.
With Scout, users can send or receive contracts. A contract represents the details of a specific job or position, whether it's a project in freelancing or a corporate job role. Before starting work on a contract, the receiver must accept it. If the receiver is not interested in working on the project, they can simply decline the contract.
Likewise, the sender of the contract has the ability to either end or hold the contract if needed.
When it comes to tracking work hours, employees can clock in to start recording their time using the tracker feature. To ensure that the client is actively working on the project, the tracker will randomly capture screenshots. Once the employee has finished working, they can clock out. They can have multiple such work sessions, and all the records of these sessions are securely saved in the Appwrite cloud database. Both the contract employer and the employee can see the work diary of the contract. The work diary contains the list of the work sessions and the screenshots captured. The screenshots taken during work sessions are stored in the Appwrite cloud storage for easy access and reference.
Scout uses Flutter for the frontend and Appwrite Cloud for the backend. It utilizes Appwrite's phone authentication for secure login and its database and storage features to store user data and screenshots
Appwrite's amazing support for Flutter through the package made it an excellent choice for Scout.
Challenges I Faced
During the development of this app, I encountered a few challenges. The primary hurdle was the lack of an existing package in Flutter that could capture desktop screenshots in Linux. To overcome this, I had to develop my own plugin. You can find a blog post detailing the process and development of the plugin.
I spent a significant portion of my time and effort in building this plugin. As a result, the remaining time for project completion was limited, and I started to worry about meeting the deadline.
However, this is where Appwrite proved invaluable. With its comprehensive backend features, I was able to leverage its capabilities and complete the project on time, despite the limited timeframe.