Skip to content

Instantly share code, notes, and snippets.

@vibhavagarwal5
Last active August 15, 2018 12:42
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 vibhavagarwal5/573654e8bb48a7a5a994e7f557a5e286 to your computer and use it in GitHub Desktop.
Save vibhavagarwal5/573654e8bb48a7a5a994e7f557a5e286 to your computer and use it in GitHub Desktop.
GSOC18 report CrowdAlert-Mobile

CrowdAlert-Mobile app

Crowd Alert is a crowdsourced hybrid mobile application built using React Native for reporting and viewing incidents around the globe. The app helps the user to report an incident conveniently without any hassle and all the incidents reported across the globe can be viewed on Google maps.

Link to project’s repository

https://gitlab.com/aossie/CrowdAlert-Mobile

Link to mobile app

https://drive.google.com/open?id=1USlsw5NkQ-5Ud3c0nkOLunT2NXO74b9O

Goals

Achieved

  • Shifted the old Expo based CrowdAlert to native code React Native app.
  • Added Redux architecture for state management.
  • Added more signup options like Google login and email based login.
  • Added Push Notifications for the user when near an incident.
  • Added incident sharing option.
  • Clustering of incidents upon zooming.
  • Added nearby emergency places like hospitals and police stations.
  • Added CI pipeline for automating the APK build process for Android while development.
  • Edit feature for the profile and user submitted incidents.
  • Settings option for modifying the emergency radius, notifications timeout etc.
  • Modal for filtering incidents on the map.
  • Global feed to show all the visible incidents from around the globe.
  • Improved the UI/UX of the app in terms of styling and other things.
  • Added an app tour consisting of introductory slides to guide the first time user.

Pending

  • Unit tests for the app using Jest.
  • Bug fixes in iOS app related to getting location and various styling issues.

Contributions

  • Added Redux architecture and integrated it with all the screens. Used Redux-Promise to add offline support, login storage and quick retrieval of things.
  • Contributed in shifting the Map screens and Login screens from the old Expo based CrowdAlert.
  • Added custom relocation button with animations for the map marker while navigating to different locations.
  • Setup CI pipeline for automating the testing and APK building for android. Made my own custom docker image over motorica-org/gitlab-ci-android.
  • Added Profile screen which shows the user information along with his submitted incidents.
  • Added Delete and Edit feature for user submitted incidents.
  • Added logout feature.
  • Added Edit feature for the user profile where he/she can change the photo or change other details and add emergency contacts etc.
  • Used react-native-google-places-autocomplete as the search bar in the maps screen for navigating to a custom location.
    Due to lack of a clear button in the search bar, I had to copy the implementation locally in src/components/googleSearchBar.js and make the necessary changes for adding the clear button.
  • Designed the new app flow with Drawer navigation, showing the Profile screen(Dashboard) first and navigating accordingly using the side drawer.
  • Added global feed using react-native-timeline-listview for all the incidents from around the globe.
  • Added local Push Notifications using react-native-push-notification on the map screen to alert the user when he/she is near some incident.
  • Refactored the code for getting nearby emergency places and integrated redux with it.
  • Contributed in clustering of the markers on the map and fixed the related bugs.
  • Designed the screens and styled them using a common color scheme and taking inspirations from Behance. Used native-base for styling the components.
  • Fixed the iOS dependencies and made the iOS app working. Due to lack of time, could not fix all the bugs and the styling issues.
  • Fixed all major bugs reported in the android apk and made the app production ready.
  • Added the app icon and changed various incident marker icons.
  • Added introductory slides as app tour for the first time users showing the main features of the app and a bit of how to use those.

Other Contributions

Future Scope of the project

  • The CI pipeline can be made more efficient and automated in terms of building and deploying the app on Play Store.
  • Unit Testing via Jest and Integration Testing (cavy).
  • More features can be added in the future say adding comments on the incidents, spam detection on them etc.
  • The CrowdAlert-Web and Mobile should be more closely integrated in the future.

Merge Requests

Most of the Merge Requests are a combined effort of Rishabh and mine.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment