Skip to content

A set of android applications that work with an edge server over MQTT. The edge infrastructure analyzes the generated IoT sensor-data to detect hazardous events and warn all civilians in the area.

License

Notifications You must be signed in to change notification settings

john-fotis/Civil-Protection

Repository files navigation

Civil Protection Platform based on IoT applications

Table of Contents
  1. About The Project
  2. Built With
  3. Getting Started
  4. Project Demonstration
  5. Contribution
  6. License
  7. Contact

About the project:

This project consists of 3 applications that cooperate with each other in order to detect danger events and warn the civilians about natural disasters and more. The backbone of this platform is the Edge Server. The other two applications are the Client Application and the Sensors Application. The server is responsible for gathering all the environment information from active sensors and process it rapidly in order to detect possible dangers. All known danger events must logged to a database and be reported to the clients in time.

Built with:

Getting Started:

There are 2 ways you can try the android applications out. You can either download our APK files or download the source code and proceed with a clean installation.

Prerequisites:

For the server you must create an SQL connection to the server with username set as root and password set as password. Then you need to create a database scheme with the name cp_registry in this connection instance. These credentials are purely for demonstration purposes and can be changed through application.properties file. It is not recommended you store you Database credentials in public and non encrypted files. You also need to have an instance of Mosquitto Broker or any other MQTT broker running on you machine on port 1883. Finally Gradle is necessary to build the project.

How to run:

Server

  • In the project root folder open a cmd and type type gradle build. Then to start the server do one of the following:
    • Type java -jar ./build/libs/server-1.0.0.jar
    • Type gradle bootRun
  • Alternatively you can build and run the entire project with IntelliJ.

After the server has started, the frontend API will be available at http://localhost:8080/

Android applications

  • Install these APKs in your device or emulator (Need permission for installation from 3rd party applications)
  • Alternatively you can build and run the projects with Android Studio (Need to enable USB debugging from developer options)

Project Demonstration:

Here you can see the main features of the different applications.

Android client application:

  • Main windows

AndroidApp

  • Danger alert scenarios

AndroidAlerts

IoT sensor application:

  • Main windows

IoTApp

Server Application:

  • Server frontend, normal operation


  • Server frontend, danger event detection


  • Server frontend, double danger event detection

Database Log:

  • Sample of logged events

DatabaseLog

Contribution:

katerinagiann

License:

This project is licensed under the MIT License

Contact:

📧 giannisfotis@gmail.com