Skip to content

Perify (Peril Notify) an apps for showing disaster location throughout Indonesia.

Notifications You must be signed in to change notification settings

GG-3-0-Mobile-Engineering/ME15-Perify-GG3MEGP0543-CalvinSaputra

Repository files navigation

Perify

Perify (Peril Notify) is an Android app that provides information regarding a list of disasters that happen throughout Indonesia.

Features

  • 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.

Architecture

  • MVVM + Clean Architecture

Tech Stack

Core

  • Kotlin
  • Kotlin Coroutines
  • Kotlin Flow
  • Hilt (DI)

Networking

  • Retrofit
  • GSON

Local Persistence

  • Shared Preferences
  • Room DB

How to Build

  • 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!

Demo

Perify.apk

Application Demo / Youtube

API Reference

  • 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.

Test Cases

Unit Test

As for now, the Unit Test is not yet implemented

UI Test

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).

Roadmap

  • Enhance the UI part
  • Implement more testing case (especially Unit Test)
  • Add more features

FAQ

Question 1

Q: Does the notification alert for water level works?

A: It works but it's still a dummy data, because the endpoint always return an empty object.

Question 2

Q: Why the maps is not showing when i build the apps?

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.

Question 3

Q: Why there's no Unit Test, even though the commit indicate it?

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".

Feedback

If you have any feedback, please reach out to my email at [email protected].

About

Perify (Peril Notify) an apps for showing disaster location throughout Indonesia.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages