Case Study: CrewTracks

Introduction

CrewTracks partnered with Guru Technologies to create an all in one solution for construction companies. CrewTracks is known for its time tracking portion but is so much more than that. From time tracking to production, digital fillable documents to notes and photos, CrewTracks is the go to solution for effective construction management.
CrewTracks came to Guru to help build mobile and web apps for construction companies to use. These apps were built to allow companies to manage their field crews. Guru Technologies built the web app, the mobile apps, both Android and iOS, as well as the cloud databases and infrastructure for handling multi-tenant in one system, with high security, scalability and redundancy requirements.

The Issues

From the Client Perspective

CrewTracks is meant to serve a space where most data management and detail organization has been done on paper. Most of the critical functions of the construction industry happen “in the field”, far away from a computer and in the midst of dirt and movement, sometimes in very rural areas with no internet infrastructure. Office administrators often struggle to get timesheets and other paperwork from the field crews in a timely manner. CrewTracks helps facilitate real-time communication between the field and the office so construction companies can run their payroll and accounting accurately and manage their projects proactively.

From the Developer’s Perspective

In order to meet these complex needs for CrewTracks, we needed to manage complex data structures and relationships, and represent these relationships to the user in a straightforward and easy to use interface. We needed the mobile application to be fully functional offline for shared data, and seamlessly integrate the data when it comes back online. We also needed to handle the transition from a document and paper based information management system to a software management system.

The Development Process

Product Development Cycle

At Guru Technologies, our team maintains continuous communication with the CrewTracks product, sales, marketing, and finance teams to deeply understand and address the needs of their clients, the construction companies. We maintain a cycle of identifying the needs of construction companies in various sub-industries, and gathering feedback from them as we design and implement solutions. Our approach of identifying needs, designing, and implementing solutions was underpinned by this consistent and collaborative communication stream.
We used agile methods to make our work for CrewTracks more effective. This meant breaking down the project into smaller parts, which allowed us to be more flexible and quickly adapt to any new needs. This approach was key in developing features like document management and using GPS tracking in the app. It helped us regularly check and improve our goals and what we delivered, ensuring CrewTracks was practical and up-to-date with what construction companies need. The agile approach also made it easier to handle complex tasks, like managing custom data and creating custom forms, making sure our solutions were both creative and useful.

Continuous Integration and Deployment

Over the course of development, we’ve written automated test suites to help catch regressions, and CI pipelines to run the tests automatically and deploy the CrewTracks application. We also set up CI/CD pipelines to utilize infrastructure-on-demand for provisioning testing server resources. On the mobile side, we have established a process for distributing work-in-progress app builds to the product team in order to facilitate a tight feedback loop.
As part of our sprint cycle, we release updated versions of the CrewTracks mobile apps every two weeks. We’ve implemented a feature flagging system with LaunchDarkly that enables us to deliver completed portions of work-in-progress features and gradually roll out completed features.

Adopting New Technologies

To adapt to the evolving tech landscape and facilitate long-term maintainability, our team at Guru Technologies has upgraded the CrewTracks technology stacks across all platforms. For Android, we moved the software from Java to Kotlin (piece by piece until no Java code remained), enhancing app safety and efficiency, and integrated Google’s Compose UI for streamlined UI development. In iOS, we transitioned from Objective-C to Swift in a complete rewrite, utilizing SwiftUI for its expressive syntax and responsive layout capabilities. On the backend, we moved from CakePHP to Angular and C# / .NET, combining Angular’s dynamic single-page application framework with .NET’s scalability and security. These updates ensure that our client’s technology remains cutting-edge, efficient, and robust.

The Key Components & Features

Synchronizer (Online & Offline Capabilities)

In our mission to replace paper timesheets and other paperwork with real-time data entry, we encountered a couple of challenges: one, multiple users may be working on the same report at the same time, and two, some users may not have Internet access at their job sites. To solve these issues we designed a robust data synchronization system, including full support for offline work and a conflict resolution system that can resolve incompatibilities between different users’ input without requiring their intervention. We designed the mobile apps to automatically sync data with the server as soon as the device has an internet connection, even if the app is in the background, so that the mobile app users don’t have to remember to submit their data after leaving the jobsite and returning to an area with WiFi or cellular coverage.

The app is also built to function offline for an extended period, store and forward changes, and deal with changes coming from other offline users, as well as providing smart conflict resolution once all devices are back in sync and online, including changes from multiple sources on the same dataset.

This includes both many different kinds of data, such as standard data changes, documents, BLOB data, images, JSON data, etc. Change objects are created with point-in-time vector data in order to help the device synchronize properly when back online.

Document Management System

Recognizing the ongoing reliance on paper-based processes in construction, we engineered a sophisticated document management system within CrewTracks. This system includes a complex data structure linking resources to their respective documents, coupled with a versatile document editor accessible across all platforms, iOS, Android, and web.

Our system allows for users to add annotations to documents or fill out custom forms, which could happen multiple times per day on multiple devices or systems (including the same document).

Instead of creating a copy of a PDF file for each time it’s filled out or otherwise modified, we were able to save a significant amount of storage and bandwidth by saving the form data and annotations separately in a JSON format. This JSON is run through our synchronization system, which also allows for real-time collaboration, and even enables multiple offline users to edit the same document at the same time and get automatic conflict resolution where needed.

Timeclock

To address the distinct needs of different kinds of CrewTracks users, our team crafted various user interfaces with tailored complexity levels. For the Time Clock feature, we designed a straightforward and user-friendly interface for employees, ensuring ease of use for essential time-tracking functions. In contrast, the UI for administrators and Crew Leads, and Foremen was more comprehensive, offering advanced functionalities and detailed controls to manage and oversee timekeeping effectively. Throughout this process, our UI designs adhered to the CrewTracks theme and were developed through an iterative feedback loop with the product development team, ensuring they met both the simple requirements of employees and the intricate needs of administrative staff.

Production

An important aspect of tracking the progress on a construction project is keeping track of the number of units completed for a given work item and where the user is at in a given budget. For example, for a concrete company, they have a budgeted amount of cubic yards of dirt to be moved, and a certain quantity of concrete to be poured. For a drywall company, they have a certain amount of square footage of drywall, etc. Also important, is to check the efficiency against a project bid or estimate. For example, a crew might be budgeted to be able to pour 8 cubic yards of concrete with 16 man hours, so an efficiency metric might be 0.5 cubic yards/hour of labor. We built a sophisticated system to take construction bid and estimate data and show in real-time how a company is doing against a given bid or estimate.

GPS Features

In order to help companies prevent time clock fraud, we implemented GPS tracking features to verify that users are at the job site when they clock in or out. We also made it so that when mobile app users take pictures of the jobsite as part of their report, the app can associate the user’s current location with that photo so that the office staff has that context with the photo. We made these features optional, so each company can decide whether to enable this tracking or not.

Electronic Signatures

There is a sophisticated system to allow for signatures from field crews for confirming daily timecards, reporting on any injuries, and signing off on any necessary disclosures. These can be customized based on the needs of the companies. Custom forms can also be created with signature fields that can be added anywhere needed on given documents.

Integrations Dashboard

CrewTracks has a specialized integrations team dedicated to managing unique customer data requests and specific data presentations. Our developers at Guru Technologies collaborated closely with this team to enhance the main app with a custom dashboard, create API’s, and lots of reports and import/export controls. This addition seamlessly integrates with the tailored solutions provided by the integrations team, streamlining the process for customers to access and retrieve specific data sets.

Notifications

We implemented push notifications and email notifications in order to facilitate communication between users and help them keep track of operations. We set up a flexible system that can trigger notifications in response to a variety of events, such as clock-ins and report submissions, and route users to the appropriate page when the notification is opened. We also made it so each user can go back and see their notification history and control which notifications they receive.

Conclusion

Guru Technologies’ development of the CrewTracks apps for CrewTracks successfully addressed the complex needs of construction companies. Our focus was on creating a user-friendly interface for both web and mobile platforms, which simplified data management and improved field crew coordination. Key achievements include implementing offline data synchronization, developing a sophisticated document management system, and integrating GPS for accurate geofencing. Our approach combined continuous dialogue with the product team and agile development methods, ensuring CrewTracks not only met current requirements but was adaptable for future updates. Technological advancements were a hallmark of this project, with transitions to Kotlin for Android and Swift for iOS, and from CakePHP to C# / .NET, and the establishment of continuous integration and deployment pipelines. CrewTracks represents Guru Technologies’ commitment to delivering practical, efficient, and scalable solutions, demonstrating our ability to convert complex challenges into functional and user-centric applications in the construction sector.