CINXE.COM
Disaster Watch | Devpost
<!DOCTYPE html> <!--[if lt IE 7]> <html class="no-js lt-ie9 lt-ie8 lt-ie7 lte-ie9"> <![endif]--> <!--[if IE 7]> <html class="no-js lt-ie9 lt-ie8 lte-ie9"> <![endif]--> <!--[if IE 8]> <html class="no-js lt-ie9 lte-ie9"> <![endif]--> <!--[if IE 9]> <html class="no-js lte-ie9"> <![endif]--> <!--[if gt IE 9]><!--> <html lang="en" class="no-js" xmlns:fb="http://ogp.me/ns/fb#" xmlns:fb="http://www.facebook.com/2008/fbml" xmlns:og="http://opengraphprotocol.org/schema/" itemscope="itemscope" itemtype="http://schema.org/SoftwareApplication"> <!--<![endif]--> <head prefix="og: http://ogp.me/ns# fb: http://ogp.me/ns/fb# challengepost: http://ogp.me/ns/fb/challengepost#"> <!-- Google Tag Manager --> <script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-WCFRZ3V');</script> <!-- End Google Tag Manager --> <script type="text/javascript"> window.awsWafCookieDomainList = ['devpost.com'] </script> <script type="text/javascript" src="https://1723d2289425.us-east-1.sdk.awswaf.com/1723d2289425/7d12beff1256/challenge.js" defer></script> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> <script>window.NREUM||(NREUM={});NREUM.info={"beacon":"bam.nr-data.net","errorBeacon":"bam.nr-data.net","licenseKey":"f9082fa052","applicationID":"7341974","transactionName":"IQpdERFeXFVVRhpbCw8AHBYMV0ROUUZQQEsRDVwS","queueTime":1,"applicationTime":186,"agent":""}</script> <script>(window.NREUM||(NREUM={})).init={ajax:{deny_list:["bam.nr-data.net"]}};(window.NREUM||(NREUM={})).loader_config={licenseKey:"f9082fa052",applicationID:"7341974"};;/*! For license information please see nr-loader-rum-1.274.0.min.js.LICENSE.txt */ (()=>{var e,t,r={8122:(e,t,r)=>{"use strict";r.d(t,{a:()=>i});var n=r(944);function i(e,t){try{if(!e||"object"!=typeof e)return(0,n.R)(3);if(!t||"object"!=typeof t)return(0,n.R)(4);const r=Object.create(Object.getPrototypeOf(t),Object.getOwnPropertyDescriptors(t)),o=0===Object.keys(r).length?e:r;for(let a in o)if(void 0!==e[a])try{if(null===e[a]){r[a]=null;continue}Array.isArray(e[a])&&Array.isArray(t[a])?r[a]=Array.from(new Set([...e[a],...t[a]])):"object"==typeof e[a]&&"object"==typeof t[a]?r[a]=i(e[a],t[a]):r[a]=e[a]}catch(e){(0,n.R)(1,e)}return r}catch(e){(0,n.R)(2,e)}}},2555:(e,t,r)=>{"use strict";r.d(t,{Vp:()=>c,fn:()=>s,x1:()=>u});var n=r(384),i=r(8122);const o={beacon:n.NT.beacon,errorBeacon:n.NT.errorBeacon,licenseKey:void 0,applicationID:void 0,sa:void 0,queueTime:void 0,applicationTime:void 0,ttGuid:void 0,user:void 0,account:void 0,product:void 0,extra:void 0,jsAttributes:{},userAttributes:void 0,atts:void 0,transactionName:void 0,tNamePlain:void 0},a={};function s(e){try{const t=c(e);return!!t.licenseKey&&!!t.errorBeacon&&!!t.applicationID}catch(e){return!1}}function c(e){if(!e)throw new Error("All info objects require an agent identifier!");if(!a[e])throw new Error("Info for ".concat(e," was never set"));return a[e]}function u(e,t){if(!e)throw new Error("All info objects require an agent identifier!");a[e]=(0,i.a)(t,o);const r=(0,n.nY)(e);r&&(r.info=a[e])}},9417:(e,t,r)=>{"use strict";r.d(t,{D0:()=>g,gD:()=>h,xN:()=>p});var n=r(993);const i=e=>{if(!e||"string"!=typeof e)return!1;try{document.createDocumentFragment().querySelector(e)}catch{return!1}return!0};var o=r(2614),a=r(944),s=r(384),c=r(8122);const u="[data-nr-mask]",d=()=>{const e={mask_selector:"*",block_selector:"[data-nr-block]",mask_input_options:{color:!1,date:!1,"datetime-local":!1,email:!1,month:!1,number:!1,range:!1,search:!1,tel:!1,text:!1,time:!1,url:!1,week:!1,textarea:!1,select:!1,password:!0}};return{ajax:{deny_list:void 0,block_internal:!0,enabled:!0,harvestTimeSeconds:10,autoStart:!0},distributed_tracing:{enabled:void 0,exclude_newrelic_header:void 0,cors_use_newrelic_header:void 0,cors_use_tracecontext_headers:void 0,allowed_origins:void 0},feature_flags:[],generic_events:{enabled:!0,harvestTimeSeconds:30,autoStart:!0},harvest:{tooManyRequestsDelay:60},jserrors:{enabled:!0,harvestTimeSeconds:10,autoStart:!0},logging:{enabled:!0,harvestTimeSeconds:10,autoStart:!0,level:n.p_.INFO},metrics:{enabled:!0,autoStart:!0},obfuscate:void 0,page_action:{enabled:!0},page_view_event:{enabled:!0,autoStart:!0},page_view_timing:{enabled:!0,harvestTimeSeconds:30,autoStart:!0},performance:{capture_marks:!1,capture_measures:!1},privacy:{cookies_enabled:!0},proxy:{assets:void 0,beacon:void 0},session:{expiresMs:o.wk,inactiveMs:o.BB},session_replay:{autoStart:!0,enabled:!1,harvestTimeSeconds:60,preload:!1,sampling_rate:10,error_sampling_rate:100,collect_fonts:!1,inline_images:!1,fix_stylesheets:!0,mask_all_inputs:!0,get mask_text_selector(){return e.mask_selector},set mask_text_selector(t){i(t)?e.mask_selector="".concat(t,",").concat(u):""===t||null===t?e.mask_selector=u:(0,a.R)(5,t)},get block_class(){return"nr-block"},get ignore_class(){return"nr-ignore"},get mask_text_class(){return"nr-mask"},get block_selector(){return e.block_selector},set block_selector(t){i(t)?e.block_selector+=",".concat(t):""!==t&&(0,a.R)(6,t)},get mask_input_options(){return e.mask_input_options},set mask_input_options(t){t&&"object"==typeof t?e.mask_input_options={...t,password:!0}:(0,a.R)(7,t)}},session_trace:{enabled:!0,harvestTimeSeconds:10,autoStart:!0},soft_navigations:{enabled:!0,harvestTimeSeconds:10,autoStart:!0},spa:{enabled:!0,harvestTimeSeconds:10,autoStart:!0},ssl:void 0,user_actions:{enabled:!0}}},l={},f="All configuration objects require an agent identifier!";function g(e){if(!e)throw new Error(f);if(!l[e])throw new Error("Configuration for ".concat(e," was never set"));return l[e]}function p(e,t){if(!e)throw new Error(f);l[e]=(0,c.a)(t,d());const r=(0,s.nY)(e);r&&(r.init=l[e])}function h(e,t){if(!e)throw new Error(f);var r=g(e);if(r){for(var n=t.split("."),i=0;i<n.length-1;i++)if("object"!=typeof(r=r[n[i]]))return;r=r[n[n.length-1]]}return r}},3371:(e,t,r)=>{"use strict";r.d(t,{V:()=>f,f:()=>l});var n=r(8122),i=r(384),o=r(6154),a=r(9324);let s=0;const c={buildEnv:a.F3,distMethod:a.Xs,version:a.xv,originTime:o.WN},u={customTransaction:void 0,disabled:!1,isolatedBacklog:!1,loaderType:void 0,maxBytes:3e4,onerror:void 0,ptid:void 0,releaseIds:{},appMetadata:{},session:void 0,denyList:void 0,timeKeeper:void 0,obfuscator:void 0},d={};function l(e){if(!e)throw new Error("All runtime objects require an agent identifier!");if(!d[e])throw new Error("Runtime for ".concat(e," was never set"));return d[e]}function f(e,t){if(!e)throw new Error("All runtime objects require an agent identifier!");d[e]={...(0,n.a)(t,u),...c},Object.hasOwnProperty.call(d[e],"harvestCount")||Object.defineProperty(d[e],"harvestCount",{get:()=>++s});const r=(0,i.nY)(e);r&&(r.runtime=d[e])}},9324:(e,t,r)=>{"use strict";r.d(t,{F3:()=>i,Xs:()=>o,xv:()=>n});const n="1.274.0",i="PROD",o="CDN"},6154:(e,t,r)=>{"use strict";r.d(t,{OF:()=>c,RI:()=>i,WN:()=>d,bv:()=>o,gm:()=>a,mw:()=>s,sb:()=>u});var n=r(1863);const i="undefined"!=typeof window&&!!window.document,o="undefined"!=typeof WorkerGlobalScope&&("undefined"!=typeof self&&self instanceof WorkerGlobalScope&&self.navigator instanceof WorkerNavigator||"undefined"!=typeof globalThis&&globalThis instanceof WorkerGlobalScope&&globalThis.navigator instanceof WorkerNavigator),a=i?window:"undefined"!=typeof WorkerGlobalScope&&("undefined"!=typeof self&&self instanceof WorkerGlobalScope&&self||"undefined"!=typeof globalThis&&globalThis instanceof WorkerGlobalScope&&globalThis),s=Boolean("hidden"===a?.document?.visibilityState),c=/iPad|iPhone|iPod/.test(a.navigator?.userAgent),u=c&&"undefined"==typeof SharedWorker,d=((()=>{const e=a.navigator?.userAgent?.match(/Firefox[/\s](\d+\.\d+)/);Array.isArray(e)&&e.length>=2&&e[1]})(),Date.now()-(0,n.t)())},1687:(e,t,r)=>{"use strict";r.d(t,{Ak:()=>c,Ze:()=>l,x3:()=>u});var n=r(7836),i=r(3606),o=r(860),a=r(2646);const s={};function c(e,t){const r={staged:!1,priority:o.P3[t]||0};d(e),s[e].get(t)||s[e].set(t,r)}function u(e,t){e&&s[e]&&(s[e].get(t)&&s[e].delete(t),g(e,t,!1),s[e].size&&f(e))}function d(e){if(!e)throw new Error("agentIdentifier required");s[e]||(s[e]=new Map)}function l(e="",t="feature",r=!1){if(d(e),!e||!s[e].get(t)||r)return g(e,t);s[e].get(t).staged=!0,f(e)}function f(e){const t=Array.from(s[e]);t.every((([e,t])=>t.staged))&&(t.sort(((e,t)=>e[1].priority-t[1].priority)),t.forEach((([t])=>{s[e].delete(t),g(e,t)})))}function g(e,t,r=!0){const o=e?n.ee.get(e):n.ee,s=i.i.handlers;if(!o.aborted&&o.backlog&&s){if(r){const e=o.backlog[t],r=s[t];if(r){for(let t=0;e&&t<e.length;++t)p(e[t],r);Object.entries(r).forEach((([e,t])=>{Object.values(t||{}).forEach((t=>{t[0]?.on&&t[0]?.context()instanceof a.y&&t[0].on(e,t[1])}))}))}}o.isolatedBacklog||delete s[t],o.backlog[t]=null,o.emit("drain-"+t,[])}}function p(e,t){var r=e[1];Object.values(t[r]||{}).forEach((t=>{var r=e[0];if(t[0]===r){var n=t[1],i=e[3],o=e[2];n.apply(i,o)}}))}},7836:(e,t,r)=>{"use strict";r.d(t,{P:()=>c,ee:()=>u});var n=r(384),i=r(8990),o=r(3371),a=r(2646),s=r(5607);const c="nr@context:".concat(s.W),u=function e(t,r){var n={},s={},d={},l=!1;try{l=16===r.length&&(0,o.f)(r).isolatedBacklog}catch(e){}var f={on:p,addEventListener:p,removeEventListener:function(e,t){var r=n[e];if(!r)return;for(var i=0;i<r.length;i++)r[i]===t&&r.splice(i,1)},emit:function(e,r,n,i,o){!1!==o&&(o=!0);if(u.aborted&&!i)return;t&&o&&t.emit(e,r,n);for(var a=g(n),c=h(e),d=c.length,l=0;l<d;l++)c[l].apply(a,r);var p=m()[s[e]];p&&p.push([f,e,r,a]);return a},get:v,listeners:h,context:g,buffer:function(e,t){const r=m();if(t=t||"feature",f.aborted)return;Object.entries(e||{}).forEach((([e,n])=>{s[n]=t,t in r||(r[t]=[])}))},abort:function(){f._aborted=!0,Object.keys(f.backlog).forEach((e=>{delete f.backlog[e]}))},isBuffering:function(e){return!!m()[s[e]]},debugId:r,backlog:l?{}:t&&"object"==typeof t.backlog?t.backlog:{},isolatedBacklog:l};return Object.defineProperty(f,"aborted",{get:()=>{let e=f._aborted||!1;return e||(t&&(e=t.aborted),e)}}),f;function g(e){return e&&e instanceof a.y?e:e?(0,i.I)(e,c,(()=>new a.y(c))):new a.y(c)}function p(e,t){n[e]=h(e).concat(t)}function h(e){return n[e]||[]}function v(t){return d[t]=d[t]||e(f,t)}function m(){return f.backlog}}(void 0,"globalEE"),d=(0,n.Zm)();d.ee||(d.ee=u)},2646:(e,t,r)=>{"use strict";r.d(t,{y:()=>n});class n{constructor(e){this.contextId=e}}},9908:(e,t,r)=>{"use strict";r.d(t,{d:()=>n,p:()=>i});var n=r(7836).ee.get("handle");function i(e,t,r,i,o){o?(o.buffer([e],i),o.emit(e,t,r)):(n.buffer([e],i),n.emit(e,t,r))}},3606:(e,t,r)=>{"use strict";r.d(t,{i:()=>o});var n=r(9908);o.on=a;var i=o.handlers={};function o(e,t,r,o){a(o||n.d,i,e,t,r)}function a(e,t,r,i,o){o||(o="feature"),e||(e=n.d);var a=t[o]=t[o]||{};(a[r]=a[r]||[]).push([e,i])}},3878:(e,t,r)=>{"use strict";function n(e,t){return{capture:e,passive:!1,signal:t}}function i(e,t,r=!1,i){window.addEventListener(e,t,n(r,i))}function o(e,t,r=!1,i){document.addEventListener(e,t,n(r,i))}r.d(t,{DD:()=>o,jT:()=>n,sp:()=>i})},5607:(e,t,r)=>{"use strict";r.d(t,{W:()=>n});const n=(0,r(9566).bz)()},9566:(e,t,r)=>{"use strict";r.d(t,{LA:()=>s,bz:()=>a});var n=r(6154);const i="xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx";function o(e,t){return e?15&e[t]:16*Math.random()|0}function a(){const e=n.gm?.crypto||n.gm?.msCrypto;let t,r=0;return e&&e.getRandomValues&&(t=e.getRandomValues(new Uint8Array(30))),i.split("").map((e=>"x"===e?o(t,r++).toString(16):"y"===e?(3&o()|8).toString(16):e)).join("")}function s(e){const t=n.gm?.crypto||n.gm?.msCrypto;let r,i=0;t&&t.getRandomValues&&(r=t.getRandomValues(new Uint8Array(e)));const a=[];for(var s=0;s<e;s++)a.push(o(r,i++).toString(16));return a.join("")}},2614:(e,t,r)=>{"use strict";r.d(t,{BB:()=>a,H3:()=>n,g:()=>u,iL:()=>c,tS:()=>s,uh:()=>i,wk:()=>o});const n="NRBA",i="SESSION",o=144e5,a=18e5,s={STARTED:"session-started",PAUSE:"session-pause",RESET:"session-reset",RESUME:"session-resume",UPDATE:"session-update"},c={SAME_TAB:"same-tab",CROSS_TAB:"cross-tab"},u={OFF:0,FULL:1,ERROR:2}},1863:(e,t,r)=>{"use strict";function n(){return Math.floor(performance.now())}r.d(t,{t:()=>n})},944:(e,t,r)=>{"use strict";function n(e,t){"function"==typeof console.debug&&console.debug("New Relic Warning: https://github.com/newrelic/newrelic-browser-agent/blob/main/docs/warning-codes.md#".concat(e),t)}r.d(t,{R:()=>n})},5284:(e,t,r)=>{"use strict";r.d(t,{t:()=>c,B:()=>s});var n=r(7836),i=r(6154);const o="newrelic";const a=new Set,s={};function c(e,t){const r=n.ee.get(t);s[t]??={},e&&"object"==typeof e&&(a.has(t)||(r.emit("rumresp",[e]),s[t]=e,a.add(t),function(e={}){try{i.gm.dispatchEvent(new CustomEvent(o,{detail:e}))}catch(e){}}({loaded:!0})))}},8990:(e,t,r)=>{"use strict";r.d(t,{I:()=>i});var n=Object.prototype.hasOwnProperty;function i(e,t,r){if(n.call(e,t))return e[t];var i=r();if(Object.defineProperty&&Object.keys)try{return Object.defineProperty(e,t,{value:i,writable:!0,enumerable:!1}),i}catch(e){}return e[t]=i,i}},6389:(e,t,r)=>{"use strict";function n(e,t=500,r={}){const n=r?.leading||!1;let i;return(...r)=>{n&&void 0===i&&(e.apply(this,r),i=setTimeout((()=>{i=clearTimeout(i)}),t)),n||(clearTimeout(i),i=setTimeout((()=>{e.apply(this,r)}),t))}}function i(e){let t=!1;return(...r)=>{t||(t=!0,e.apply(this,r))}}r.d(t,{J:()=>i,s:()=>n})},5289:(e,t,r)=>{"use strict";r.d(t,{GG:()=>o,sB:()=>a});var n=r(3878);function i(){return"undefined"==typeof document||"complete"===document.readyState}function o(e,t){if(i())return e();(0,n.sp)("load",e,t)}function a(e){if(i())return e();(0,n.DD)("DOMContentLoaded",e)}},384:(e,t,r)=>{"use strict";r.d(t,{NT:()=>o,US:()=>d,Zm:()=>a,bQ:()=>c,dV:()=>s,nY:()=>u,pV:()=>l});var n=r(6154),i=r(1863);const o={beacon:"bam.nr-data.net",errorBeacon:"bam.nr-data.net"};function a(){return n.gm.NREUM||(n.gm.NREUM={}),void 0===n.gm.newrelic&&(n.gm.newrelic=n.gm.NREUM),n.gm.NREUM}function s(){let e=a();return e.o||(e.o={ST:n.gm.setTimeout,SI:n.gm.setImmediate,CT:n.gm.clearTimeout,XHR:n.gm.XMLHttpRequest,REQ:n.gm.Request,EV:n.gm.Event,PR:n.gm.Promise,MO:n.gm.MutationObserver,FETCH:n.gm.fetch,WS:n.gm.WebSocket}),e}function c(e,t){let r=a();r.initializedAgents??={},t.initializedAt={ms:(0,i.t)(),date:new Date},r.initializedAgents[e]=t}function u(e){let t=a();return t.initializedAgents?.[e]}function d(e,t){a()[e]=t}function l(){return function(){let e=a();const t=e.info||{};e.info={beacon:o.beacon,errorBeacon:o.errorBeacon,...t}}(),function(){let e=a();const t=e.init||{};e.init={...t}}(),s(),function(){let e=a();const t=e.loader_config||{};e.loader_config={...t}}(),a()}},2843:(e,t,r)=>{"use strict";r.d(t,{u:()=>i});var n=r(3878);function i(e,t=!1,r,i){(0,n.DD)("visibilitychange",(function(){if(t)return void("hidden"===document.visibilityState&&e());e(document.visibilityState)}),r,i)}},3434:(e,t,r)=>{"use strict";r.d(t,{YM:()=>c});var n=r(7836),i=r(5607);const o="nr@original:".concat(i.W);var a=Object.prototype.hasOwnProperty,s=!1;function c(e,t){return e||(e=n.ee),r.inPlace=function(e,t,n,i,o){n||(n="");const a="-"===n.charAt(0);for(let s=0;s<t.length;s++){const c=t[s],u=e[c];d(u)||(e[c]=r(u,a?c+n:n,i,c,o))}},r.flag=o,r;function r(t,r,n,s,c){return d(t)?t:(r||(r=""),nrWrapper[o]=t,function(e,t,r){if(Object.defineProperty&&Object.keys)try{return Object.keys(e).forEach((function(r){Object.defineProperty(t,r,{get:function(){return e[r]},set:function(t){return e[r]=t,t}})})),t}catch(e){u([e],r)}for(var n in e)a.call(e,n)&&(t[n]=e[n])}(t,nrWrapper,e),nrWrapper);function nrWrapper(){var o,a,d,l;try{a=this,o=[...arguments],d="function"==typeof n?n(o,a):n||{}}catch(t){u([t,"",[o,a,s],d],e)}i(r+"start",[o,a,s],d,c);try{return l=t.apply(a,o)}catch(e){throw i(r+"err",[o,a,e],d,c),e}finally{i(r+"end",[o,a,l],d,c)}}}function i(r,n,i,o){if(!s||t){var a=s;s=!0;try{e.emit(r,n,i,t,o)}catch(t){u([t,r,n,i],e)}s=a}}}function u(e,t){t||(t=n.ee);try{t.emit("internal-error",e)}catch(e){}}function d(e){return!(e&&"function"==typeof e&&e.apply&&!e[o])}},993:(e,t,r)=>{"use strict";r.d(t,{ET:()=>o,p_:()=>i});var n=r(860);const i={ERROR:"ERROR",WARN:"WARN",INFO:"INFO",DEBUG:"DEBUG",TRACE:"TRACE"},o="log";n.K7.logging},3969:(e,t,r)=>{"use strict";r.d(t,{TZ:()=>n,XG:()=>s,rs:()=>i,xV:()=>a,z_:()=>o});const n=r(860).K7.metrics,i="sm",o="cm",a="storeSupportabilityMetrics",s="storeEventMetrics"},6630:(e,t,r)=>{"use strict";r.d(t,{T:()=>n});const n=r(860).K7.pageViewEvent},782:(e,t,r)=>{"use strict";r.d(t,{T:()=>n});const n=r(860).K7.pageViewTiming},6344:(e,t,r)=>{"use strict";r.d(t,{G4:()=>i});var n=r(2614);r(860).K7.sessionReplay;const i={RECORD:"recordReplay",PAUSE:"pauseReplay",REPLAY_RUNNING:"replayRunning",ERROR_DURING_REPLAY:"errorDuringReplay"};n.g.ERROR,n.g.FULL,n.g.OFF},4234:(e,t,r)=>{"use strict";r.d(t,{W:()=>o});var n=r(7836),i=r(1687);class o{constructor(e,t){this.agentIdentifier=e,this.ee=n.ee.get(e),this.featureName=t,this.blocked=!1}deregisterDrain(){(0,i.x3)(this.agentIdentifier,this.featureName)}}},7603:(e,t,r)=>{"use strict";r.d(t,{j:()=>P});var n=r(860),i=r(2555),o=r(3371),a=r(9908),s=r(7836),c=r(1687),u=r(5289),d=r(6154),l=r(944),f=r(3969),g=r(384),p=r(6344);const h=["setErrorHandler","finished","addToTrace","addRelease","addPageAction","setCurrentRouteName","setPageViewName","setCustomAttribute","interaction","noticeError","setUserId","setApplicationVersion","start",p.G4.RECORD,p.G4.PAUSE,"log","wrapLogger"],v=["setErrorHandler","finished","addToTrace","addRelease"];var m=r(1863),b=r(2614),y=r(993);var w=r(2646),A=r(3434);function R(e,t,r,n){if("object"!=typeof t||!t||"string"!=typeof r||!r||"function"!=typeof t[r])return(0,l.R)(29);const i=function(e){return(e||s.ee).get("logger")}(e),o=(0,A.YM)(i),a=new w.y(s.P);return a.level=n.level,a.customAttributes=n.customAttributes,o.inPlace(t,[r],"wrap-logger-",a),i}function E(){const e=(0,g.pV)();h.forEach((t=>{e[t]=(...r)=>function(t,...r){let n=[];return Object.values(e.initializedAgents).forEach((e=>{e&&e.api?e.exposed&&e.api[t]&&n.push(e.api[t](...r)):(0,l.R)(38,t)})),n.length>1?n:n[0]}(t,...r)}))}const x={};function _(e,t,g=!1){t||(0,c.Ak)(e,"api");const h={};var w=s.ee.get(e),A=w.get("tracer");x[e]=b.g.OFF,w.on(p.G4.REPLAY_RUNNING,(t=>{x[e]=t}));var E="api-",_=E+"ixn-";function N(t,r,n,o){const a=(0,i.Vp)(e);return null===r?delete a.jsAttributes[t]:(0,i.x1)(e,{...a,jsAttributes:{...a.jsAttributes,[t]:r}}),j(E,n,!0,o||null===r?"session":void 0)(t,r)}function T(){}h.log=function(e,{customAttributes:t={},level:r=y.p_.INFO}={}){(0,a.p)(f.xV,["API/log/called"],void 0,n.K7.metrics,w),function(e,t,r={},i=y.p_.INFO){(0,a.p)(f.xV,["API/logging/".concat(i.toLowerCase(),"/called")],void 0,n.K7.metrics,e),(0,a.p)(y.ET,[(0,m.t)(),t,r,i],void 0,n.K7.logging,e)}(w,e,t,r)},h.wrapLogger=(e,t,{customAttributes:r={},level:i=y.p_.INFO}={})=>{(0,a.p)(f.xV,["API/wrapLogger/called"],void 0,n.K7.metrics,w),R(w,e,t,{customAttributes:r,level:i})},v.forEach((e=>{h[e]=j(E,e,!0,"api")})),h.addPageAction=j(E,"addPageAction",!0,n.K7.genericEvents),h.setPageViewName=function(t,r){if("string"==typeof t)return"/"!==t.charAt(0)&&(t="/"+t),(0,o.f)(e).customTransaction=(r||"http://custom.transaction")+t,j(E,"setPageViewName",!0)()},h.setCustomAttribute=function(e,t,r=!1){if("string"==typeof e){if(["string","number","boolean"].includes(typeof t)||null===t)return N(e,t,"setCustomAttribute",r);(0,l.R)(40,typeof t)}else(0,l.R)(39,typeof e)},h.setUserId=function(e){if("string"==typeof e||null===e)return N("enduser.id",e,"setUserId",!0);(0,l.R)(41,typeof e)},h.setApplicationVersion=function(e){if("string"==typeof e||null===e)return N("application.version",e,"setApplicationVersion",!1);(0,l.R)(42,typeof e)},h.start=()=>{try{(0,a.p)(f.xV,["API/start/called"],void 0,n.K7.metrics,w),w.emit("manual-start-all")}catch(e){(0,l.R)(23,e)}},h[p.G4.RECORD]=function(){(0,a.p)(f.xV,["API/recordReplay/called"],void 0,n.K7.metrics,w),(0,a.p)(p.G4.RECORD,[],void 0,n.K7.sessionReplay,w)},h[p.G4.PAUSE]=function(){(0,a.p)(f.xV,["API/pauseReplay/called"],void 0,n.K7.metrics,w),(0,a.p)(p.G4.PAUSE,[],void 0,n.K7.sessionReplay,w)},h.interaction=function(e){return(new T).get("object"==typeof e?e:{})};const S=T.prototype={createTracer:function(e,t){var r={},i=this,o="function"==typeof t;return(0,a.p)(f.xV,["API/createTracer/called"],void 0,n.K7.metrics,w),g||(0,a.p)(_+"tracer",[(0,m.t)(),e,r],i,n.K7.spa,w),function(){if(A.emit((o?"":"no-")+"fn-start",[(0,m.t)(),i,o],r),o)try{return t.apply(this,arguments)}catch(e){const t="string"==typeof e?new Error(e):e;throw A.emit("fn-err",[arguments,this,t],r),t}finally{A.emit("fn-end",[(0,m.t)()],r)}}}};function j(e,t,r,i){return function(){return(0,a.p)(f.xV,["API/"+t+"/called"],void 0,n.K7.metrics,w),i&&(0,a.p)(e+t,[(0,m.t)(),...arguments],r?null:this,i,w),r?void 0:this}}function k(){r.e(296).then(r.bind(r,8778)).then((({setAPI:t})=>{t(e),(0,c.Ze)(e,"api")})).catch((e=>{(0,l.R)(27,e),w.abort()}))}return["actionText","setName","setAttribute","save","ignore","onEnd","getContext","end","get"].forEach((e=>{S[e]=j(_,e,void 0,g?n.K7.softNav:n.K7.spa)})),h.setCurrentRouteName=g?j(_,"routeName",void 0,n.K7.softNav):j(E,"routeName",!0,n.K7.spa),h.noticeError=function(t,r){"string"==typeof t&&(t=new Error(t)),(0,a.p)(f.xV,["API/noticeError/called"],void 0,n.K7.metrics,w),(0,a.p)("err",[t,(0,m.t)(),!1,r,!!x[e]],void 0,n.K7.jserrors,w)},d.RI?(0,u.GG)((()=>k()),!0):k(),h}var N=r(9417),T=r(8122);const S={accountID:void 0,trustKey:void 0,agentID:void 0,licenseKey:void 0,applicationID:void 0,xpid:void 0},j={};var k=r(5284);const I=e=>{const t=e.startsWith("http");e+="/",r.p=t?e:"https://"+e};let O=!1;function P(e,t={},r,n){let{init:a,info:c,loader_config:u,runtime:l={},exposed:f=!0}=t;l.loaderType=r;const p=(0,g.pV)();c||(a=p.init,c=p.info,u=p.loader_config),(0,N.xN)(e.agentIdentifier,a||{}),function(e,t){if(!e)throw new Error("All loader-config objects require an agent identifier!");j[e]=(0,T.a)(t,S);const r=(0,g.nY)(e);r&&(r.loader_config=j[e])}(e.agentIdentifier,u||{}),c.jsAttributes??={},d.bv&&(c.jsAttributes.isWorker=!0),(0,i.x1)(e.agentIdentifier,c);const h=(0,N.D0)(e.agentIdentifier),v=[c.beacon,c.errorBeacon];O||(h.proxy.assets&&(I(h.proxy.assets),v.push(h.proxy.assets)),h.proxy.beacon&&v.push(h.proxy.beacon),E(),(0,g.US)("activatedFeatures",k.B),e.runSoftNavOverSpa&&=!0===h.soft_navigations.enabled&&h.feature_flags.includes("soft_nav")),l.denyList=[...h.ajax.deny_list||[],...h.ajax.block_internal?v:[]],l.ptid=e.agentIdentifier,(0,o.V)(e.agentIdentifier,l),e.ee=s.ee.get(e.agentIdentifier),void 0===e.api&&(e.api=_(e.agentIdentifier,n,e.runSoftNavOverSpa)),void 0===e.exposed&&(e.exposed=f),O=!0}},8374:(e,t,r)=>{r.nc=(()=>{try{return document?.currentScript?.nonce}catch(e){}return""})()},860:(e,t,r)=>{"use strict";r.d(t,{$J:()=>o,K7:()=>n,P3:()=>i});const n={ajax:"ajax",genericEvents:"generic_events",jserrors:"jserrors",logging:"logging",metrics:"metrics",pageAction:"page_action",pageViewEvent:"page_view_event",pageViewTiming:"page_view_timing",sessionReplay:"session_replay",sessionTrace:"session_trace",softNav:"soft_navigations",spa:"spa"},i={[n.pageViewEvent]:1,[n.pageViewTiming]:2,[n.metrics]:3,[n.jserrors]:4,[n.spa]:5,[n.ajax]:6,[n.sessionTrace]:7,[n.softNav]:8,[n.sessionReplay]:9,[n.logging]:10,[n.genericEvents]:11},o={[n.pageViewTiming]:"events",[n.ajax]:"events",[n.spa]:"events",[n.softNav]:"events",[n.metrics]:"jserrors",[n.jserrors]:"jserrors",[n.sessionTrace]:"browser/blobs",[n.sessionReplay]:"browser/blobs",[n.logging]:"browser/logs",[n.genericEvents]:"ins"}}},n={};function i(e){var t=n[e];if(void 0!==t)return t.exports;var o=n[e]={exports:{}};return r[e](o,o.exports,i),o.exports}i.m=r,i.d=(e,t)=>{for(var r in t)i.o(t,r)&&!i.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},i.f={},i.e=e=>Promise.all(Object.keys(i.f).reduce(((t,r)=>(i.f[r](e,t),t)),[])),i.u=e=>"nr-rum-1.274.0.min.js",i.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),e={},t="NRBA-1.274.0.PROD:",i.l=(r,n,o,a)=>{if(e[r])e[r].push(n);else{var s,c;if(void 0!==o)for(var u=document.getElementsByTagName("script"),d=0;d<u.length;d++){var l=u[d];if(l.getAttribute("src")==r||l.getAttribute("data-webpack")==t+o){s=l;break}}if(!s){c=!0;var f={296:"sha512-gkYkZDAwQ9PwaDXs2YM+rNIdRej1Ac1mupWobRJ8eahQcXz6/sunGZCKklrzi5kWxhOGRZr2tn0rEKuLTXzfAA=="};(s=document.createElement("script")).charset="utf-8",s.timeout=120,i.nc&&s.setAttribute("nonce",i.nc),s.setAttribute("data-webpack",t+o),s.src=r,0!==s.src.indexOf(window.location.origin+"/")&&(s.crossOrigin="anonymous"),f[a]&&(s.integrity=f[a])}e[r]=[n];var g=(t,n)=>{s.onerror=s.onload=null,clearTimeout(p);var i=e[r];if(delete e[r],s.parentNode&&s.parentNode.removeChild(s),i&&i.forEach((e=>e(n))),t)return t(n)},p=setTimeout(g.bind(null,void 0,{type:"timeout",target:s}),12e4);s.onerror=g.bind(null,s.onerror),s.onload=g.bind(null,s.onload),c&&document.head.appendChild(s)}},i.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},i.p="https://js-agent.newrelic.com/",(()=>{var e={840:0,374:0};i.f.j=(t,r)=>{var n=i.o(e,t)?e[t]:void 0;if(0!==n)if(n)r.push(n[2]);else{var o=new Promise(((r,i)=>n=e[t]=[r,i]));r.push(n[2]=o);var a=i.p+i.u(t),s=new Error;i.l(a,(r=>{if(i.o(e,t)&&(0!==(n=e[t])&&(e[t]=void 0),n)){var o=r&&("load"===r.type?"missing":r.type),a=r&&r.target&&r.target.src;s.message="Loading chunk "+t+" failed.\n("+o+": "+a+")",s.name="ChunkLoadError",s.type=o,s.request=a,n[1](s)}}),"chunk-"+t,t)}};var t=(t,r)=>{var n,o,[a,s,c]=r,u=0;if(a.some((t=>0!==e[t]))){for(n in s)i.o(s,n)&&(i.m[n]=s[n]);if(c)c(i)}for(t&&t(r);u<a.length;u++)o=a[u],i.o(e,o)&&e[o]&&e[o][0](),e[o]=0},r=self["webpackChunk:NRBA-1.274.0.PROD"]=self["webpackChunk:NRBA-1.274.0.PROD"]||[];r.forEach(t.bind(null,0)),r.push=t.bind(null,r.push.bind(r))})(),(()=>{"use strict";i(8374);var e=i(944),t=i(6344),r=i(9566);class n{agentIdentifier;constructor(e=(0,r.LA)(16)){this.agentIdentifier=e}#e(t,...r){if("function"==typeof this.api?.[t])return this.api[t](...r);(0,e.R)(35,t)}addPageAction(e,t){return this.#e("addPageAction",e,t)}setPageViewName(e,t){return this.#e("setPageViewName",e,t)}setCustomAttribute(e,t,r){return this.#e("setCustomAttribute",e,t,r)}noticeError(e,t){return this.#e("noticeError",e,t)}setUserId(e){return this.#e("setUserId",e)}setApplicationVersion(e){return this.#e("setApplicationVersion",e)}setErrorHandler(e){return this.#e("setErrorHandler",e)}addRelease(e,t){return this.#e("addRelease",e,t)}log(e,t){return this.#e("log",e,t)}}class o extends n{#e(t,...r){if("function"==typeof this.api?.[t])return this.api[t](...r);(0,e.R)(35,t)}start(){return this.#e("start")}finished(e){return this.#e("finished",e)}recordReplay(){return this.#e(t.G4.RECORD)}pauseReplay(){return this.#e(t.G4.PAUSE)}addToTrace(e){return this.#e("addToTrace",e)}setCurrentRouteName(e){return this.#e("setCurrentRouteName",e)}interaction(){return this.#e("interaction")}wrapLogger(e,t,r){return this.#e("wrapLogger",e,t,r)}}var a=i(860),s=i(9417);const c=Object.values(a.K7);function u(e){const t={};return c.forEach((r=>{t[r]=function(e,t){return!0===(0,s.gD)(t,"".concat(e,".enabled"))}(r,e)})),t}var d=i(7603);var l=i(1687),f=i(4234),g=i(5289),p=i(6154),h=i(384);const v=e=>p.RI&&!0===(0,s.gD)(e,"privacy.cookies_enabled");function m(e){return!!(0,h.dV)().o.MO&&v(e)&&!0===(0,s.gD)(e,"session_trace.enabled")}var b=i(6389);class y extends f.W{constructor(e,t,r=!0){super(e.agentIdentifier,t),this.auto=r,this.abortHandler=void 0,this.featAggregate=void 0,this.onAggregateImported=void 0,!1===e.init[this.featureName].autoStart&&(this.auto=!1),this.auto?(0,l.Ak)(e.agentIdentifier,t):this.ee.on("manual-start-all",(0,b.J)((()=>{(0,l.Ak)(e.agentIdentifier,this.featureName),this.auto=!0,this.importAggregator(e)})))}importAggregator(t,r={}){if(this.featAggregate||!this.auto)return;let n;this.onAggregateImported=new Promise((e=>{n=e}));const o=async()=>{let o;try{if(v(this.agentIdentifier)){const{setupAgentSession:e}=await i.e(296).then(i.bind(i,3861));o=e(t)}}catch(t){(0,e.R)(20,t),this.ee.emit("internal-error",[t]),this.featureName===a.K7.sessionReplay&&this.abortHandler?.()}try{if(t.sharedAggregator)await t.sharedAggregator;else{t.sharedAggregator=i.e(296).then(i.bind(i,9337));const{EventAggregator:e}=await t.sharedAggregator;t.sharedAggregator=new e}if(!this.#t(this.featureName,o))return(0,l.Ze)(this.agentIdentifier,this.featureName),void n(!1);const{lazyFeatureLoader:e}=await i.e(296).then(i.bind(i,6103)),{Aggregate:a}=await e(this.featureName,"aggregate");this.featAggregate=new a(t,r),n(!0)}catch(t){(0,e.R)(34,t),this.abortHandler?.(),(0,l.Ze)(this.agentIdentifier,this.featureName,!0),n(!1),this.ee&&this.ee.abort()}};p.RI?(0,g.GG)((()=>o()),!0):o()}#t(e,t){switch(e){case a.K7.sessionReplay:return m(this.agentIdentifier)&&!!t;case a.K7.sessionTrace:return!!t;default:return!0}}}var w=i(6630);class A extends y{static featureName=w.T;constructor(e,t=!0){super(e,w.T,t),this.importAggregator(e)}}var R=i(9908),E=i(2843),x=i(3878),_=i(782),N=i(1863);class T extends y{static featureName=_.T;constructor(e,t=!0){super(e,_.T,t),p.RI&&((0,E.u)((()=>(0,R.p)("docHidden",[(0,N.t)()],void 0,_.T,this.ee)),!0),(0,x.sp)("pagehide",(()=>(0,R.p)("winPagehide",[(0,N.t)()],void 0,_.T,this.ee))),this.importAggregator(e))}}var S=i(3969);class j extends y{static featureName=S.TZ;constructor(e,t=!0){super(e,S.TZ,t),this.importAggregator(e)}}new class extends o{constructor(t,r){super(r),p.gm?(this.features={},(0,h.bQ)(this.agentIdentifier,this),this.desiredFeatures=new Set(t.features||[]),this.desiredFeatures.add(A),this.runSoftNavOverSpa=[...this.desiredFeatures].some((e=>e.featureName===a.K7.softNav)),(0,d.j)(this,t,t.loaderType||"agent"),this.run()):(0,e.R)(21)}get config(){return{info:this.info,init:this.init,loader_config:this.loader_config,runtime:this.runtime}}run(){try{const t=u(this.agentIdentifier),r=[...this.desiredFeatures];r.sort(((e,t)=>a.P3[e.featureName]-a.P3[t.featureName])),r.forEach((r=>{if(!t[r.featureName]&&r.featureName!==a.K7.pageViewEvent)return;if(this.runSoftNavOverSpa&&r.featureName===a.K7.spa)return;if(!this.runSoftNavOverSpa&&r.featureName===a.K7.softNav)return;const n=function(e){switch(e){case a.K7.ajax:return[a.K7.jserrors];case a.K7.sessionTrace:return[a.K7.ajax,a.K7.pageViewEvent];case a.K7.sessionReplay:return[a.K7.sessionTrace];case a.K7.pageViewTiming:return[a.K7.pageViewEvent];default:return[]}}(r.featureName).filter((e=>!(e in this.features)));n.length>0&&(0,e.R)(36,{targetFeature:r.featureName,missingDependencies:n}),this.features[r.featureName]=new r(this)}))}catch(t){(0,e.R)(22,t);for(const e in this.features)this.features[e].abortHandler?.();const r=(0,h.Zm)();delete r.initializedAgents[this.agentIdentifier]?.api,delete r.initializedAgents[this.agentIdentifier]?.features,delete this.sharedAggregator;return r.ee.get(this.agentIdentifier).abort(),!1}}}({features:[A,T,j],loaderType:"lite"})})()})();</script> <meta name="viewport" content="width=device-width"> <title>Disaster Watch | Devpost</title> <meta name="description" content="Disaster Watch - Mapping disaster-related tweets" /> <meta property="fb:app_id" content="115745995110194" /> <meta property="og:title" content="Disaster Watch" /> <meta property="og:description" content="Mapping disaster-related tweets" /> <meta property="og:type" content="challengepost:app" /> <meta property="og:site_name" content="Devpost" /> <meta property="og:image" content="https://d112y698adiu2z.cloudfront.net/photos/production/software_thumbnail_photos/000/808/685/datas/medium.png" /> <meta property="og:url" content="https://devpost.com/software/disaster-watch-0tph5z" /> <meta name="twitter:card" content="summary" /> <meta name="twitter:site" content="@Devpost" /> <meta name="twitter:title" content="Disaster Watch" /> <meta name="twitter:description" content="Mapping disaster-related tweets" /> <meta name="twitter:image" content="https://d112y698adiu2z.cloudfront.net/photos/production/software_thumbnail_photos/000/808/685/datas/medium.png" /> <meta name="twitter:domain" content="devpost.com" /> <meta name="twitter:url" content="https://devpost.com/software/disaster-watch-0tph5z" /> <meta name="twitter:creator" content="@mepa1363" /> <meta itemprop="name" content="Disaster Watch" /> <meta itemprop="description" content="Mapping disaster-related tweets" /> <meta itemprop="image" content="https://d112y698adiu2z.cloudfront.net/photos/production/software_thumbnail_photos/000/808/685/datas/medium.png" /> <meta itemprop="screenshot" content="https://d112y698adiu2z.cloudfront.net/photos/production/software_thumbnail_photos/000/808/685/datas/medium.png" /> <meta name="csrf-param" content="authenticity_token" /> <meta name="csrf-token" content="1D9B/UST9gd26K6dp3De0c+uTFuKC0eNzH/zDbjxZaXZsGR0r4duusiohBuRrY9MCLiLVyB/s99nkv2c7aCI/A==" /> <!--[if gt IE 7]><!--> <script src="https://kit.fontawesome.com/0c13a9f144.js" crossorigin="anonymous"></script> <link rel="stylesheet" media="screen" href="https://d2dmyh35ffsxbl.cloudfront.net/assets/reimagine2-9f6db45ae28c3f142e5568add2b33f098323bf45106215f33013b431cdc2eb86.css" /> <link rel="stylesheet" media="screen" href="https://d2dmyh35ffsxbl.cloudfront.net/assets/home/home_application-0c78d29bcd70511da344dde76d14e5dccf6273f3d519aed15d0d183a69c7792e.css" /> <script src="https://d2dmyh35ffsxbl.cloudfront.net/assets/modernizr-58ea6a8d3054105c74975c648df5d77247ea7b62e2c3ed291aace5e4139d5eb5.js"></script> <!--<![endif]--> </head> <body id="body-softwares" class="foundation-grid action-show controller-softwares engine-home"> <!-- Google Tag Manager (noscript) --> <noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-WCFRZ3V" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript> <!-- End Google Tag Manager (noscript) --> <!--googleoff: anchor--> <!--[if lte IE 9 ]> <div id="unsupported_browser_version" class="persistent_message alert-box alert"> <p> We've detected that you are using an unsupported browser. Please <a href="http://browsehappy.com/">upgrade your browser</a> to Internet Explorer 10 or higher. </p> </div> <![endif]--> <!--googleon: anchor--> <header id="global-nav"> <div class="contain-to-grid hide-for-large-up"> <nav class="top-bar" data-topbar> <ul class="title-area top-bar-section"> <li> <a class="toggle-topbar has-dropdown text-center" data-target-menu="world" id="hamburger" href="#"> <i class="ss-icon ss-rows"></i> </a> </li> <li class="name"> <span id="logo"> <a href="https://devpost.com"> <img alt="Devpost" class="show-for-small" src="https://d2dmyh35ffsxbl.cloudfront.net/assets/reimagine2/devpost-logo-mobile-f3aff76bfc0b6ada9bb4ddd773bfc534769ed793f962612804a1e84c305a5f94.svg" /> <img alt="Devpost" class="show-for-medium-up" src="https://d2dmyh35ffsxbl.cloudfront.net/assets/reimagine2/devpost-logo-25d0005ec83e3b9ef6fce93235bb6d642d7c828f31758ebdb5b7ee87de7d45c3.svg" /> </a></span> </li> <li id="mobile-search-form-container" class="search-form-container mobile hide"> <form class="flex-row align-items-center search-form" action="https://devpost.com/hackathons" accept-charset="UTF-8" method="get"><input name="utf8" type="hidden" value="✓" /> <div class="search-field-wrapper flex-row align-items-stretch mx-4"> <span class="align-items-center"> <i class="fas fa-search search-icon"></i> </span> <input type="search" name="search" id="search" title="Search" placeholder="Search hackathons..." /> <a href="#" class="align-items-center close-icon" data-toggle-mobile-search> <i class="fas fa-times"></i> </a> </div> </form> </li> <li class="right logged-out"> <ul> <li> <a id="main-link" href="https://secure.devpost.com/users/login?ref=top-nav-login"> Log in </a> </li> <li class="show-for-medium-up"> <a id="signup-link" href="https://secure.devpost.com/users/register?ref_content=signup_global_nav&ref_feature=signup&ref_medium=button"> <span class="inner-button"> Sign up </span> </a> </li> </ul> </li> <li class="search-expand-container mobile right"> <a data-toggle-mobile-search><i class="fas fa-search"></i></a> </li> </ul> <section class="top-bar-section" data-top-nav-menu="user"> </section> <section class="top-bar-section" data-top-nav-menu="world"> <ul class="right"> <li class="divider"></li> <li class="mobile-product-menu panel-container"> <a class="panel-product panel-product-content" href="https://info.devpost.com/product/public-hackathons"> <img alt="Devpost" src="https://d2dmyh35ffsxbl.cloudfront.net/assets/reimagine2/devpost-logo-mobile-f3aff76bfc0b6ada9bb4ddd773bfc534769ed793f962612804a1e84c305a5f94.svg" /> <p class="title bold">Devpost</p> </a> <div class="panel-content"> <a href="https://devpost.com/hackathons">Hackathons</a> <a href="https://devpost.com/software">Projects</a> <a href="https://info.devpost.com/product/public-hackathons">Host a public hackathon</a> </div> </li> <li class="divider"></li> <li class="mobile-product-menu panel-container"> <a class="panel-product panel-product-content" href="https://info.devpost.com/product/devpost-for-teams"> <img alt="Devpost for Teams" src="https://d2dmyh35ffsxbl.cloudfront.net/assets/reimagine2/dft-logo-mobile-ab66dd5a4f4b2f045ad86d0e5f432dc85974c3d778b353d32213c24ca176484b.svg" /> <p class="title bold">Devpost for Teams</p> </a> <div class="panel-content"> <a href="https://devpost.team">Teams login</a> <a href="https://info.devpost.com/product/devpost-for-teams">Request a demo</a> </div> </li> <li class="divider"></li> <li> <a class="main-link" data-role="discover" href="https://devpost.com/hackathons"> Hackathons </a></li> <li class="divider"></li> <li> <a class="main-link" data-role="projects" href="https://devpost.com/software"> Projects </a></li> <li class="divider"></li> <li> <a class="main-link" href="https://info.devpost.com/blog">Blog</a> </li> <li class="divider"></li> <li> <a class="main-link" data-role="for-orgs" href="https://info.devpost.com"> Host a hackathon </a></li> </ul> </section> </nav> </div> <div class="contain-to-grid hide-for-small hide-for-medium"> <nav class="top-bar" data-topbar> <ul class="title-area"> <li class="name"> <span id="logo"> <a href="https://devpost.com"> <img alt="Devpost" class="show-for-small" src="https://d2dmyh35ffsxbl.cloudfront.net/assets/reimagine2/devpost-logo-mobile-f3aff76bfc0b6ada9bb4ddd773bfc534769ed793f962612804a1e84c305a5f94.svg" /> <img alt="Devpost" class="show-for-medium-up" src="https://d2dmyh35ffsxbl.cloudfront.net/assets/reimagine2/devpost-logo-25d0005ec83e3b9ef6fce93235bb6d642d7c828f31758ebdb5b7ee87de7d45c3.svg" /> </a></span> </li> </ul> <section class="top-bar-section"> <ul class="left"> <li class="divider"></li> <li class="has-dropdown"> <a class="main-link" href="#">Product</a> <ul class="dropdown float-left"> <li id="floating-menu-wrapper"> <div class="floating-menu"> <div class="panel-container"> <a class="panel-product panel-product-content" href="https://info.devpost.com/product/public-hackathons"> <img alt="Devpost" src="https://d2dmyh35ffsxbl.cloudfront.net/assets/reimagine2/devpost-logo-mobile-f3aff76bfc0b6ada9bb4ddd773bfc534769ed793f962612804a1e84c305a5f94.svg" /> <div> <p class="title bold">Devpost</p> <p class="subtitle">Grow your developer ecosystem and promote your platform.</p> </div> </a> <div class="panel-content"> <a href="https://devpost.com/hackathons">Hackathons</a> <a href="https://devpost.com/software">Projects</a> <a href="https://info.devpost.com/product/public-hackathons">Host a public hackathon</a> </div> </div> <div class="panel-container"> <a class="panel-product panel-product-content" href="https://info.devpost.com/product/devpost-for-teams"> <img alt="Devpost for Teams" src="https://d2dmyh35ffsxbl.cloudfront.net/assets/reimagine2/dft-logo-mobile-ab66dd5a4f4b2f045ad86d0e5f432dc85974c3d778b353d32213c24ca176484b.svg" /> <div> <p class="title bold">Devpost for Teams</p> <p class="subtitle">Drive innovation, collaboration, and retention within your organization.</p> </div> </a> <div class="panel-content"> <a href="https://devpost.team">Teams login</a> <a href="https://info.devpost.com/product/devpost-for-teams">Request a demo</a> </div> </div> </div> </li> </ul> </li> <li class="divider"></li> <li> <a class="main-link" data-role="discover" href="https://devpost.com/hackathons"> Hackathons </a></li> <li class="divider"></li> <li> <a class="main-link" data-role="projects" href="https://devpost.com/software"> Projects </a></li> <li class="divider"></li> <li> <a class="main-link" href="https://info.devpost.com/blog">Blog</a> </li> </ul> <div class="right"> <ul> <li> <a class="main-link" data-role="for-orgs" href="https://info.devpost.com">Host a hackathon</a> </li> <li class="search-expand-container desktop main-link"> <a data-toggle-desktop-search><i class="fas fa-search"></i></a> </li> <li id="desktop-search-form-container" class="search-form-container hide"> <form class="flex-row align-items-center search-form" action="https://devpost.com/hackathons" accept-charset="UTF-8" method="get"><input name="utf8" type="hidden" value="✓" /> <div class="search-field-wrapper flex-row align-items-stretch mx-4"> <span class="align-items-center"> <i class="fas fa-search search-icon"></i> </span> <input type="search" name="search" id="search" title="Search" placeholder="Search hackathons..." /> <a href="#" class="align-items-center close-icon" data-toggle-desktop-search> <i class="fas fa-times"></i> </a> </div> </form> </li> </ul> <ul> <li> <a id="main-link" href="https://secure.devpost.com/users/login?ref=top-nav-login"> Log in </a> </li> <li class="show-for-medium-up"> <a id="signup-link" href="https://secure.devpost.com/users/register?ref_content=signup_global_nav&ref_feature=signup&ref_medium=button"> <span class="inner-button"> Sign up </span> </a> </li> </ul> </div> </section> </nav> </div> </header> <section id="container" class=""> <header class="page-header text-center" id="software-header"> <div class="row"> <div class="small-12 columns"> <h1 id="app-title">Disaster Watch</h1> <p class="large"> Mapping disaster-related tweets </p> </div> </div> <div class="row"> <div class="small-12 columns"> <div class="software-likes"> <div data-like="base"> <a class="like-button button radius secondary" href="https://secure.devpost.com/users/register?flow%5Bdata%5D%5Bsoftware_id%5D=215735&flow%5Bname%5D=like_software&return_to=https%3A%2F%2Fdevpost.com%2Fsoftware%2Fdisaster-watch-0tph5z"> <span class="ss-icon ss-heart"></span> Like <span class="side-count">6</span> </a> </div> </div> <a id="software-comment-button" class="button radius comment-button" href="/software/disaster-watch-0tph5z#updates"> <span class="ss-icon ss-quote"></span> Comment </a> </div> </div> </header> <nav id="software-nav"> <div class="row"> <div class="large-12 columns"> <ul class="left no-bullet"> <li> <h4> <a class="active" href="/software/disaster-watch-0tph5z">Story</a> </h4> </li> <li> <h4> <a href="/software/disaster-watch-0tph5z#updates">Updates</a> </h4> </li> </ul> </div> </div> </nav> <article id="app-details" class="content-section"> <div class="row"> <div class="large-9 columns" id="app-details-left"> <div id="gallery"> <ul data-slick="true"> <li> <div class="flex-video "> <iframe type="text/html" width="660" height="371" src="https://www.youtube.com/embed/3litgKyukAg?enablejsapi=1&hl=en_US&rel=0&start=&version=3&wmode=transparent" allowfullscreen="allowfullscreen" frameborder="0" allowscriptaccess="always" webkitAllowFullScreen="true" wmode="transparent" mode="transparent" class="video-embed"></iframe> </div> </li> <li class="text-center"> <a data-lightbox="808739" href="https://d112y698adiu2z.cloudfront.net/photos/production/software_photos/000/808/739/datas/original.png"> <img alt="Disaster Watch – screenshot 1" class="software_photo_image image-replacement" onerror="this.onerror=null;this.src='https://d2dmyh35ffsxbl.cloudfront.net/assets/defaults/thumbnail-placeholder-8c916ef4da99a222ce6ece077c71c7e282f071f830747b2abb5718018cbfa699.gif';" src="//d112y698adiu2z.cloudfront.net/photos/production/software_photos/000/808/739/datas/gallery.jpg" /> </a> <span class="expand-tag"><i class="fas fa-expand"></i></span> <p> <i></i> </p> </li> <li class="text-center"> <a data-lightbox="808740" href="https://d112y698adiu2z.cloudfront.net/photos/production/software_photos/000/808/740/datas/original.png"> <img alt="Disaster Watch – screenshot 2" class="software_photo_image image-replacement" onerror="this.onerror=null;this.src='https://d2dmyh35ffsxbl.cloudfront.net/assets/defaults/thumbnail-placeholder-8c916ef4da99a222ce6ece077c71c7e282f071f830747b2abb5718018cbfa699.gif';" src="//d112y698adiu2z.cloudfront.net/photos/production/software_photos/000/808/740/datas/gallery.jpg" /> </a> <span class="expand-tag"><i class="fas fa-expand"></i></span> <p> <i></i> </p> </li> <li class="text-center"> <a data-lightbox="808741" href="https://d112y698adiu2z.cloudfront.net/photos/production/software_photos/000/808/741/datas/original.png"> <img alt="Disaster Watch – screenshot 3" class="software_photo_image image-replacement" onerror="this.onerror=null;this.src='https://d2dmyh35ffsxbl.cloudfront.net/assets/defaults/thumbnail-placeholder-8c916ef4da99a222ce6ece077c71c7e282f071f830747b2abb5718018cbfa699.gif';" src="//d112y698adiu2z.cloudfront.net/photos/production/software_photos/000/808/741/datas/gallery.jpg" /> </a> <span class="expand-tag"><i class="fas fa-expand"></i></span> <p> <i></i> </p> </li> </ul> </div> <div> <h2>Motivation</h2> <p>Social media has played a key role in distributing information during disasters. People, both affected citizens and those outside the impact zone, and media outlets have used social media to collate and share disaster-related information during wildfires, earthquakes, floods, and tornados. This has created a well-established pattern: “a disaster strikes, and the crisis data collection begins”. For example, during the Calgary flood in 2013, people heavily used social media to post information, photos, and breaking news regarding the ongoing event. Besides citizens, Calgary’s official emergency responders, such as the Calgary Police Service and the City of Calgary, also used social media to broadcast safety-critical information and situation updates. So, both citizens and emergency response organizations have started to recognize the added value of information available via social media during disasters.</p> <h2>Challenges</h2> <p>However, there are some challenges when considering social media as an information source for disaster response. In particular, social media streams contain large amounts of irrelevant messages such as rumors, advertisements, or even misinformation. So, one major challenge to using social media messages like tweets is how to process them and deliver credible and relevant information to disaster responders and citizens. Another challenge relates to the amount of information that flows on social media and how to analyze them in real-time. Finally, social media messages are brief (e.g., 280 characters for tweets) and informal and, therefore, applying the methods that are used to process structured, long texts such as news articles to deal with them may lead to poor and misleading results.</p> <h2>Solution</h2> <p>Disaster Watch is a disaster mapping platform that collects data from twitter, extracts disaster-related information from tweets, and visualizes the results on a map. It enables users to quickly locate all the information in different geographic areas at a glance, and to find the physical constraints caused by the disaster, such as non-accessible river bridges, and take an informed action. Such information helps public and disaster responders (e.g., humanitarian organizations, disaster relief agencies, or local actors) answer the following questions:</p> <ul> <li>When did the disaster happen?</li> <li>Where are the affected areas?</li> <li>What are the impacts of the disaster?</li> </ul> <p>The answers to these questions provide spatial (where), temporal (when), and thematic (what) information about an event. The insights gained from analysis of such information can be of great value to decision-makers in different phases of a disaster (from preparedness to response and recovery). </p> <p>Disaster Watch is built using free and open source software, open standards, and open data - TensorFlow 2.0, NodeJS and Express, VueJS, Vuetify, and Mapbox GL JS are used to create the system components. It collects tweets using Twitter’s streaming API, analyzes them using a deep learning model built by TensorFlow 2.0, and displays disaster-related tweets on a map. The application is hosted on Amazon’s AWS infrastructure.</p> <p>See more details here: <a href="https://docs.google.com/document/d/15BGGFOvMZq2P_QHmKbe71MpBv1wMuFbJ15RlEkapnEs/edit?usp=sharing" rel="nofollow">https://docs.google.com/document/d/15BGGFOvMZq2P_QHmKbe71MpBv1wMuFbJ15RlEkapnEs/edit?usp=sharing</a></p> </div> <div id="built-with" class=""> <h2>Built With</h2> <ul class="no-bullet inline-list"><li><span class="cp-tag">mapboxgl.js</span></li><li><span class="cp-tag recognized-tag"><a href="https://devpost.com/software/built-with/node-js">node.js</a></span></li><li><span class="cp-tag recognized-tag"><a href="https://devpost.com/software/built-with/python">python</a></span></li><li><span class="cp-tag">tensorflow</span></li><li><span class="cp-tag">vue.js</span></li><li><span class="cp-tag">vuetify.js</span></li></ul> </div> <nav class="app-links section"> <h2>Try it out</h2> <ul data-role="software-urls" class="no-bullet"> <li><a target="_blank" title="https://disaster-watch.netlify.com" rel="nofollow" href="https://disaster-watch.netlify.com"> <i class="ss-icon ss-link"></i> <span>disaster-watch.netlify.com</span> </a></li> </ul> </nav> </div> <aside class="large-3 columns" id="app-details-right"> <div id="submissions" class="section"> <h4 class="clearfix"> Submitted to </h4> <ul class="software-list-with-thumbnail"> <li> <figure class="software-list-thumbnail challenge_avatar"> <a href="https://tensorflow.devpost.com/"><img alt="image" class="thumbnail_image image-replacement" onerror="this.onerror=null;this.src='https://d2dmyh35ffsxbl.cloudfront.net/assets/defaults/no-avatar-100-b164b29ca37cbce6b6dbcf4d61d40ba7a3081dfd121a32e2a773eb8f018f0a1f.png';" src="//d112y698adiu2z.cloudfront.net/photos/production/challenge_thumbnails/000/771/752/datas/medium.jpg" /></a> </figure> <div class="software-list-content"> <p> <a href="https://tensorflow.devpost.com/">⚡#PoweredByTF 2.0 Challenge!</a> </p> <ul class="no-bullet"> <li> <span class="winner label radius small all-caps">Winner</span> Have your project featured at TensorFlow World! </li> <li> <span class="winner label radius small all-caps">Winner</span> Share your project with the TensorFlow Community! </li> </ul> </div> </li> </ul> </div> <section id="app-team"> <h4 class="clearfix"> Created by </h4> <ul class="no-bullet"> <li class="software-team-member" itemprop="member"> <div class="bubble"> <p>I developed the idea and worked on the architecture, backend components, and deployment.</p> </div> <div class="row"> <div class="small-2 large-4 columns"> <figure> <a class="user-profile-link" href="https://devpost.com/mepa1363"><img alt="Abraham Poorazizi" class="software-member-photo user-photo photo_image image-replacement" title="Abraham Poorazizi" onerror="this.onerror=null;this.src='https://d2dmyh35ffsxbl.cloudfront.net/assets/defaults/no-avatar-100-b164b29ca37cbce6b6dbcf4d61d40ba7a3081dfd121a32e2a773eb8f018f0a1f.png';" src="//d112y698adiu2z.cloudfront.net/photos/production/user_photos/000/817/109/datas/profile.jpeg" /></a> </figure> </div> <div class="small-10 large-8 columns"> <a class="user-profile-link" href="https://devpost.com/mepa1363">Abraham Poorazizi</a> <span class="follow-button-wrapper" data-context="software-detail" data-layout="condensed" data-follow-through-id="439282"></span> <br> <small>Thinker, Maker, Innovator.</small> </div> </div> </li> <li class="software-team-member" itemprop="member"> <div class="bubble"> <p>I worked on the Machine learning part.I built the deep learning model using Tensorflow 2.0 to identify and classify the disaster related tweets.</p> </div> <div class="row"> <div class="small-2 large-4 columns"> <figure> <a class="user-profile-link" href="https://devpost.com/mkhordoo"><img alt="Mahmood Khordoo" class="software-member-photo user-photo photo_image image-replacement" title="Mahmood Khordoo" onerror="this.onerror=null;this.src='https://d2dmyh35ffsxbl.cloudfront.net/assets/defaults/no-avatar-100-b164b29ca37cbce6b6dbcf4d61d40ba7a3081dfd121a32e2a773eb8f018f0a1f.png';" src="//d112y698adiu2z.cloudfront.net/photos/production/user_photos/000/808/862/datas/profile.jpg" /></a> </figure> </div> <div class="small-10 large-8 columns"> <a class="user-profile-link" href="https://devpost.com/mkhordoo">Mahmood Khordoo</a> <span class="follow-button-wrapper" data-context="software-detail" data-layout="condensed" data-follow-through-id="439283"></span> <br> <small>Certified nerd</small> </div> </div> </li> <li class="software-team-member" itemprop="member"> <div class="bubble"> <p>My focus was on the frontend development.</p> </div> <div class="row"> <div class="small-2 large-4 columns"> <figure> <a class="user-profile-link" href="https://devpost.com/mahsa3809a"><img alt="Mahsa Amini" class="software-member-photo user-photo photo_image image-replacement" title="Mahsa Amini" onerror="this.onerror=null;this.src='https://d2dmyh35ffsxbl.cloudfront.net/assets/defaults/no-avatar-100-b164b29ca37cbce6b6dbcf4d61d40ba7a3081dfd121a32e2a773eb8f018f0a1f.png';" src="//d112y698adiu2z.cloudfront.net/photos/production/user_photos/000/270/866/datas/profile.jpg" /></a> </figure> </div> <div class="small-10 large-8 columns"> <a class="user-profile-link" href="https://devpost.com/mahsa3809a">Mahsa Amini</a> <span class="follow-button-wrapper" data-context="software-detail" data-layout="condensed" data-follow-through-id="439284"></span> <br> <small></small> </div> </div> </li> </ul> </section> </aside> </div> </article> <section id="share-and-like"> <div class="row"> <div class="small-12 columns"> <div class="clearfix"> <div class="left"> <div class="software-likes"> <div data-like="base"> <a class="like-button button radius secondary" href="https://secure.devpost.com/users/register?flow%5Bdata%5D%5Bsoftware_id%5D=215735&flow%5Bname%5D=like_software&return_to=https%3A%2F%2Fdevpost.com%2Fsoftware%2Fdisaster-watch-0tph5z"> <span class="ss-icon ss-heart"></span> Like <span class="side-count">6</span> </a> </div> <span class="like-counts"> 6 people like this: </span> <ul class="like-users inline-list"> <li> <a class="user-profile-link" href="https://devpost.com/drat"><img alt="Deddy Ratnanto" class="user-photo has-tip user-photo facebook_avatar_image image-replacement" title="Deddy Ratnanto" data-tooltip="70044586912700" onerror="this.onerror=null;this.src='https://d2dmyh35ffsxbl.cloudfront.net/assets/defaults/no-avatar-100-b164b29ca37cbce6b6dbcf4d61d40ba7a3081dfd121a32e2a773eb8f018f0a1f.png';" src="https://avatars2.githubusercontent.com/u/1527144?type=square&v=4" /></a> </li> <li> <a class="user-profile-link" href="https://devpost.com/richardbecker"><img alt="Richard Becker" class="user-photo has-tip user-photo facebook_avatar_image image-replacement" title="Richard Becker" data-tooltip="70044586912540" onerror="this.onerror=null;this.src='https://d2dmyh35ffsxbl.cloudfront.net/assets/defaults/no-avatar-100-b164b29ca37cbce6b6dbcf4d61d40ba7a3081dfd121a32e2a773eb8f018f0a1f.png';" src="https://media.licdn.com/dms/image/C5603AQG1Yv4CO_tiwg/profile-displayphoto-shrink_800_800/0?e=1583366400&t=YRYydnx0zY_wnELc-Ez1kTukJmBMwpMpihk_a4TQ72I&type=square&v=beta" /></a> </li> <li> <a class="user-profile-link" href="https://devpost.com/MKobar"><img alt="Mike Kobar" class="user-photo has-tip user-photo gravatar_image image-replacement" title="Mike Kobar" data-tooltip="70044586912380" onerror="this.onerror=null;this.src='https://d2dmyh35ffsxbl.cloudfront.net/assets/defaults/no-avatar-100-b164b29ca37cbce6b6dbcf4d61d40ba7a3081dfd121a32e2a773eb8f018f0a1f.png';" src="https://www.gravatar.com/avatar/490deaaf924a75727059449be165c674?d=https%3A%2F%2Fd2dmyh35ffsxbl.cloudfront.net%2Fassets%2Fdefaults%2Fno-avatar-32.png&s=32" /></a> </li> <li> <a class="user-profile-link" href="https://devpost.com/CarolineChandraguptharajah"><img alt="Caroline Chandraguptharajah" class="user-photo has-tip user-photo facebook_avatar_image image-replacement" title="Caroline Chandraguptharajah" data-tooltip="70044586912200" onerror="this.onerror=null;this.src='https://d2dmyh35ffsxbl.cloudfront.net/assets/defaults/no-avatar-100-b164b29ca37cbce6b6dbcf4d61d40ba7a3081dfd121a32e2a773eb8f018f0a1f.png';" src="https://media.licdn.com/dms/image/C5603AQF1OqPRkXQvow/profile-displayphoto-shrink_100_100/0?e=1554336000&t=bKThDZQ6yDHVnJWmebFAqUioaXvOR78VVIlc7hpn_yI&type=square&v=beta" /></a> </li> <li> <a class="user-profile-link" href="https://devpost.com/puma007"><img alt="puma007" class="user-photo has-tip user-photo facebook_avatar_image image-replacement" title="puma007" data-tooltip="70044586912040" onerror="this.onerror=null;this.src='https://d2dmyh35ffsxbl.cloudfront.net/assets/defaults/no-avatar-100-b164b29ca37cbce6b6dbcf4d61d40ba7a3081dfd121a32e2a773eb8f018f0a1f.png';" src="https://avatars0.githubusercontent.com/u/1724962?type=square&v=4" /></a> </li> <li> <a class="user-profile-link" href="https://devpost.com/datnguyen"><img alt="Dat Nguyen" class="user-photo has-tip user-photo photo_image image-replacement" title="Dat Nguyen" data-tooltip="70044586911880" onerror="this.onerror=null;this.src='https://d2dmyh35ffsxbl.cloudfront.net/assets/defaults/no-avatar-100-b164b29ca37cbce6b6dbcf4d61d40ba7a3081dfd121a32e2a773eb8f018f0a1f.png';" src="//d112y698adiu2z.cloudfront.net/photos/production/user_photos/000/568/710/datas/medium.jpeg" /></a> </li> </ul> </div> </div> <div class="right hide-for-small"> <div id="software-share" class="hide" data-add-this-buttons="true"> Share this project: <ul class="h-nav clearfix inline-list" id="social-links"> <li id="promote-twitter"> <div class="social-icon"> <div class="addthis_32x32_style addthis_toolbox addthis_default_style" addthis:url="https://devpost.com/software/disaster-watch-0tph5z?utm_campaign=portfolio-share&utm_medium=twitter&utm_source=cp" addthis:title="Check out Disaster Watch by @mepa1363" addthis:description="https://devpost.com/software/disaster-watch-0tph5z"> <a class="addthis_button_twitter" tw:count="false" tw:counturl="https://devpost.com/software/disaster-watch-0tph5z" tw:url="https://devpost.com/software/disaster-watch-0tph5z?utm_campaign=portfolio-share&utm_medium=twitter&utm_source=cp" tw:via="Devpost" tw:text="Check out Disaster Watch by @mepa1363"> </a> </div> </div> </li> <li id="promote-fb-li"> <div class="social-icon"> <div class="addthis_32x32_style addthis_toolbox addthis_default_style" addthis:url="https://devpost.com/software/disaster-watch-0tph5z" addthis:title="Disaster Watch" addthis:description=""> <div class="custom_images"> <a class="addthis_button_facebook" fb:like:show_faces="false"> </a> </div> </div> </div> </li> <li id="promote-reddit-li"> <div class="social-icon"> <a class="addthis_32x32_style addthis_button_reddit" addthis:url="https://devpost.com/software/disaster-watch-0tph5z?utm_campaign=portfolio-share&utm_medium=reddit&utm_source=cp" addthis:title="Disaster Watch" ></a> </div> </li> </ul> </div> </div> </div> </div> </div> </section> <article class="content-section"> <div class="row"> <div class="large-12 columns software-updates"> <h2 id="updates">Updates</h2> <article class="content-section software-update with-sidebar" data-commentable-id="174263"> <div class="row"> <div class="large-8 small-12 columns"> <div data-region="actions"></div> <div class="media"> <div class="media-left"> <a class="update-user-avatar user-profile-link" href="https://devpost.com/mepa1363"><img alt="Abraham Poorazizi" class="user-avatar user-photo photo_image image-replacement" title="Abraham Poorazizi" onerror="this.onerror=null;this.src='https://d2dmyh35ffsxbl.cloudfront.net/assets/defaults/no-avatar-100-b164b29ca37cbce6b6dbcf4d61d40ba7a3081dfd121a32e2a773eb8f018f0a1f.png';" src="//d112y698adiu2z.cloudfront.net/photos/production/user_photos/000/817/109/datas/profile.jpeg" /></a> </div> <div class="media-content"> <p class="author small"> <a class="user-profile-link" href="https://devpost.com/mepa1363">Abraham Poorazizi</a> started this project <span class="light-text"> — <a class="timestamp light-text" href="/software/disaster-watch-0tph5z/updates/174263"> <time class="timeago" datetime="2019-05-07T01:42:13-04:00"> May 07, 2019 01:42 AM EDT </time> </a> </span> </p> <p><i>Leave feedback in the comments!</i></p> <section class="software-update-comments" data-layout="comments"> <div data-region="load-more"></div> <div data-region="comments"></div> <p class="join-the-conversation"> <strong><a href="https://secure.devpost.com/users/login">Log in</a></strong> or <strong><a href="https://secure.devpost.com/users/register?flow%5Bdata%5D%5Bcommentable_id%5D=174263&flow%5Bname%5D=comment_on_software_update&return_to=https%3A%2F%2Fdevpost.com%2Fsoftware%2Fdisaster-watch-0tph5z">sign up for Devpost</a></strong> to join the conversation. </p> </section> </div> </div> </div> <div class="columns"></div> </div> </article> </div> </div> </article> </section> <footer id="devpost-footer"> <div class="row body"> <div class="small-6 large-3 columns with-bottom-margin"> <nav> <h4>Devpost</h4> <ul> <li><a href="https://info.devpost.com/about">About</a></li> <li><a href="https://info.devpost.com/careers">Careers</a></li> <li><a href="https://info.devpost.com/contact">Contact</a></li> <li><a href="https://help.devpost.com/">Help</a></li> </ul> </nav> </div> <div class="small-6 large-3 columns with-bottom-margin"> <nav> <h4>Hackathons</h4> <ul> <li><a href="https://devpost.com/hackathons">Browse hackathons</a></li> <li><a href="https://devpost.com/software">Explore projects</a></li> <li><a href="https://info.devpost.com">Host a hackathon</a></li> <li><a href="https://info.devpost.com/guides">Hackathon guides</a></li> </ul> </nav> </div> <div class="small-6 large-3 columns"> <nav> <h4>Portfolio</h4> <ul> <li><a href="https://devpost.com/portfolio/redirect?page=projects">Your projects</a></li> <li><a href="https://devpost.com/portfolio/redirect?page=hackathons">Your hackathons</a></li> <li><a href="https://devpost.com/settings">Settings</a></li> </ul> </nav> </div> <div class="small-6 large-3 columns"> <nav> <h4>Connect</h4> <ul class="social-links"> <li> <a href="https://twitter.com/devpost"> <div class="icon"> <i class="fab fa-twitter"></i> </div> <span> Twitter </span> </a> </li> <li> <a href="https://discord.com/invite/HP4BhW3hnp"> <div class="icon"> <i class="fab fa-discord"></i> </div> <span> Discord </span> </a> </li> <li> <a href="https://www.facebook.com/devposthacks" target="_blank"> <div class="icon"> <i class="fab fa-facebook-f"></i> </div> <span> Facebook </span> </a> </li> <li> <a href="https://www.linkedin.com/company/devpost/" target="_blank"> <div class="icon"> <i class="fab fa-linkedin-in"></i> </div> <span> LinkedIn </span> </a> </li> </ul> </nav> </div> </div> <div class="legal-bar-container"> <nav class="row"> <div class="columns"> <div class="legal-bar"> <div class="copyright-notice">© 2024 Devpost, Inc. All rights reserved.</div> <ul> <li><a href="https://info.devpost.com/legal/community-guidelines">Community guidelines</a></li> <li><a href="https://info.devpost.com/legal/security">Security</a></li> <li><a href="https://info.devpost.com/legal/california-consumer-privacy-act">CA notice</a></li> <li><a href="https://info.devpost.com/legal/privacy-policy">Privacy policy</a></li> <li><a href="https://info.devpost.com/legal/terms-of-service">Terms of service</a> </ul> </div> </div> </nav> </div> </footer> <script src="https://d2dmyh35ffsxbl.cloudfront.net/assets/platform-880b32e6224574219a6262682bf30232e6d3cf413fbad0b34ef1dc688bcd0e81.js"></script> <script src="https://d2dmyh35ffsxbl.cloudfront.net/assets/reimagine2-a3ac820ed12013fcadf17d797c6a74bdb299123048bb2d192e8aab1f460dc8dd.js"></script> <script src="https://d2dmyh35ffsxbl.cloudfront.net/assets/home/home_application-0dbf2c6bbe8e88a45ae9fcc471fb499fc7a3e7b01f2f9a530e92566522736d96.js"></script> <script type="text/javascript" charset="utf-8"> (function() { mixpanel.identify("21a8cbef84d24dc5ebc0ee73a127252f1ad92f3f07551b0fdca574a62d7bad0d428a63c78ffbc10d8be902f10587a9b4eeb5"); mixpanel.register({}); })(); </script> <script src="https://d2dmyh35ffsxbl.cloudfront.net/assets/slick-be61a9e761cc4aeb92940d6e5e9745b77acadbdaedada42659083117c28c4d00.js"></script> <script type="text/javascript"> (function (d, s, id) { var js, fjs = d.getElementsByTagName(s)[0]; if (d.getElementById(id)) return; js = d.createElement(s); js.id = id; js.src = "https://connect.facebook.net/en_US/sdk.js"; fjs.parentNode.insertBefore(js, fjs); }(document, 'script', 'facebook-jssdk')); </script> <script type="text/javascript"> (function (d, s, id) { var js, fjs = d.getElementsByTagName(s)[0]; if (d.getElementById(id)) return; js = d.createElement(s); js.id = id; js.src = "https://connect.facebook.net/en_US/sdk.js"; fjs.parentNode.insertBefore(js, fjs); }(document, 'script', 'facebook-jssdk')); var addthis_config = { data_ga_property: "UA-2233558-21", ui_508_compliant: true, ui_use_addressbook: true, ui_email_note: "I thought you might be interested in Disaster Watch - Mapping disaster-related tweets. It was built with node.js, python, tensorflow, vue.js, mapboxgl.js, and vuetify.js.", ui_email_from: "" }; var addthis_share = { url_transforms: { shorten: { twitter: 'bitly' } }, shorteners: { bitly: {} }, email_template: "software_share_template", email_vars: { Title: "Disaster Watch", Subject: "Check out this project on Devpost", HomepageLink: "https://devpost.com/?utm_campaign=friends_share&utm_medium=email" }, passthrough : { twitter: { via: "Devpost", text: "Check out Disaster Watch by @mepa1363" }, facebook: { app_id: 115745995110194, redirect_uri: "https://devpost.com/software/disaster-watch-0tph5z" } } }; var DEVPOST_ADDTHIS = { show: function() { $('[data-add-this-buttons]').each(function() {$(this).removeClass("hide")}); }, hide: function() { $('[data-add-this-buttons]').each(function() {$(this).addClass("hide")}); } } </script> <script type="text/javascript" charset="utf-8"> CP.env.addRoutes({ follows_url: "https://devpost.com/follows", search_softwares_url: "https://devpost.com/software/search", new_software_url: "https://devpost.com/software/new", search_hackathons_url: "https://devpost.com/api/hackathons", notifications_url: "https://devpost.com/notifications", api: { users_url: "https://api.devpost.com/users" } }) new Reimagine2(); $(function onDocumentReady() { CP.Home.SoftwareCommentButton.setup(); new CP.ChallengeStateInfoTzConverter( '#app-details', '[data-date-info-tag]', '[data-dates-text]', '' ).convert("Edit up to the submission deadline: "); new CP.GifPlayer CP.Carousel.setup() new CP.Home.EditableContribution('[data-contribution="editable-contribution"]') new CP.Home.LikesModal() CP.Historic.setup(".software-updates"); ventChannel().trigger("updates:list", "disaster-watch-0tph5z"); CP.LinkCollectionTracker.setup(".recognized-tag a", "#app-details-right").track( "Tag Gallery", { "Tag displayed on": "software details page"} ); new CP.Home.SoftwareLinks("[data-role=software-urls]").enhance(); CP.Home.DismissableMessage.setup("[data-alert]"); CP.ChallengeStateInfoTimeago.setup('#submissions, #draft-submissions'); CP.SendFormOnCommandEnter.setup($("#masqueradee")); (function(inputs) { if (typeof inputs.cp_autocomplete === "function") inputs.cp_autocomplete(); inputs.on('click', function(event) { return false; }); })($("#masqueradee")); var FollowButtonApp = new CP.FollowButtonApp({ user: { screen_name: "", follow_through_id: 0 }, urls: { register_url: "https://secure.devpost.com/users/register", user_follows_url: "https://devpost.com//follows", follow_through_url: "https://devpost.com/software_members/follows", follow_request_url: "https://devpost.com/follow_requests" }, follow_through_scope: "software_member" }); FollowButtonApp.start(); var appOptions = {}; CP.Mn.app.start(appOptions); }); </script> <!--[if lt IE 9 ]> <script type="text/javascript"> $(function onDocumentReady() { CP.IE.Notifications.setup(); }); </script> <![endif]--> <script type="application/ld+json"> { "@context": "http://schema.org", "@type": "WebSite", "url": "https://devpost.com/", "potentialAction": { "@type": "SearchAction", "target": "https://devpost.com/software/search?query={query}", "query-input": "name=query" } } </script> </body></html>