The inspiration for SafeScan was all around us. On every little foray made outside, there were obvious hesitations in being forced to interact with surfaces such as door handles, elevator buttons, and other high-contact surfaces in public places. We decided to sit and brainstorm a way to be able to continue everyday life without needing to worry about this newfound fear of touching and interacting with contaminated surfaces. We felt that using technology, we could mitigate some of the methods of transmission for COVID-19 and decided that a contactless entry system reliant on accessibility door motors would be extremely beneficial for the general public while navigating these difficult times and still finishing their everyday responsibilities.
What it does and why it does it
We now live in a world that is greatly distressed by the COVID-19 pandemic. Highly dangerous virus strains are now spreading rapidly through places of high contact such as public doors like malls, schools, hospitals, etc. With the use of new cutting-edge technology, the user will now be able to minimize contact with these doors by using our new application called the SafeScan. Using SafeScan, users can authenticate their accounts to gain access to private entry buildings with no contact required, while also using the QR scanner in the app to open public building doors, as well as private entry doors without having to grab or touch the door handles. By using existing Firebase authentication on both the front and back-end, the entire system is designed to provide safety for both users and building owners by encrypting their data and securing them from attacks designed to scrape keys to manipulate different environment triggers.
How we built it
We initially started development and split our team into two parts, one side focused on developing the user application for Android and the other side focused on implementing the backend for QR code generation. The Android side focused on developing the UI and front-end experience while implementing novel Firebase features such as authentication that can quickly be adapted into an Android app. After creating the account creation and user login portal, we linked successful logins to the Google Cloud Vision API-based QR code scanning system that quickly reads the QR code and accesses the online generated key required to trigger the operation mechanism. This QR code is a randomly generated access link based on a Web Server, upon access which triggers the hashing authentication process. On the back-end of this process, a Python script was used to generate hashes sent to the Firebase servers and to the local Arduino system that was operating our example object, a cardboard door. This script is operated on a timer to generate a hash list, similar to a concept based on Valve's Steam Mobile Authentication system. This list of hashes is linked to a user's Firebase account and to the local server operating the Arduino unit. Once a user scans the QR code, the online authentication system verifies the user's hash list with the local hash list stored at the server, and grants near-instant access to the user without the need to physically touch any sensitive surfaces!
Challenges we ran into
As fairly beginner programmers, we ran into serious challenges due to our lack of prior experience in many of the technologies used in this hack. We had to learn to implement different programming languages, APIs, and libraries at a fast pace in order to efficiently create the prototype app. Since our team was new to app and web-based server development, we ran into issues on compiling all the different software and data into one unified platform and using the cloud to be able to communicate with our app. We were able to overcome these challenges by speaking to different experienced mentors which helped guide the development of our application and using tutorials and open-source code available online to fill in the gaps our knowledge base could not cover. Learning how to safely and effectively implement open source libraries in various aspects of application development also proved to be a challenging affair as learning how to work with depreciated libraries was a long affair involving many hours of debugging and bug-fixing.
Accomplishments that we're proud of
One accomplishment that we’re proud of is our ability to work effectively as a team in order to accomplish the same goal. We were able to proactively divide up roles based upon our diverse strengths and skill sets so that we could maximize the potential of our application. Since our team is relatively new to app development, we were also very proud that we were able to use the skills learned inside/outside the classroom to create a useful real-life prototype application. We also found that the team effectively used resources available to learn massive amounts of information in the quest to develop a working prototype. The amount of workload was very intense as we were very inexperienced with most of the technologies that are a fundamental base of this app, and we were very happy with the amount of material that we not only effectively learned but also implemented considering the vast variety of different technologies that go into making such an application.
What we learned
During the time developing the application we learned many technical skills and EI skills that allowed us to take our idea to the next level. As a team of young developers, we learned to use various tools such as Android Studio, Firebase, Google Cloud APIs and Git in order to allow us to create the final version of the product and work together effectively and modularly. We also had to learn basic UI/UX principles while implementing the final version of our app, and learn how to make effectively operating interfaces and use libraries to accomplish various API based goals that our app needed to accomplish. We also learned how to implement and manipulate Google Firebase to create secure registration/login and a rudimentary hash-based security system for our app. Lastly, we learned how to effectively modularize code amongst a group setting and bring it together to make a final publishing version.
What's next for SafeScan
Next, for SafeScan, we will be looking to implement new cutting edge features that promote the security of the user and the swiftness of the application itself. To accomplish this, our team has started to develop ideas and programs that increase safety by using biometrics and more authentication forms on the client-side and stronger forms of encryption for the scannable server QR codes. The scalability of this idea will also be explored as we will try to implement location-based APIs such as RadarSDK or Google Maps to increase the security as well as allow for greater flexibility for the app to work in more public locations. There are also plans to scale the app for services beyond doors, such as elevators and vending machines, to create a truly efficient contactless entry system into most major areas. We will also be looking to implement better UI design and create a more efficient UX so the process of login is more seamlessly integrated.