Inspiration

All of us know networking is an important skill to master in order to build your career. At the moment, it's crucial to have a good memory in order to remember all the people you meet and connect with. Instead of focusing on creating meaningful interactions, the current approach to networking makes it more a challenge of seeing who can remember the most people. We wanted to help rectify the reliance on memory and instead introduce an easy to use app that allows a user to not have to stress about remembering all details about who they're talking with.

What it does

To solve this problem, we built FaceNote - a desktop app that allows users to get general information (name, career, company, etc.) on who they are currently talking with. Initially, we were planning on making this a mobile app but due to the virtual nature of everything (e.g. DubHacks), we created a desktop app that runs alongside any video conferencing tool (Zoom, Microsoft Teams, Google Meet, etc.). After launching FaceNote, users have the option to select their meeting screen and allow FaceNote to do its thing. Through the use of a highly accurate machine learning model, FaceNote uses facial recognition to get information on a specific person and then return that to the user in a minimalistic, easy to read interface. As a result, this allows meeting participants to spend less time worrying about unimportant details about the other person (especially if it's someone they have met before) and instead spend more time having meaningful conversations and actually connecting with other people.

How we built it

For the machine learning model, we used a pretrained facial recognition Python library that is able to locate faces within a photo and also identify a face. In order to connect the Python machine learning to our actual client side implementation, we developed a backend in Go that was paired to a MongoDB database. Apart from querying/inserting data to/from the database, the backend also handled HTTP requests by both parsing incoming data and formatting outgoing data. The actual app was built using Electron.js (a JavaScript framework for developing native Desktop apps). We then tied together all of these parts by deploying the backend to a Google Cloud server while running our frontend locally.

Challenges we ran into

Most of the challenges we ran into were mainly related to our attempts to develop a mobile app. When we came into DubHacks, we wanted to create both a mobile and desktop app but we ended up having to scrap the mobile app due to the complexities of setting up Xcode on our Macs. There were also few minor issues in our backend with the IDs used to query data from our database having differing sizes (25 bytes vs the expected 24 bytes) but we managed to grind through it and figure out a clean and working solution :)

Accomplishments that we are proud of

Robert: Got to learn databases (MongoDB) and also helped develop a speedy backend with Go. Vlad: Got to work with Go and Electron.js for the first time

What we learned

Go is a pretty fun programming language, it's great to know when to cut your losses, and regardless of if you say you're going to go to finish everything and be able to sleep, you'll probably end up staying up the whole night.

What's next for FaceNote

All of us had a lot of fun developing FaceNote and we definitely plan to keep working on it by building a mobile app for both iOS and Android next!

Built With

Share this project:

Updates