Indonesian Government data shows that 82.8% of survey respondents stated that this Covid-19 pandemic has severely affected their economy. The government then intervened by providing Bantuan Sosial (BanSos) to the community. However, the reality shows that the distribution system is still not good, with data that is not transparent and the BanSos distribution of BanSos is not right on target. Here, we come up with BanSos Detector, a project to make an android application that can be used to monitor the distribution of the Bantuan Sosial. BanSos Detector will also implement machine learning to determine the appropriate recipients of Bantuan Sosial.
Android
Machine Learning
Cloud
- A1321655-Fikri Maulana
- A1321661-Rizkhan Hadi
- M0080829-Daniel Suranta Sitepu
- M0080833-Muhammad Naufal Arkan Rafii
- C1321652-Anjelin Andri
- C1321657-Vienne Anggelica Kurnia
- Clone this repository and run on Android Studio, or download the APK
- Open the application, sign up or login with Google.
- To request Bantuan Sosial, please fill the form.
- See the result.
- If you are accepted, the app will show the delivery tracker.
- Admin can use admin app to update the status delivery.
- Clone this repository
- If you just want to test the code, then you can open the code and run all the cell through Jupyter Notebook/Google Colab
- If you want to deploy the model, run the model in the SavedModel folder using TFServe
- For the deployed version, you can access and hit the model API via your External IP Address
- The POST request API should send user's age, monthly income, dependents, occupation, and the acceptance status in a JSON format.
- The response would be user's probability to accept Bantuan Sosial (response<0.5 is rejected, response>=0.5 is accepted)
-
Create new project in android studio
-
Add this libraries to your project
- Retrofit
- Coroutine
- Firebase
- Kotlin injection
- Navigation Component
-
Add this plugin
- id 'com.google.gms.google-services'
- id 'androidx.navigation.safeargs.kotlin'
-
If you want to use navigation component with safe args, add this to build.gradle(project)
- classpath "androidx.navigation:navigation-safe-args-gradle-plugin:{latest_version}"
-
Firebase required if you want to login with google account
-
Create Activity or Fragment, and design ui in res/layout/
-
Working on repository, create model response,remote data source, api service, NetworkBoundResource and project repository
-
implement koin, create module file and class MyApplication
-
Working on navigation
-
Build the application
- Import dataset from spreadsheet URL as csv
- Split the data into training, validation, and test data
- Convert the data to input pipeline using tf.data
- Extract feature columns
- Create the architecture of the model
- Train, validate, and test the model
- Export the model to TFX format
- Deploy and test the deployed model
-
On Compute Engine
- Create VPS
-
On VPS (ML)
- Download Machine Learning model from github
- Install Tensorflow Model Server
- Create Rest-API from Machine Learning model
-
On VSCode
- Create Rest API on Lumen PHP
- Push to github
-
On VPS (API)
- Pull data from github to Deploy Rest API on VPS
- Download lumen
- Install lumen
- Download composer
- Configure lumen
- Configure nginx for lumen web servers
- Configure lumen endpoint for android
- Android Developers
- Dicoding: Menjadi Android Developer Expert
- Dicoding: Belajar Android Jetpack Pro
- Firebase: Google Sign-In for Android
- Koin
- Retrofit
- TensorFlow: Data and Deployment-Tensorflow Datasets Week 2
- TensorFlow: Data and Deployment-Tensorflow Serving Week 1
- 10 Minutes to Deploying a Deep Learning Model on Google Cloud Platform
- Google Cloud Platform Custom Model Upload , REST API Inference and Model Version Monitoring
- Cloud Engineering with Imre - YouTube