Inspiration

We came up with the idea for Flock from Facebook groups like the "Rice Students Uber," which are meant to coordinate rides with other students to-and-from the airport around holiday season. We wanted to make the process easier and more streamlined, as well as add a social-connectivity component to help connect students that have common likes.

What it does

After creating an account connected to your email, phone, and (if you want) Facebook, you can create and join "Flocks" - groups of students that are headed from one place to another. You can share rides to the airport or just to get to another city for 1/4th the price, or you can use Flock to meet and connect with students that you share common interests with - be it late-night boba runs at KungFu Tea or all-day excursions to Galveston.

How we built it

We wrote Flock for iOS, Android, and Web. The backend database is Firebase, Google's free database. The iOS app was written in vanilla Swift 3, the Android app in Java on Android-Studio using Android libraries as well as some from GitHub, and the Web App was written in Python backend with REST and HTML/CSS frontend. The site is registered through domain.com and hosted on AWS. All three implementations used the Firebase API, although the Web App was challenging due to lack of Python support.

Challenges we ran into

Before settling on Firebase, we had extensive debate regarding how best to store our data in the backend, trying out AWS first before running into issues with SQL. We ended up pivoting to Firebase because David had used Firebase before and it had strong support for mobile development.

Being a team of five we divided the three platforms among ourselves, which meant that we were spread thin in terms of resources (our iOS and Android apps only had one person working on them). We also had some trouble setting up the backend with our Web App, due to an extreme lack of Python-friendly resources with Firebase.

Accomplishments that we're proud of

We're most proud of our cross-platform integration, with iOS, Android, and Web Apps all communicating very well, and reading/writing to the same backend database in the same style consistently. We're also proud of the cohesive design philosophy that we employed, making sure to talk through each platform-level design decision with all team members, and documenting our best practices in a shared document.

What we learned

We learned the importance of establishing and maintaining a cohesive code style across platforms in ensure performance and reliability, especially when dealing with a backend that had to be accessed by multiple, sometimes unsupported, languages. We also learned the pain of dealing with ASync processes when trying to access a backend with sometimes significant performance (ping/lag) woes.

What's next for Flock

Wrapping up Web App development and polishing up the mobile apps. Specifically, we want to add more social-media integration. Currently our Facebook login only works for iOS, so that's something we would target first. After that we'd look to implement a chatting feature to allow groups to coordinate more readily, or export that function to a group-messaging service such as GroupMe.

Share this project:

Updates