The Waste Management System is a comprehensive solution for optimizing waste collection and monitoring. It integrates real-time monitoring using IoT devices and provides a mobile application for drivers to easily access bin status and navigate routes. The system ensures efficient waste collection, with features like route optimization and seamless communication between IoT devices, the backend, and the mobile app.
The Android app is developed using Kotlin and Jetpack Compose, allowing drivers to receive real-time updates on waste bin statuses and navigate efficiently to the bins that require attention.
- Kotlin: Primary programming language
- Jetpack Compose: Modern UI toolkit for native Android UI
- Coroutines: For asynchronous programming
- Flow: For reactive programming
- Hilt: For dependency injection
- Retrofit: For API communication
- Google Maps SDK: For maps and navigation
- MVVM Architecture: For clean separation of concerns
# Clone the Android repository
git clone [email protected]:Irfan-Ullah-cs/Waste-Mangement-System.git
cd Waste-Mangement-System/android
# Open in Android Studio and build
./gradlew assembleDebug
To set up the repository for development, follow these steps:
-
Clone the repository from GitHub:
git clone [email protected]:bronglil/Waste-Mangement-app.git cd Waste-Mangement-System/android
-
Open the Android project in Android Studio:
- If you haven't already, download Android Studio
- Once installed, open Android Studio and select "Open an Existing Project"
- Navigate to the
android
folder and open it
-
Install dependencies and build the project:
./gradlew assembleDebug
The APK will be located in the
app/build/outputs/apk/debug/
directory -
Add Values :
-
Go to AndroidManifest.xml file and add API key.
-
Go to RetrofitInstance and add your Ip address.
baseUrl("http://{{YOUR_IP_ADDRESS}}:8080/")
-
Go to res/xml/network_security_config.xml file an update Ip address.
- Android Studio Latest version
- Kotlin Plugin Latest version (included in Android Studio)
- Android SDK API Level 21 or higher
- Download through Android Studio SDK Manager
- CPU: 4+ cores
- RAM: 8GB minimum
- Storage: 10GB free space
- OS: Windows/Linux/macOS
- Git Download Git
- Postman (API Testing) Download Postman
# Clean project
./gradlew clean
# Build debug APK
./gradlew assembleDebug
# Build release APK
./gradlew assembleRelease
# Run tests
./gradlew test
# Check dependencies
./gradlew dependencies
# Install debug variant
./gradlew installDebug
# Generate Hilt components
./gradlew kaptDebugKotlin
# Build and run specific variant
./gradlew runDebug
- Driver Dashboard: Drivers can access the bin status through the mobile app
- Navigation: Features include map functionality to locate bins and navigate routes
- Efficient Waste Collection: Drivers are notified of full bins and can plan optimized routes
- Integrated with Backend: The app communicates with the backend to fetch the real-time data
- GET
/api/bins
- Fetch all bins - GET
/api/bins/{id}
- Get specific bin details - PUT
/api/bins/{id}
- Update bin status - GET
/api/routes/shortest
- Get optimized collection route
# Clean and rebuild
./gradlew clean build
- File > Invalidate Caches / Restart
- Sync Project with Gradle Files
- Ensure minimum SDK version (API 21) is met
- Check device/emulator settings
For technical support or questions:
- Create an issue on GitHub
This project is licensed under the MIT License. See the LICENSE file for details.