We have faced this problem before - rushing down to a shop only to find that it's closed, opting to take a bus only to find that it is crowded, heading down to a library only to find that there's no seats. If you hate making wrong choices, then this app is for you!

What it does

The app connects you with strangers, so that they act as your personal CCTV. Simply submit a request with location information and wait for it to be accepted. Anyone who happens to be there can easily snap a shot of the surroundings. You will then anonymously receive the status update of your desired location. It's like an on-demand CCTV anywhere!

How I built it

I had 2 choices, whether to build a web app or a native app. However, in the end, we chose a native app for better support of Google Cloud Messaging to push notifications and its location picker service, both of which are critical to our app. The app connects to a backend server coded in PHP. This is then linked to a SQL database to fetch the best users to process such jobs and send them a notification accordingly.

Challenges I ran into

Coding in Android is no easy feat for me. Being the solo Android coder in the team, I was from an era where Android 2.3 Gingerbread was the norm. With the new Android Studio, new APIs, new syntax and new quirks, getting this software was no easy task. I spent quite some time trying to figure out the obscure error messages and had a really hard time debugging! I had in mind a really nice design, but Android Studio simply refuses to make design as easy as it is on CSS!

P.S. In fact, I think Android Studio would win the most annoying hack award!

Accomplishments that I'm proud of

Isn't the ability to use Android Studio an achievement in itself? :)

What I learned

Technical skills wise, I was able to brush up my competency in Android programming. I also learnt the importance of teamwork. With only a team of 2, teamwork was important because we relied on each others' input and output to make a coherent app.

What's next for ZenVision

The future for ZenVision is infinite. The use cases can be extended to set up constant monitoring of specific areas, to enable real-time video updates. For example, when a train breaks down, these real-time updates can be used to facilitate information sharing so that all commuters know which stations to avoid. This can also be implemented on Glass for a seamless experience in which capturing photos and live feed would be a simple command away. We aim to build a future where Information and Communication forms the core of our daily lives, and this is just a first step!

Share this project: