Wasali • Delivery App
Overview
Wasali is a native Android delivery platform composed of two Kotlin apps: one for customers and another for delivery partners. The system streamlines the process of ordering and delivering shopping items. Customers submit a shopping list, which is automatically assigned to the nearest delivery partner. The partner purchases and delivers the items, and receives payment in cash.
I was the main Android developer on the Wasali project, but also worked closely with another developer on the delivery partner app. I also collaborated with the backend team to implement new features and integrate RESTful APIs using Retrofit. The apps follow the MVVM architecture and utilize modern Android tools such as Dagger-Hilt for dependency injection, Kotlin Coroutines for asynchronous programming, and the Google Maps API for geolocation. One of the core features I worked on is a background location tracking service in the delivery partner app, enabling real-time tracking of delivery agents to ensure efficient order assignment.
This project was a valuable experience in which I learned a wide range of advanced Android skills, including implementing real-time location tracking in the background, scheduling and executing background tasks using Alarm Manager, and waking the app from a paused or locked state to notify delivery partners of new orders.
Technologies Used
◆ Platform: Android
◆ Programming Language: Kotlin
◆ Architecture: MVVM
◆ Backend: REST API
◆ Authentication: Custom OTP system (Icosnet API)
◆ Android Stack: Google Maps API, Places API, Retrofit, Room, Proto DataStore, Coroutines, Dagger Hilt, Jetpack Navigation, Paging 3, Coil
◆ Notifications: Firebase Cloud Messaging
◆ Completion Date: May 2024
Key Features
◆ User authentication with phone-based OTP and Trusted Devices system to reduce authentication costs◆ Dynamic shopping list UI for customers to easily create and edit their orders◆ Background location tracking service for delivery partners, active even when the app is minimized◆ Wake-lock notifications that alert partners about new orders even when the screen is off◆ Order reminder system using Alarm Manager to notify partners about unhandled orders◆ Real-time notifications for status updates, new orders, and reminders
◆ Partner wallet screen showing current earnings, payable amount, and transaction history◆ Token refresh system to maintain secure sessions with Retrofit Authenticator◆ In-app language switching allowing users to change the app language instantly
◆ Firebase Crashlytics for error reporting and stability monitoring
Link to Project
Explore the final product on Play Store by clicking here.
Screenshots
![]() |
| Authentication |
![]() |
| Homepage |
![]() |
| New Order |
![]() |
| Order Details |
![]() |
| In-App Language Settings |
![]() |
| Delivery Partner - New Order |
![]() |
| Delivery Partner - Wallet |






