Skip to content

Instantly share code, notes, and snippets.

@RishabhMaheshwary
Last active March 10, 2019 10:38
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save RishabhMaheshwary/41c2698dbc19037c0e100952ebd7ea5a to your computer and use it in GitHub Desktop.
Save RishabhMaheshwary/41c2698dbc19037c0e100952ebd7ea5a to your computer and use it in GitHub Desktop.
Rishabh Maheshwary GSOC final report

Rishabh Maheshwary | Crowd Alert Mobile

Crowd Alert is a cross platform app which displays and reports worldwide incidents across the globe. It helps a user to report an incident conveniently without any hassle. The calamities across the globe can be marked and viewed on google maps.

Vision

Inevitably, incidents happen everywhere at any time. But “Right information delivered at right time” will help in rescuing lives and preventing disasters. We developed such a system which will work in emergency, and will record & report emergency in real time.

Features of the app

Architecture
The app is built in react-native, which enables it to run both on android and ios.

Firebase in the backend
Firebase is a real-time database that you can communicate with directly from the client. The moment you save your JSON data to Firebase, these changes are immediately sent to all clients, of web and mobile, who requested them. Our app uses firebase authentication services to login/signup users and its real-time database services for storing all the incident and user details.

Different login options
Apart from simple email signup we have also added facebook and google login support to make logging in easy for users.

User profile
It includes all the personal information related to user like name, phone,email, profile photo, etc . Users can edit this information.

Global feed
It shows all the incidents in our app in the form of a list. The most recent incident is on the top of the list.

Google maps
It shows incident markers and emergency places(police stations and hospitals) on the map. User can tap on the incident marker to view the details of that incident. By tapping on the emergency places marker one can navigate to that place. The map screen looks crowded because of all the above markers, to avoid that we have added clustering of markers on map screen.

Adding Incidents
We have implemented a form to submit images and description of the incidents.
The incident than gets marked on the map based on the current location of the user. User can edit the details of incident later also.

Emergency places
Our app shows a list of hospitals and police stations near the user . By tapping on it google maps app will pop up by which they can navigate to those places.

Push notification
The user will get notified if a new incident happens near the user. By tapping on the notification the crowd alert app will pop up and that particular incident screen will be displayed.

Setting options
The user can adjust the notification settings like within what radius in kms. a user wants to get notified, what should be the time interval between successive notifications, user can turn the notifications off completely, etc.

Sharing
A user can share the incident online to other social networking platforms. Our app supports deep linking like we find on facebook and instagram. Basically by clicking on the shared url the crowd alert app will pop up and that particular incident screen will be displayed.

Navigating to nearby incidents
By tapping on the navigate option on incident screen a user can navigate to a nearby incident to help the people involved in emergency.

My Contribution

Integrated Firebase to app | Commits
Added all login options | Commits
Integrated google maps | Commits
Added prop-types to all props* | Commits
Form for adding incidents | Commits
Filtering incidents on map screen | Commits
Added search bar on the map screen | Commits
Incident screen | Commits
Emergency places near a user location |Commits
Added share functionality | Commits
Clustering of incidents on map* | Commits
Improved UI/UX of the mobile app | Commits
Testing | Commits
Documentation* | Commits

*(tasks done by me and vibhav)

Todos

  • Testing of the app.
  • Adding more media like videos of incidents and compress them to avoid memory leaks.
  • Comments on incidents.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment