We were inspired by how shady the landlords in the KW region could be, and how willing they were to exploit the young and legally defenseless university tenants that lived around the local universities. As a member of the population of the students who are exploited, one of the precautions I take is to take multiple pictures of all rooms when I first move in. Since I'm on coop every 4 months, it becomes cumbersome to take pictures every time and fight any disputes: that's why me (Lance), Max, Daniel, and Elston decided to make Noscope, a web app that gets rid of all your tenant liability problems.
What it does
NoScope is a web app that allows you to post a "before" and "after" panorama (or normal) photos of your rooms and then finds all the differences between the two images. It allows a tenant to take a photo of their room when they move in, and a 2nd one when they plan to move out, and prove that they did not damage anything that a sketchy landlord might otherwise try to play off as new damages.
How we built it
We built the NoScope's web full stack with the simple and lightweight python web framework called Bottle. For the database we decided to go with MongoDB and also used Mongo to store the images through the MongoDB Gridfs specification which allowed the storage of large files > 16MB. Lastly to do the most important part of the app -- the image differentiation -- we used OpenCV to find and highlight the differences between the chosen images.
Challenges we ran into
It's probably not a good idea to use MongoDB to host images; we realized that a bit too late. Bottle can be very finicky when it comes to creating routes. We tried using Docker, but Docker does not work on Windows Home Professional. OpenCV does not work well on Windows. Postman is glitchy when sending large files as post requests. We also had difficulties connecting the backend to the frontend.
Accomplishments that we're proud of
We are proud by the amount of various new technologies which we implemented together. The results from the images analysed through OpenCV proved to be jaw dropping every step of the way. Additionally, we are proud of each member's effort put forth, we each had to step outside our comfort zone in a stressful situation and work together.
What we learned
Our main lesson was how to adjust sleep schedules to maximize workflow; rather than each member not sleeping, we decided to keep two developers working at peak performance at all times. We learned how the smallest change to a file path, such as a period, can be the difference between life and death. From stepping outside our comfort zones, we are able to interact with new frameworks and libraries. Lastly, we learned the idea of project management and deadlines can help keep the development of different modules in check.
What's next for NoScope
The key idea behind our project was the technology, computer vision. This technology can be expanded and applied to many different fields, such as damage analysis on cars, or more optimized CCTV solutions.