Skip to content
This repository was archived by the owner on May 10, 2023. It is now read-only.
/ SafeMe Public archive

SafeMe is an natural disaster relief app that notifies users of disasters near them. It helps to check user statuses and inform the government of their status

Notifications You must be signed in to change notification settings

joeyt4n/SafeMe

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

583 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SafeMe

About this Project

SafeMe is a natural disaster relief mobile application that aims to provide real-time updates on individuals dealing with disasters such as: earthquakes, cyclones, floods, volcanoes, droughts and forest fires.

This application is targeted towards two types of users – Public Users and Government. Each user type has access to different features that best suit their usage needs. For Public Users, they are able to:

  • Receive a danger notification when in the risk of being in danger
  • View family members safety through a status dashboard
  • Acknowledge safety status notification or prompts
  • Accept volunteer request for volunteer event – Event to get volunteers to help out after a natural disaster

For Government, they are able to:

  • View the list of possible casualties in affected disaster areas
  • Access GPS coordinates of affected individuals that have not acknowledged safety status notifications
  • Create and manage volunteer event

Assumptions

The following functions are assumed to be completed:

User Functions
Public Users 1. Create and join a family – A group of people that can track each other in real-time
2. Announce to family when no longer in risk of being in danger
3. Receive alerts of other family members when they are in the risk of being in danger
Government 1. Announce the list of safe individuals
Both 1. Registration and login

Other Assumptions:

  • A user can only be affected by 1 disaster at any given time
  • Disaster & Volunteer events have a start and end datetimes
  • For the purpose of demonstration, users are in one family group already.

Built With

Major Frameworks / Libraries

This section lists any major frameworks/libraries used to develop SafeMe.

HTML

Bootstrap

CSS

Vue.js

Python

Flask

Others:

APIs

This section lists any APIs used to develop SafeMe.

APIs Description
Kong API Gateway Middleware to hide the microservices' endpoints and route the client to services
Google Maps API Helps the government visualise location of affected casualties
GDACS API Retrieve disaster information from GDACS

Getting Started

To get a local copy up and running follow these simple steps.

Prerequisites

To get started and use the Send Email Microservice, you will need to follow the instructions on creating a Google App Password.

You will also need the following software installed in your machine.

Visual Studio Code

Docker

MySQL

Postman (for testing)

Python

Others:

  • WAMP / MAMP / XAMPP
  • Websocket: flask_sock (websocket used to disseminate notifications and alerts to users, allowing for 2-way communication between the client and the server)

Installation and Implementation

Instructions on how to install and run this respository onto your local machine.

  1. Clone the repo
    git clone https://github.com/jeezusplays/SafeMe
  2. Start WAMP and Docker
  1. In a CMD Window, change directory to the repository and start the docker containers
    docker-compose up
  2. Open interface html files and test out the application!
    // Government Interface
    countryDisaster.html
    volunteerGov.html
    casualtyList.html
    
    // Public User Interface
    disastersNearMe.html
    myFamily.html
    volunteerPublic.html

To stop and remove all containers, networks, volumes, and images created by up

docker-compose down

Demo and Usage

Demo

A demo of the application can be found here.

UI

Simple run down of each HTML page.

User Interface Description
Government countryDisaster.html Real-time list of global disasters
volunteerGov.html Create and manage volunteer event
casualtyList.html View the list of affected users in a disaster area
Public User disastersNearMe.html Receive a danger notification when in the risk of being in danger and acknowledge safety status notification
myFamily.html View family members safety through a status dashboard
volunteerPublic.html Volunteer for volunteer event

Requests

Simple run down of each request.

Request Method Description Link
User GET Get single user information http://localhost:5001/user/family/1
Location GET Get all user locations http://localhost:5001/location/all
GET Get user location http://localhost:5001/location/1
Disaster GET Get all disasters http://localhost:5002/disaster
Volunteer GET Get all volunteers for a disaster http://localhost:5003/volunteer
Volunteer Event GET Get all volunteer events http://localhost:5003/volunteer/event
POST Create a volunteer event http://localhost:5003/volunteer/event/create
Affected GET Get all affected users/casualties http://localhost:5002/affected

Contributions

If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement". Don't forget to give the project a star! Thanks again!

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b /newFeature)
  3. Commit your Changes (git commit -m 'Add some newFeature')
  4. Push to the Branch (git push origin /newFeature)
  5. Open a Pull Request

Contact

Feel free to contact and connect!

Name Main Role Github LinkedIn
Tan Zuyi Joey Project Manager jeezusplays LinkedIn
Samuel Chung Software Engineer samchung95 LinkedIn
Liow Hong Xiang Software Engineer hx240 LinkedIn
Anthony Ho UX Designer anthonyckho LinkedIn

About

SafeMe is an natural disaster relief app that notifies users of disasters near them. It helps to check user statuses and inform the government of their status

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •