Inspiration
We wanted to build an app that could bring people together, and connect with those that would otherwise be a missed connection. Handshake is mainly inspired by Nintendo's StreetPass system, which similarly utilized WiFi networks to connect Nintendo DS users.
What it does
HandShake is a mobile app built for iOS that allows for users to meet new people utilizing Bluetooth. It finds other users based on proximity and runs in the background and collects Passbys. Passby tokens are logs of other users that happen to come within proximity of the user. At the user's discretion, they can access a list of these Passby's and view that user's Handshake Card. These Handshake cards are customizable public facing profiles that list a user's name, a short biography, their interests, and some of their favorite songs. If the user finds a card they like, they can request to connect with them by requesting a "Handshake", a mutual agreement between the user and the recipient to share more contact details, such as phone number and social media handles.
How we built it
The frontend of the app is made with SwiftUI and with Spencer's SpenceKit, a UI prototyping framework he designed himself. The UI graphics were created using Adobe Creative Suite. We built the backend using Flask written in Python and utilizing Google's Firebase platform for device authentication. This backend also works as a middleman between user devices that handles storing and sending user credentials in a SQL database. The method of communication between iOS devices utilizes Bluetooth Low Energy (BLE) technology to detect other app users. This protocol is optimized to just catch each other and generate Passbys
What makes Handshake unique
While the premise is simple, the power comes from its ease of use. It runs in the background and passively collects cards from people around you. Despite other apps using BLE as a messaging app, Handshake approaches communication to efficiently use that technology just as a means of collection by proximity. Handshake isn't itself a social media app, its a connections app that brings users together.
Challenges we ran into
Adopting Firebase into the project was challenging as it as completely new territory for the team. Integrating the backend server and connecting with the frontend of the mobile app took time to merge cohesively together. Designing the back and forth communication between server and device proved to be a complex and multifaceted task involving the entire team to implement.
Accomplishments that we're proud of
We’re proud to have built a fully functional app in just 24 hours. The user interface is polished, and getting the Bluetooth Low Energy (BLE) functionality to work immediately was a significant achievement. It was also rewarding to explore new technologies like Firebase to enhance our app development process.
What we learned
Individually, We each learned the importance of our roles on the team. Spencer deepened his love for UI Design working on the frontend. Dylan learned new skills working in network communication with cloud-based servers like Firebase. Erdem and Alex both developed skills working together designing the backend.
What's next for HandShake
The future for connecting users always has plenty of potential. A cross-platform mobile app would entail adding Android support. The sharable profile data can be fleshed out by adding more user details to share between users, such as Age, Favorite Foods, Zodiac Sign, etc. Account Integration can expanded with other services such as Spotify, LinkedIn, or Facebook. Exploring other fields, our app has potential in the professional world as a means to connect job seekers and employers at career fairs or conferences. The Handshake protocol can be used in food service as a means to check in customers for mobile orders at restaurants.
Built With
- ble
- bluetooth
- firebase
- flask
- hashlib
- javascript
- python
- spencekit.swift
- sqlalchemy
- swift
- swiftui
Log in or sign up for Devpost to join the conversation.