Context
The transition to remote learning means that students are all too familiar with rounds and rounds of awkward zoom calls during orientation in an attempt to make friends. The same questions are asked every time: How are classes? What dorm are you in? How’s the food? Rory is the result of our efforts to match you with a new friend in a fun way that ensures you’ll have something to talk about.
How it Works
- Meet Rory and create an account
- Describe what you see for each inkblot drawing shown
- Rory will analyze your responses and give you the contact info for the person in our database that is the most similar to you, along with a summary of both your responses.
How We Made Rory
To calculate similarity, we used pre-trained GloVe Word Embeddings to encode the semantic meaning of the inputted words and obtain a vector representation of the words. We used cosine distance to calculate various metrics that we accumulated to represent the overall similarity between two users' responses. We used Express.js for our web server and used Handlebars to render HTML templates for the UI on the server side. To store user data, we used a PostgreSQL database and connected it to our JavaScript code via the Sequelize ORM.
Technical Challenges
We had already committed to JavaScript and Express when we realized that the necessary libraries for speech recognition and semantic word comparisons only existed in Python. We attempted to pipe the output from Python scripts into our JavaScript code but were unsuccessful, so we ended up with two complementary webapps - one in Flask with the complete word comparison functionality and one in Express with the user database and complete UI.
What We’re Proud of
Being able to take words and extract meaning from them to match users with a potential friend!
Takeaways
Don’t be afraid to hack together a janky version at first!! This is a hackathon after all.
What’s Next for Rory
Connecting the front and back-end
Using voice and emotion-recognition to get an even more in-depth analysis
User-testing! See how well our matching worked
Built With
- express.js
- flask
- glove-word-embeddings
- html/css
- javascript
- postgresql
- python
- sequelize

Log in or sign up for Devpost to join the conversation.