Meeting new people can be an exciting experience! Why ruin the conversation by tediously exchanging contact information? Developed by four bright individuals fed up with this repetitive task, Wave was created to simplify the process of exchanging contact information in a fun new way. With Wave running on the phones of both parties, a simple wave to one another seamlessly exchanges contact information so that conversation can carry on another day!
What it does
Simply put, Wave provides a fun and quick way to exchange contact information. After the user finishes the initial setup, which comprises of entering their own information, they are then able to run the app and wave at another user who has Wave running on their device. When both users are waving in close vicinity to one another, the contact information is shared. After the exchange, both users can review one another's information before the data seamlessly integrates with the built-in Contacts app on the iPhone.
How we built it
The front end portion of our iOS app was built using Swift. We used Sketch to design the UI of our app and admired how easy it was to navigate through the software. By using the iPhone's built-in accelerometer, we were able to register waves provided by the user. Our back end relies on relational database models we built using MYSQL and Python. We then deployed our application using Google App Engine. Each user is assigned a unique number to be identified by and their contact information is stored in tables. When the contact information is requested, the backend sends the relevant data to the user.
Challenges we ran into
The first challenge was in determining how to define the algorithm that would initiate the whole process. The way we coded the app was we had to wave our phone at the other person multiple times. The difficulty came in determining when one wave stopped and the other wave began. We then used the iPhone's accelerometer to determine when the acceleration changed from positive to negative and vice versa in each axis. The other challenge(the toughest part) we had was in integrating our backend with Google App Engine and Cloud SQL. This was due to the fact that we had originally chosen to write out backend in SQL. As a result, there were many hurdles we had to jump over in order to set up the engine in time.
Accomplishments that we are proud of
Ten minutes before we started coding, we didn't even know each other. It's amazing how we managed to come together as a team and put together a project that required all of our skills to make. Our inexperience with actually deploying projects showed when we had to put the database on Google Cloud, as non of us had ever worked of something other than localhost. We're proud that we were able to get past this and successfully deploy.
What we learned
Throughout this process, our patience has been tested time and time again as we battled through the challenges of learning to work with various frameworks and other tools. At the end of the day, it is not about how good you are at something but how much time and effort you put in. The trials and errors amongst our accomplishments may seem frustrating; however, they serve to teach us more than just how to code but to also work collaboratively in a way that helps all of us grow.
What's next for Wave
One feature we are soon going to implement is the ability for the user to view all people they had previously exchanged information with. This can be useful the case, the user accidentally deletes a given contact.
With the ability to archive past Waves, we would also like to use the geodata obtained to map out where these past exchanges had occurred. This presents clear historical data to the user in the form of a map indicating previous encounters. Users will value this information as the data essentially maps out the exact location of where valuable relationships first began.
One day, Wave will also allow other forms of verification to authenticate the user. By allowing users to log in through Facebook, Gmail, or Snapchat, the user can easily bypass a longer initial setup process. Use of these companies' respective login APIs will allow users to send verified social media handles.