Inspiration
In the era of COVID-19, meeting and getting to know new people has been due to social-distancing restrictions. With the focus of many activities being moved to an online format, and in the spirit of how HackBeanpot was organized (really well!), we created a camping themed matching website, Twin Flame. The goal of Twin Flame is to have users fill out a camping adventure-based survey, and based on their answers, they will be matched with another person. Like most people, COVID-19 has probably caused a blockade for your social life, being forced to reduce contact with friends and/or potential friends. As university freshmen, we particularly feel this absence of human connection, especially when put into a completely new environment where most of the usual avenues for making friends are cut off. Fortunately, it might be easier than you think to meet new people. Our website, Twin Flame, allows you to meet people from the comfort of your home.
What it does
Users fill out a 10 question on the Twin Flame website and then submit via a submit button. This button press triggers a JavaScript function, which pulls the survey result from the page into an SQL database on the back-end. The back-end then processes the data by converting data in the SQL database into a python dictionary. A python script analyses this dictionary with a specific person in mind, finding the person with the most similar survey results using a comparison algorithm. A match is then determined and shown to the user.
How we built it
Our team is split into two roles: frontend and backend. The frontend portion of our team designed the Twin Flame website by sketching camping-themed graphics in Adobe Illustrator and then designing the entire website in Webflow. Webflow is a platform which allowed us to implement no-code front-end design. Webflow provided a preset theme, which we then proceeded to edit to suit our needs. The backend portion of our team designed a javascript function to collect data from our survey and store it in an SQL database. They also designed a python script to analyze the data stored in the database.
Challenges we ran into
We ran into a lot of issues when developing the backend of the project. At first, we had trouble deciding what languages to run our data analysis and database in, as well as what helping technologies/libraries were worth the effort of learning our way around. As the project progressed, issues arose between connecting our website’s frontend and backend in terms of relevant data storage, transference, and data analysis. However, we took advantage of hackathon resources, personally reaching out to multiple mentors for advice at all stages of our project, as well as attending an office hours call, which helped us immensely with progressing forward.
Accomplishments that we're proud of
- Learnt new web development technologies that none of us had any experience with
- Came up with, planned, and built a functional, working product
- Connected with potential future mentors for needed help with the project
- Everyone in our team is relatively new to the world of hackathons (have attended <= 3), with this being the first hackathon for half our team. So, it was impressive how well everyone worked together towards a final product in a hackathon-esque environment, even with a 100% remote hackathon.
- Learned/polished team-building, communication, and independent thinking skills
What we learned
We realized a crucial flaw in our database that would brick our program before use:
- We wanted a real-time use of the survey and data analysis: once you filled out the survey you would instantly get a resulting match.
- If the database starts with zero entries you would get errors, once it hits two entries it would match these people and go back down to zero entries.
- Our solution ended up being to pregen some data for the database so we wouldn’t encounter any errors. Unfortunately this would only work for demo purposes, in actual deployment we would need to solicit data from real people prior to the launch of our service.
What's next for Twinflame
- If we polish up our website design to a usable state and make the backend code more efficient, we could publish the website on a hosting server and open it up for public use.
- We need to patch up any security vulnerabilities before doing a public release (the way we store data and communicate data isn’t the safest).
- We would need to create a sample data-base before deployment.
Contact Us
Slack Handles:
- [Hacker] Julian Crowley
- [Hacker] Karen Li
- [Hacker] Ashna
- joseph G
Log in or sign up for Devpost to join the conversation.