Inspiration
State universities tend to be very large. In-state students go in already having an established network with their friends from childhood and high school, who can introduce them to their other friends. Out-of-state and international students have a much harder time as they come in without any existing network. Teammate removes a need for an established connection and help people make friends that can help them move forward. In the larger scheme of things, Teammate also helps foster a more collaborative university environment by connecting users with people sharing their academic and personal interests.
What it does
During the onboarding process, users input the classes they are currently enrolled in, clubs and organizations they are involved in, and their interests, all of which is used to match users with others of similar interests. Users are then prompted to enter a short bio about themselves.
After a user is fully onboarded, they can then swipe through potential teammates. Matching classes, clubs, or interests will be shown to each user, along with the user’s bio. Users can elect to message potential teammates through our chat service and connect with them, but if they are not interested then they can continue swiping through their matches. Once a user messages a potential teammate, the conversation shows up in the inbox page. This is also where users can message specific users on the platform to get to know them better, learn from them, and schedule in-person meetings.
How we built it
The user experience makes or breaks an application, which is why we started by designing the flow of our app before thinking about anything else. We used Figma to create wireframes of the UI and develop an experience that is simple and intuitive to use. Using the UX flow we created in Figma, we designed our database in Firestore. In addition, we used Firebase’ authentication solution to manage users. We set up a domain restriction that only allows users with a .edu email to create an account on the app and thus ensure all users are students. This is one of our intended security measures for this app. We implemented the app using Swift and built the frontend using SwiftUI.
The matching algorithm has three parameters: a user’s courses, organizations, and interests. Other users on the platform are given a score from 0 to 1 relative to the current user. A score of 0 means that the two users have nothing in common; a score of 1 is a perfect match where two users have everything in common. This algorithm is run for all users on the platform, returning the list of users with a score greater than 0. This list is then sorted from highest score to lowest and is then displayed to the user.
Challenges we ran into
Implementing our app was a challenge. While every member of our team is familiar with Swift, we had varying levels of experience with the language. In addition, implementing the database was a particularly laborious task as we needed to make sure that all of the collections were properly related. It took extensive testing in Swift to ensure that this was the case. Our team also has limited experience with UX and UI design, and we ended up going through multiple iterations of our design to ensure a positive user experience.
Accomplishments that we’re proud of
Despite our team’s overall lack of experience with Swift, we created an experience that we can be proud of. Given the time constraint, we are glad that we were able to finish the app.
What we learned
We learned a lot about UX and UI design, Firebase, and Swift.
What’s next for teammate
We want to expand Teammate to other institutions. We want to grow our user base and improve our matching algorithm based on user feedback. In addition, we want to implement a study room finder and virtual meeting service to streamline the process of finding teammates and meeting with them.

Log in or sign up for Devpost to join the conversation.