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
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.
This section lists any major frameworks/libraries used to develop SafeMe.
Others:
This section lists any APIs used to develop SafeMe.
| APIs | Description |
|---|---|
| Middleware to hide the microservices' endpoints and route the client to services | |
| Helps the government visualise location of affected casualties | |
| GDACS API | Retrieve disaster information from GDACS |
To get a local copy up and running follow these simple steps.
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.
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)
Instructions on how to install and run this respository onto your local machine.
- Clone the repo
git clone https://github.com/jeezusplays/SafeMe
- Start WAMP and Docker
- In a CMD Window, change directory to the repository and start the docker containers
docker-compose up
- Open interface
htmlfiles 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 downA demo of the application can be found here.
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 |
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 |
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!
- Fork the Project
- Create your Feature Branch (
git checkout -b /newFeature) - Commit your Changes (
git commit -m 'Add some newFeature') - Push to the Branch (
git push origin /newFeature) - Open a Pull Request
Feel free to contact and connect!
| Name | Main Role | Github | ||
|---|---|---|---|---|
| Tan Zuyi Joey | Project Manager | |||
| Samuel Chung | Software Engineer | |||
| Liow Hong Xiang | Software Engineer | |||
| Anthony Ho | UX Designer |