Perhaps the most awkward moment in any situation is getting a person's name wrong. Personally, I dismiss the importance of learning the name of someone new as a time consuming and boring task - that is, until it's too late. Deja Vu is an app that helps you avoid circumstances like these with a fun loophole.

What it does

Deja Vu first asks the user to log into their Facebook account. Then, the app, by retrieving the user's friends and their profile pictures, runs a repetitive, fun multiple choice exam that asks users to match a profile picture with the respective name. Deja Vu also keeps score of the user's performance over time.

How I built it

Deja Vu is an iOS application. I of course used Swift and Xcode as my respective coding language and environment. The most important, sole API I used was the Facebook Graph API which I used to retrieve a user's friends + profile pictures for the game.

Challenges I ran into

The Facebook graph API had many restrictions that were somewhat of a hurdle. For example, Facebook did not allow Deja Vu to access the names and pictures of any user's friends who did not use Deja Vu. Therefore, thanks to several cool friends, I created a set of fake accounts that I used as the user base for Deja Vu (that took way longer than I would've liked it).

Accomplishments that I'm proud of

Surprisingly, parsing the JSON file to access ID's and name's wasn't as formidable task as I thought it would be. I'm also happy that I was able to write some asynchronous code. I did not know how multi-threading worked before this hackathon, but now, thanks to this experience, I have a grasp on how dispatching asynchronous code threads exactly works.

What I learned

Creating Deja Vu was a combination of revising JSON parsing while learning how to write asynchronous code.

What's next for Deja Vu

I will attempt to resolve issues that I did not have time to resolve during SVHacks. This includes the lack of data persistence and an inconsistent Facebook login.

Share this project: