Inspiration

Every year, approximately 127 million unused phones are tossed away. As cell phone plans have shortened over time, the frequency at which we accumulate old phones is increasing significantly. That led us to think: how can we make use of our unused devices? The cameras on most of our old devices are still much better than your average budget security camera, so why not use your phones to set-up a home security system? This thought led to the development of oBopp.

What it does

Our web-app allows you to use any device that has a functional camera as a security camera. After signing up for the service, you will be allowed to either use your current device as a camera, or simply view the video streams from any devices that are connected to your account. Additionally, whenever any unusual activity is detected by the camera, an email notification will be sent to you.

How we built it

The front-end web app was developed with React. This front end communicates with the back-end server using both REST API calls and Socket.io. Less demanding communication processes, such as login and authentication, were handled by the REST API calls. More demanding communication, such as video streaming, was handled by Socket.io.

The back-end server was built using Express.JS, with storage being taken care of by mongoDB, and security/hashing handled by bcrypt.

We implemented machine learning via TensorFlow for the purpose of object recognition, and we used SendGrid to send email notifications to users.

Finally, GitHub Actions was used to automate our builds and deployments to Heroku, which hosted both the server and front-end app.

Challenges we ran into

4 of our members had never used React before this project, 1 of whom had never even used JavaScript before yesterday. The app's behaviour when run locally was sometimes different from its behaviour on Heroku, which made testing much more difficult as we had to wait for production versions of the app to finish deploying.

Accomplishments that we're proud of

We're very proud that we were able to make an app that is able to simultaneously increase the security of one's home, while also doing it for free (minus electricity costs) by making use of old devices that otherwise would have ended up in a landfill.

We were also able to go beyond the base planned functionality of the app by using object detection to notify the user when a person has been detected by one of the cameras.

What we learned

This project was the first time any of us have worked with Tensorflow for image processing and recognition. Additionally, the project was a good demonstration of the advantages and disadvantages of different communication methods (REST vs Sockets) and how to decide between them.

What's next for oBopp

Due to time constraints, the mobile version of the app was also developed as a web-app. We hope to make separate, native versions for both iOS and Android. Switching over to WebRTC for video streaming is a feature that would allow us to increase the quality of our video streaming by a significant margin, while including audio as well. Higher quality entity recognition is also a feature that we would like to implement. Another feature that we'd like to implement is automatic filtering of unnecessary object detections made by TensorFlow. Lastly, since we're storing phone numbers, securely sending text message notifications is also a feature that we'd like to implement.

As a team, we strongly encourage you to look into how you can reduce your own e-waste by participating in proper electronics recycling. Some resources that we consulted for such information were: Electronic Recycling Association Greening Academia Use and disposal of mobile phones among university students

Lastly, if you have any electronics that truly do not work at all, we strongly encourage you to consider recycling them, instead of throwing them away. Some places where you can recycle your electronics are: FreeGeek Electronic Recycling Association

Love,

FSq x ANMOL x BRIAN

Share this project:

Updates