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 APIRetrofit, Room, Proto DataStoreCoroutines, 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

Ready to bring your app idea to life?

Contact Me
ABDERRAHMANE
SALMI
Pisa, Italy