In the last year, the instances of cases of the Zika virus have exploded, and unfortunately the demographic that is the worst affected is pregnant women and their unborn children. Zika has been linked to an increase in the rate of the birth defect known as microcephaly - a very small head and brain size.
In developing nations with large populations it is quite challenging for governments/medical authorities/non-profit organizations to deploy assistance to populations afflicted with the Zika virus. There
is was also a lack of a database which holds information regarding occurences of the disease. OpenTrckr's motivation is to resolve this problem.
Opentrckr provides live access to data regarding user reported instances of the disease, stagnant water bodies and location of medical camps - crucial information to both victims and organizations alike.
With real time data visualizations rendered using the awesome CartoDB API.
Users are able to zoom in and out and keep track of the following:
- Cases of Zika occurences - thereby warning pregnant women and other vulnerable populations of where the disease is prevalent.
- Stagnant water bodies - that could potentially breed mosquitoes. This feature is useful for government organizations to conveniently deploy resources to spray these water bodies early and efficiently.
- Location of medical facilities - non-profit organizations and governmental organizations that are providing access to victims afflicted with Zika. Mitigates the effort and risk of searching for resources and thereby being exposed to mosquitoes.
OpenTrckr makes use of Google Maps' API to render a user's current coordinates. If current coordinates are not correct (which is unlikely), the user is allowed to place a crosshair wherever they'd like. Checks have been installed to make sure that a user cannot add more than one tag in a 24 hour period in a 2 mile radius. This check was installed to make sure that a user cannot spam the app with false tags (making our data more authentic).
OpenTrckr demonstrates its ultimate usefulness with its ability to alert agencies that need to reach out to areas in need of help, but the lack of staff and comprehensive data on Zika victims prevents them from efficiently reaching victims on time. Geo-tags are present on the map in clusters, and this makes rendering a single set of coordinates (to alert an agency with) problematic. An example can of a cluster is demonstrated below.
OpenTrckr makes use of a data clustering algorithm known as Density-based spatial clustering of applications with noise (DBSCAN) to narrow down on a single set of coordinates that best represents the cluster. A visual representation of this clustering algorithm is represented below.
Based on the set of coordinates rendered by the clustering algorithm, OpenTrckr tweets this set of coordinates (latitude and logitude) to a relevant organization which can deploy help to the affected region accordingly. For now, we will only be tweeting our own Twitter Handle to prevent any undue panic!
OpenTrckr is a Node.js/Express app that uses Jade as its templating engine. CartoDB is used for data visualizations (using PostgreSQL queries). Our geolocation data is provided by Google Maps, Tweets are tweeted using the Twitter API. Login authentications are done using the Facebook/Gmail/Instagram/Github/LinkedIn/Twitter APIs.
Our awesome team consists of 3 current University of Richmond undergrads, Alexandru Pana, Michael Dombrowski, Shiv Toolsidass (Myself :) ) and Otega Owho-Ovuakporie of Lincoln University, PA. We came to HopHacks, consumed far too much redbull/junk food and coded the weekend away - a wonderful experience overall! We hope that you find OpenTrckr useful and that our app will benefit people. We plan on extending the functionality of the app in the future - more to come!
Create Commons License. Feel free to fork this repo and improve upon our existing codebase - that pull request is a click (and a code review wink) away!