Inspiration

To many of us in the group, the gym is like a second home to us. We've had friends who we've been gym partners for a few years here at Virginia Tech, and they have complained about finding new people to workout with outside of college. They find the process daunting, and they don't feel as safe or as motivated to go work out alone. Some of our friends have issues with going to the gym as a woman, as they are not as comfortable going alone, as compared to having a friend, or a group of friends to go with.

SwoleMates was made with this idea in mind. For many people, going to the gym alone or even attempting to find friends in new places is dreadful. Since physical exercise is so important, finding others who share similar goals is incredibly empowering and motivating.

What it does

The application is an Android App that has a user login system, where users are able to sign in and customize their profile. This includes adding their name, age, etc.. They are also able to choose their interests from a preset list of physical activities. Furthermore, they are then able to set their preferences in what they are looking for in a gym partner. From there, the user is able to look at a variety of potential users in the area. From this list of users, they are able to like potential people on the app and hide others they aren't as interested in. Once a match has been found, the chat feature allows users to communicate, so they are able to plan the logistics of their workout!

How we built it

We primarily used Android Studio to create and customize the general UI for the project, along with using Kotlin as the language for the back-end. We split into two teams of two, where one person heading the team was one who had experience with mobile development and Android development, and the other who was new to the technology and stack. We planned out a general UML diagram of the back-end alongside with a conceptual idea of what the front-end may look like, and subdivided the work amongst ourselves.

Issues like version control were handled by using different branches between the two groups of paired programming, and it worked well for the most part.

Challenges we ran into

We unfortunately ran into a plethora of challenges throughout the development process for SwoleMates. The biggest pain point for us had to be Android Studio and the general unfamiliarity we had with it. Even for the groupmates more experienced with Kotlin and Android development, we had encountered various problems on setup with Android Studio, where certain packages were loaded or installed incorrectly, or extraneous imports would block compilation of the entire project.

Another issue we encountered was handling version control with Android Studio. The IDE had provided a way to handle version control with Git through their Jetbrains API for logging in, and their interface on the program to handle branches and merging. The problem stems from the general lack of documentation we encountered when setting up Git. The JetBrains API to access our Git accounts also was rather buggy, and quite literally didn't work for many of us. We ended up having to use workarounds like using Git through the terminal or finding odd tricks with SSH and Token options that Github provided to make the UI interact correctly.

Accomplishments that we're proud of

Several of us have had no experience with mobile app development, so we are proud that we were able to familiarize ourselves with Android Studio and Kotlin relatively quickly. Additionally, we had set out 5 milestones at the very beginning of the hackathon that designated different levels of implementation. We were able to complete 4 of them successfully, which is more than we had anticipated.

What we learned

For many of us, it was the first time we've ever programmed with Kotlin and interacted with Android Studio. A few of the group members have had previous experience, but I think we had all learned a great deal about Kotlin, the XML objects for the front end of the application, and how to connect these pieces together to form a working UI.

For the people in the group who haven't ever used Kotlin or developed an Android application, this was an incredible experience and we are quite interested in pursuing Android, and Mobile development further!

What's next for SwoleMates

Fixing up the back-end, implementing a robust sign-in system where we utilize Google's Firebase services to handle account generation and sign-in. Revamping the matching system to handle out-of-scope ideas like location ranging and filtering based on age or gender. Creating the chat system.

Built With

Share this project:

Updates