We meet a lot of new people in different walks of life - engineer from a startup at the career fair, Python expert at a conference, fun girl at the Friday night club or a cute guy at a friend's wedding ceremony. We have an interesting conversation, exchange numbers and decide to meet up or talk sometime again. But how many times has it happened that you just forgot their name? You are just not able to remember it and so begins a cycle of searching on Facebook, LinkedIn and incessantly scrolling through your phone's contact list in the hope that you will remember the name, sometimes you are lucky and your willpower pays off, while other times you just give up.
What it does
IntelliContact adds context to the contacts you save. And our backend regularly collects the events you and your contacts have attended. So whenever you want to find someone whose name you are just not able to remember, you can just ask IntelliContact - "The recruiter I met at Computer Sciences career fair" or "The guy who I met at the Madison airport" and it will give you a list of people who match the criteria!
How we built it
We started off by creating a small dataset of contacts with some context like when the contact was added to the phone and what location it was added at. Using this dataset we trained our Natural Language Processing(NLP) model powered by wit.ai to identify the intent of various searches so that it can predict correct vectors to query the dataset for getting the relevant contacts. We built Flask backend on Microsoft Azure platform to serve as the API endpoint, the Flask application is responsible for co-ordinating with wit.ai to get the query vectors and then has some added intelligence to construct SQL queries for getting the Final result. We have also built sample Android application which uses our API to search your contact list. We also store all the data on Azure SQL instance and have backend Apps running on Azure to regularly collect the events list.
Challenges we ran into
Our inexperience in working with Azure meant that we had to spend a ton of time trying to get simple things running.
Accomplishments that we're proud of
To successfully be able to deploy a Web App and make an Android App to obtain accurate results in the given time was great given that our team had no experience in Android App or Web App development.
What we learned
Android App development from ideation to the final product, and Web App development with Flask and Azure.
What's next for IntelliContact
To obtain information from connection of friends of friends and make a relational model that increases the reach. Rank contacts on the basis of probability of being a match based on the number of feature matches. In order to do so, weighing some features over the others and also those instances that lead to more number of common friends when the person is not entirely in reach. There is a lot is scope to scale this application and we are super excited to carry forward the work!