TaskBuddy is a demo Android application developed as part of a coding assignment.
It connects to a remote API, fetches task data, supports offline usage, provides filtering
capabilities, and integrates QR code scanning.
- Authentication: Logs in using Basic Auth and uses Bearer token for subsequent requests.
- Remote + Offline Sync: Fetches tasks from the BauBuddy API and caches them locally using Room DB.
- Task List View: Displays tasks including
task,title,description, and a colored view based oncolorCode. - Search Functionality: Search bar in the toolbar that can filter by any property of the data model.
- QR Code Scanning: Allows scanning QR codes and uses the scanned content to populate the search query.
- Data Refresh:
- Pull-to-refresh using
SwipeRefreshLayout - Periodic background sync every 60 minutes using
WorkManager
- Pull-to-refresh using
- Kotlin + MVVM Architecture
- Room Database
- Retrofit
- OkHttp + Interceptors
- WorkManager
- Hilt (DI)
- Coroutines + Flow
- ZXing (QR Code Scanner)
- SwipeRefreshLayout
- Lottie Animations
1. Task list sorted by task |
2. Filtered task list after a search |
| 3. QR Code scanner | 4. No results screen |
- Clone the repository.
- Open the project in Android Studio.
- Sync Gradle and install dependencies.
- Run the app on an emulator or device.
- Use the following credentials for login:
username:365password:1
This app was developed for the purpose of evaluating Android development skills, architecture practices, and feature implementation under a well-defined task.
Happy Coding! 👨💻✨