Interface for adding and managing friends
Integrated messaging feature, available by tapping on friends who are available
You've got an hour before lunch and you want to eat with someone, not be the looser eating alone in the corner. You madly text all your friends, wait for them to respond and by the time they've seen your message and responded, half an hour has gone by and you've ended up eating lunch by yourself anyway. Such is a common occurrence in the busy lives of college students. It's often difficult to reconcile our busy lives with the basic human desire to socialize. Studies have shown that People who are able to maintain a healthy work-life balance are vastly more productive. What's more, those who are chronically overworked, with little time to spare have some of the highest rates of depression and suicide.
What it does
Our app enables its users to make the most out of their time, by taking the hassle out of finding common time. More specifically, MeetUp! automatically searches a user's (approved) friends and finds which are available, enabling the user to spend less time worrying about finding friends to hang out with, and more time actually relaxing with friends!
How I built it
At its core, MeetUp! uses three main components: The social network, the calendar interface and the scheduler. The social network component is built to take advantage of Firebase's Realtime Database functionality. This not allows for a real time, live updating interface with room for expansion, but it also provides analytics for the developers. Of course, as with any other social network users can add and manage their lists of friends. Behind the scenes, this database also allows for the communication of free times between different users, and storing of other data which gets passed to the scheduler later on.
The second base component of the app is the calendar interface. Here we take advantage of the native ecosystem in which we built our app to streamline the calendar interface to the point of effortlessness. Without the user having to press a single button, this module uses apple's Event Kit api to read the user's schedule, and - along with other user input - determine the times hen that user is free.
Linking the two components is the scheduling algorithm. This provides the entry point for the interface, and uses the data relayed to it from both other sources. Considering your and your friends' free time, it allows you to easily find times you can meet up, by determining exactly how many and which of the users friend's are available at which times. We even integrated data visualizations to allow the user to intuitively see the data.
Challenges I ran into
Using firebase for the first time Smoothly reading and writing to and from the database Data visualization libraries were difficult to use and poorly documented
Accomplishments I'm proud of
Our first fully functional, stand-alone app built at a hackathon! We knew it would be a daunting project to start, and we're proud of how well we pulled it off!
What I learned
Database and backend implementation using Firebase for iOS apps Data visualization using Charts from CocoaPods
What's next for MeetUp!
Polishing the user interface Adding authentication Adding Geotaging features for friends in your area