Inspiration

To combine our teams hardware and software skills while learning something new to build something unique

What it does

CloudLock is a smart home lock which is authenticated using Face ID via Microsoft Azure's AI API. Users are authenticated via the mobile app which is triggered by NFC technology. If authenticated successfully, an Arduino drives a motor simulating a lock. The technology features a full backend API and web dashboard for managing users, their activity and viewing stats

How we built it

We used NFC technology to interact with a mobile phone and smart lock. Face authentication was achieved using Azure's AI API. User data is stored on Firebase cloud firestore. The mobile app is built with Flutter and Dart; our backend API was made with Node.js and Express and deployed using Firebase Hosting

Challenges we ran into

Integrating newer and older technologies together proved to be challenging. For instance, we used Flutter, a cross platform mobile platform released recently. Consequently, it lacked libraries that would have been convenient to use (for example, we could not directly access Google Cloud Firestore or Azure Cognitive Services using prebuilt libraries.)

Accomplishments that we're proud of

We are proud of successully integrating a wide variety of technologies with one central purpose. In the end, we managed to integrate everything together, from the hardware to the backend to the frontend, no matter how out of sync the prebuilt libraries may have been.

What we learned

We learnt a lot about hardware devices, mobile development, front+back end web development including building a API to manage data. Also don't sleep 1 hour over the course of 2 days

What's next for CloudLock

In the future we would like to see enhanced security options to increase flexibility for device owners. For example, the on-phone camera would be replaced with an in-door infrared camera utilizing Microsoft's Windows Hello. The NFC protocol would also be developed further to enhance security.

Share this project:
×

Updates