Mobile Log in
Mobile Video Broadcast
The inspiration comes from the recent increase of crime related activities in and around Houston. Even those small ones we have faced in RICE or my friends at University of Houston. This app is built to provide a near realtime crowdsourced crime reporting as well as Incident Reporting Tool where we all collaboratively can contribute to keep our city safe as well as help others in need when required.
What it does
It is a web app (also mobile via cordova packaging) which users can access from any internet enabled phone. They will be able to view a news feed which will have a list of all the incidents in order of time. And also they will have a map view through which they can see who reported them, a small picture of them so that they can be identified and what they reported. There is not other personally identifiable information out there. In the map view if someone wants to report something they will just click on the report button and it will show them the crisis/incident type and what they want to report.
They also have a option to "broadcast" their emergency. Which will open a video chat in their phone which other can will be able to see in the app main page.
A login/registration is not necessary for viewing the incidents. But is necessary to report one.
The rough userflow is as below
- A user enters the Web App by logging in through Login Form.
- He/She is shown the Live Stream of Newsfeed as well as Live Broadcasts.
- In Live Broadcast, user can create a broadcast to reach large masses.
- Live Broadcast can also be used by authorities for Self Defence Training and Immediate Health Aid techniques.
- When user clicks on "View On Map", he/she is shown all the alerts that are within 5 mile radius of that user.
- If user wants to report an event/crime, he/she can add the event and same will reflect live on the newsfeed as well as map.
- User can choose to broadcast the present situation to the concerned SOS authorities.
- There is an SOS button, which user can press to alert all his/her emergency contacts as well as concerned authorities (this is supposed to send a sms, not yet implemented)
- There is also an Admin Panel, which shows Real Time updates to concerned authorities so as to act on them soon as they get information.
- This app can be used as a Web App as well as Android app.
How I built it
In short. Google+stackoverflow+meteor and mongodb documentation. And of course with the help of super friendly @dmwilson
Challenges I ran into
- Had no idea Chrome and FF has started blocking location tracking in non https mode. I didn't have a server with https in the beginning
- Meteor has a lot of bugs apparently. Ranging from sql lock to nodejs server problem. So I guess I reported a lot (or upvoted) of them since yesterday
- Running nested meteor apps is not easy
- The server running the webrtc connection is in http and finally my app is in https. So again....video functionality broke since....mixed content is NOT supported
- Somehow meteor is accepting one ssl certificate for one of the server but not the other pne for p2p webrtc...so still stuck
- Nexmo doesn't give me their sms api in time -_-
- Somehow Google STILL thinks my referrer is different from what I am giving it to invoke my social login api. So that one is still broke
- Facebook login is mess
- Realized my own login is best but.....have no way of getting picture from user (you won't be ready to upload your pic...will you? unless I scrape form twitter/fb etc). So user using "sign up" is able to do everything but invisible in the map because....oh well his "marker: doesnt have an icon -_-
- My laptop crashed
- Still hacking on...
Accomplishments that I'm proud of
- My first app using meteor+mongodb. I am surprised it is still runnning.
What I learned
- W3C specs are a mess....and I need to lower down my expectation on what I can do...
What's next for HouConnect
See the attached presentation. But in short
- Extend Broadcast API. It currently connects user streams(video/audio) using unique sessions. In case of Broadcast, each peer may act as a relay which helps in stability.
- Extend this in case of Natural Disasters by creating heat maps.
- Track SOS being provided in real time.
- Extend SOS function. At the moment hardcoded phone numbers and also api dependent (so not demoable right now…)
- Provide analytics for crime events, based on Male/Female, locations and type of events and time of day.
PS: The github is not updated. Its 9~10 hours stale code. And you know what that means for a hacktahon project...