Autotran Application - Logistics App Rewrite and Maintenance
Client: Cassens Transport
Cassens Transport is a major trucking company specializing in the transportation of vehicles from factory assembly lines to dealerships or between dealerships. Their Autotran Application is a critical logistics tool that optimizes dispatch, load management, and vehicle tracking, ensuring efficient operations and maximizing profitability for both Cassens and their drivers.
The Problem
The Autotran app, while functional, faced several challenges:
- • Technical Debt: The app was built on an outdated Java codebase, making it difficult to maintain and scale.
- • Performance Issues: Bugs related to GPS tracking, photo uploads, and digital signatures caused delays and frustration for drivers.
- • Poor Offline Functionality: Drivers often lost inspection data and photos due to unreliable uploads in areas with poor connectivity.
- • Outdated UI: The app’s interface was clunky and unintuitive, leading to a subpar user experience.
- • Inefficient Communication: The chat feature was unreliable, hindering real-time communication between drivers and dispatchers.
Where I Came In
As part of the SDG Systems team, I was tasked with maintaining, enhancing, and eventually rewriting the Autotran app. My role involved:
- • Fixing critical bugs to ensure smooth operations.
- • Modernizing the app’s tech stack to reduce technical debt.
- • Improving usability and performance for drivers and dispatchers.
The Solution
I led a complete rewrite of the Autotran app, focusing on modernizing the tech stack, improving performance, and enhancing the user experience. Key components of the solution included:
- • Modern Tech Stack: Refactored the codebase from Java to Kotlin, improving maintainability and reducing bugs. Rebuilt the UI using Jetpack Compose, significantly reducing code complexity and improving flexibility for future updates. Redesigned the interface following Material 3 design principles, creating a modern, intuitive experience.
- • Offline Functionality: Implemented Room Database for local storage, allowing drivers to save inspection details, photos, and reports offline and sync them later. Used WorkManager for reliable background data syncing, ensuring seamless uploads even in areas with poor connectivity.
- • Performance Optimization: Integrated Glide for fast and efficient photo loading and caching. Utilized Kotlin Coroutines to handle asynchronous tasks like data syncing and photo uploads, ensuring smooth, non-blocking execution.
- • Enhanced Communication: Improved the chat feature using Firebase Cloud Messaging (FCM) for real-time communication between drivers and dispatchers.
- • Digital Signatures: Enhanced the digital signature process with secure, biometric-enabled signing tools using Jetpack.
Implementation
The implementation involved:
- • Bug Fixes and Maintenance: Fixed issues like lost EXIF data on photos, inspection data getting lost on upload, and location tracking functionality locking users out of the app. Optimized upload retry logic to prevent data loss and reduce upload times. Improved janky screens for a smoother user experience.
- • Thorough Testing: Used Mockito for creating mocks of dependencies and simulating edge cases. Applied JUnit for unit testing the business logic, ensuring robust performance and reliability.
The Outcome
The rewrite and enhancements resulted in:
- • Improved Efficiency: Drivers completed inspections and deliveries faster, thanks to a more responsive app and offline data handling.
- • Seamless Offline Workflows: Drivers could perform inspections and log activities even without internet, preventing downtime.
- • Better Accountability: Real-time tracking, photo documentation, and digital signatures reduced disputes and improved accountability.
- • Streamlined Communication: The chat feature ensured continuous coordination between drivers and dispatchers.
- • Reliability and Performance: The app functioned smoothly and efficiently, even in challenging conditions.
Key Achievements
- • Successfully modernized the Autotran app, reducing technical debt and improving maintainability.
- • Delivered a user-friendly, high-performance solution that met Cassens’ evolving needs.
- • Demonstrated strong problem-solving skills by addressing critical bugs and optimizing workflows.
Technologies Used
- • Languages: Kotlin, Java.
- • Frameworks: Jetpack Compose, Room Database, WorkManager, Glide, Firebase Cloud Messaging.
- • Tools: Mockito, JUnit.
- • Skills: Mobile app development, UI/UX design, performance optimization, bug fixing, and testing.
Problem-Solution Scenarios
- • Lost EXIF Data on Photos: Photos uploaded during inspections were losing EXIF data, making it difficult to track timestamps and locations. I implemented a custom photo processing pipeline using Glide and Kotlin Coroutines to preserve EXIF data during uploads. This ensured accurate documentation of inspection details.
- • Inspection Data Getting Lost on Upload: Inspection data was frequently lost during uploads due to poor connectivity and unreliable retry logic. I integrated Room Database for offline storage and used WorkManager to handle background syncing. This allowed drivers to save data locally and sync it automatically when connectivity was restored.
- • Location Tracking Functionality Locking Users Out: The GPS tracking feature sometimes locked users out of the app, disrupting workflows. I refactored the GPS tracking module using Kotlin Coroutines to handle location updates asynchronously, preventing UI freezes and improving reliability.
- • Janky Screens: The app’s UI was slow and unresponsive, leading to a poor user experience. I rebuilt the UI using Jetpack Compose, which significantly improved performance and responsiveness. The new design followed Material 3 principles, creating a modern and intuitive interface.


