Inspiration

Our project FirstMate was inspired by the social struggles many universities students face, especially during the transition into campus life. We wanted to build something that reduces the anxiety of making new friends by using existing routines—like class schedules and hangout spots—to foster organic, meaningful connections.

What it does

FirstMate reads from a student's calendar and finds any overlap with other students. The user can then see their profiles and any opportunities to meetup with these people, prioritising those who share the same classes. If 2 users like each other, they match and can then share each other's details and organise a meetup at a time specified by our website.

How we built it

Our stack for the frontend was: Python, PyHTML and Flask. Using PyHTML allowed us to implement HTML features as well as a CSS style sheet. We mainly communicated through discord, and had a shared GitHub repository where we would share our code.

Challenges we ran into

The main challenge that we ran into was working with the ICal links, where we would download the ICal link and parse through the file in order to generate the meetup opportunities. In the end, we managed to get the relevant information from UNSW classes using a student's ICal link through a collaborative effort.

Accomplishments that we're proud of

We are really proud of our implementation of our calendar, specifically how it is sorted from the distance between buildings which allows students to organise meetings where they are close together. To accomplish this, we applied the Haversine formula and worked with geospatial data on the UNSW campus in order to find the shortest distance between two buildings.

What we learned

The main thing we learned as a team was the importance of managing Python dependencies, where we had many libraries/dependencies that we imported. We also learned how small errors in the logic (time/location mismatches) can make or break our products usefulness.

What's next for First Mate

Our main plan for features in the future is to implement a chatroom on the website where users can organise their meetups from there.

Built With

Share this project:

Updates