PICO SulTeng (Pusat Informasi COVID-19 Sulawesi Tengah/COVID-19 Information Center of Central Sulawesi) is an android-based application developed to facilitate the people of Central Sulawesi in obtaining information about the current situation of COVID-19 in Central Sulawesi.
This is the English version of the README.md file, press the badge to read the Bahasa Indonesia version.
Landing page PICO
Click the image below to visit the landing page of PICO SulTeng App.
Download APK
Here are some links for downloading PICO
PICO installation and usage guide
Data Source
This application uses data from PICO API. To view the PICO API documentation, please click here.
Minimum OS version
- Android Lolipop (5.0)
To import into Android Studio :
- Use the latest version of Android Studio - version 3.6.3
- RAM : 4 GB
Some features that have been developed:
- Get notifications about COVID-19 situation
- The latest update on the COVID-19 situation in Central Sulawesi (Positive, Recovered, Death, Negative).
- Information on the number of ODP and PDP in Central Sulawesi.
- Table of distribution of COVID-19 cases by Regency/City in Central Sulawesi Province.
- Map of the spread of COVID-19 cases per Regency / City in Central Sulawesi Province.
- Important telephone/phone numbers about COVID-19 with tap to call feature.
- Tap on the telephone number to call the hospital (Tap to call).
- Tap on an email to send an email to the hospital (Tap to Email).
- Hospital directions button.
- Tap on the telephone number to call (Tap to call).
- Do a COVID-19 self-examination with a virtual assistant from Detexi App. Detexi is a local startup in Central Sulawesi which is engaged in health and is currently working with the government of Central Sulawesi, IDI of Central Sulawesi, and PDUI of Central Sulawesi.
- Statistics of COVID-19 cases in Indonesia
- Map of the spread of COVID-19 cases by Province in Indonesia.
- PICO supports Indonesian and English.
To-do List :
- Push notification
- Notification of the current situation of COVID-19 in Indonesia
- Notification of the current situation of COVID-19 in Central Sulawesi
- Notify user if he/she is/had been in the red zone
- Notify user he/she has interacted with a COVID-19 patient
- Notify user if there is a case of COVID-19 nearby
- In-App push messaging
- Infographics around COVID-19 (Prevention, treatment, etc.)
- COVID-19 self-examination
- Data on the current situation of COVID-19 in Central Sulawesi
- Regency/City
- ODP cases
- Under Observation cases
- Completed Observation cases
- PDP cases
- Under Supervision cases
- Completed Supervision cases
- Positive cases
- Negative cases
- Death cases
- Recovered cases
- Latest update
- Daily report of COVID-19 cases in Central Sulawesi
- Table of distribution of COVID-19 cases in Central Sulawesi
- Map of the spread of COVID-19 in Central Sulawesi
- Statistical data on the COVID-19 situation in Indonesia
- Province
- Positive cases
- Recovered cases
- Death cases
- Cumulative number of COVID-19 Positive cases
- Cumulative number of Recovered from COVID-19 cases
- Cumulative number of Death caused by COVID-19
- Daily report of COVID-19 cases in Indonesia.
- Map of the spread of COVID-19 in Indonesia
- Data of COVID-19 referral hospital in Central Sulawesi
- Hospital name
- Hospital address
- Hospital phone number
- Hospital email
- COVID-19 Task Force post data
- The location of the post
- The name of the person in charge
- Phone number
- User data
- Registration
- Sign in
- Name
- Age
- Location
- Status COVID-19 (ODP, OTG, PDP, etc.)
- Phone number
This application was built using MVVM design pattern. Some of the libraries needed include:
- Recycler View - version 1.1.0
- Butter Knife - version 10.1.0
- RxJava - version 2.1.1
- Spin Kit - version 1.4.0
- Glide - version 4.11.0
- Google Material - version 1.1.0
- AnyChart - version 1.1.2
- MPAndroidChart - version 3.1.0
- Gravity SnapHelper -version 2.2.0
- Scrolling Pager Indicator - version 1.0.6
- TableView - version 0.8.9
- Retrofit - version 2.7.1
- OneSignal Androdi SDK - version 3.13.1
- Androidx Room - version 2.2.5
- Android Lifecycle - version 1.1.1
- Google Maps - version 17.0.0
Clone this repository to your PC/laptop
Import it into Android Studio
After it was imported into Android Studio, rebuild the project
Add Google API Key from the Google Cloud Console to the file main/res/values/strings.xml :
<stringname="API_KEY"translatable="false">Put Your Google API Key Here</string>
If you want to change the GeoJson layer on the COVID-19 spread map at MainActivity.java, please replace the file map.json with your GeoJson file
To change the column labels in the table, you can change the file /res/values/strings.xml for the English version and /res/values-in-rID/strings.xml for the Indonesian version :
<stringname="district">District/City</string> <stringname="odp">ODP</string> <stringname="completed_odp">Completed ODP</string> <stringname="in_odp">In ODP</string> <stringname="pdp">PDP</string> <stringname="completed_pdp">Completed PDP</string> <stringname="in_pdp">In PDP</string> <stringname="positive">Positive</string> <stringname="negative">Negative</string> <stringname="dead">Death</string> <stringname="recovered">Recovered</string>
/res/values-in-rID/strings.xml
<stringname="district">Kabupaten/Kota</string> <stringname="odp">ODP</string> <stringname="completed_odp">Selesai ODP</string> <stringname="in_odp">Sisa ODP</string> <stringname="pdp">PDP</string> <stringname="completed_pdp">Selesai PDP</string> <stringname="in_pdp">Sisa PDP</string> <stringname="positive">Positif</string> <stringname="negative">Negatif</string> <stringname="dead">Meninggal</string> <stringname="recovered">Sembuh</string>
To change text alignment or table column order, you can do it on MyTableViewModel.java and ColumnHeaderModel.java :
publicclassMyTableViewModel { .... privateList<ColumnHeaderModel> createColumnHeaderModelList() { List<ColumnHeaderModel> list = newArrayList<>(); // Create Column Headerslist.add(newColumnHeaderModel(res.getString(R.string.district))); list.add(newColumnHeaderModel(res.getString(R.string.odp))); list.add(newColumnHeaderModel(res.getString(R.string.completed_odp))); list.add(newColumnHeaderModel(res.getString(R.string.in_odp))); list.add(newColumnHeaderModel(res.getString(R.string.pdp))); list.add(newColumnHeaderModel(res.getString(R.string.completed_pdp))); list.add(newColumnHeaderModel(res.getString(R.string.in_pdp))); list.add(newColumnHeaderModel(res.getString(R.string.positive))); list.add(newColumnHeaderModel(res.getString(R.string.negative))); list.add(newColumnHeaderModel(res.getString(R.string.dead))); list.add(newColumnHeaderModel(res.getString(R.string.recovered))); returnlist; } privateList<List<CellModel>> createCellModelList(List<District> districtList) { List<List<CellModel>> lists = newArrayList<>(); for (inti = 0; i < districtList.size(); i++) { Districtdistrict = districtList.get(i); List<CellModel> list = newArrayList<>(); list.add(newCellModel("1-" + i, district.getName())); list.add(newCellModel("2-" + i, district.getODP())); list.add(newCellModel("3-" + i, district.getFinishedODP())); list.add(newCellModel("4-" + i, district.getInODP())); list.add(newCellModel("5-" + i, district.getPDP())); list.add(newCellModel("6-" + i, district.getFinishedPDP())); list.add(newCellModel("7-" + i, district.getInPDP())); list.add(newCellModel("8-" + i, district.getPositive())); list.add(newCellModel("9-" + i, district.getNegative())); list.add(newCellModel("10-" + i, district.getDeath())); list.add(newCellModel("11-" + i, district.getRecovered())); lists.add(list); } returnlists; } .... }
publicclassColumnHeaderModel { .... staticfinalint[] COLUMN_TEXT_ALIGNS = { //city nameGravity.START, //Rata Kiri//pdpGravity.CENTER, //Rata Tengah//Finish PDPGravity.CENTER, //In PDPGravity.CENTER, //odpGravity.CENTER, //Finish ODPGravity.CENTER, //In ODPGravity.CENTER, //positiveGravity.CENTER, //negativeGravity.CENTER, //deathGravity.CENTER, //recoveredGravity.CENTER, }; .... }
Base URL API can be changed in the NetworkClient.java file and endpoint in the Api.java file. PICO uses Retrofit to make HTTP requests :
publicclassNetworkClient { .... privatestaticfinalStringBASE_URL_API = "Put Your API Base Url Here"; .... }
publicinterfaceApi { @GET("query") Call<ResponseBody> getCovidStats( @QueryMapMap<String, Object> queryMap ); @GET("kabupaten") Call<ResponseBody> getAllCity(); @GET("rumahsakit") Call<ResponseBody> getAllHospital(); @GET("provinsi") Call<ResponseBody> getAllProvince(); @GET("posko") Call<ResponseBody> getAllPosts(); }
This project has been released with the latest version 3.0.1 and will continue to be developed.
MIT License.
Copyright (c) 2020 Fajrian Aidil Pratama
Created by @ryanaidilp_ - feel free to contact me!

















