Perify (Peril Notify) is an Android app that provides information regarding a list of disasters that happen throughout Indonesia.
- Showing list of disaster in span of last two days.
- Filtering disaster based on Province.
- Filtering disaster based on disaster type.
- Notification alert about water level (Read more in FAQ).
- Dark mode.
- Offline - Online support.
- MVVM + Clean Architecture
- Kotlin
- Kotlin Coroutines
- Kotlin Flow
- Hilt (DI)
- Retrofit
- GSON
- Shared Preferences
- Room DB
- Clone the repository
- Open with Android Studio
- Make sure you have already created a Google Maps API Key in order to run the maps feature (if not, please make one beforehand from this link)
- With the created Google Maps API Key, head to the local.properties on the project file and insert the key in the following manner
MAPS_API_KEY=YourAPIKey
- Sync the project and you are good to go!
- Get Disaster Report
GET /reports
Parameter | Type | Description |
---|---|---|
disaster |
string |
Optional - Filtering based on type of disaster. |
timeperiod |
int |
Optional - Filtering list of disaster by certain period if time. |
admin |
string |
Optional - Filtering based on Province. |
As for now, the Unit Test is not yet implemented
Below are the test cases that've been implemented on Perify. For details on UI Test please check this video.
- Load data and show it onto the RecyclerView (PASSED).
- Load disaster data based on Disaster Type (PASSED).
- Load disaster data based on Province (PASSED).
- Load disaster data based on Disaster Type and Province (PASSED).
- Show message when the data is empty (PASSED).
- Navigating to SettingsActivity to enable Dark mode (PASSED).
- Check whether the Dark Mode is active (PASSED).
- Enhance the UI part
- Implement more testing case (especially Unit Test)
- Add more features
A: It works but it's still a dummy data, because the endpoint always return an empty object.
A: Please create your own Google Maps API Key then head to the local.properties in the project file. Create a variable called "MAPS_API_KEY" and fill it with your created API Key.
A: The Unit Test is not yet be created, i make a mistake on the commit name. It should be "Adding UI Test" instead of "Adding Unit Test".
If you have any feedback, please reach out to my email at [email protected].