Group 39 - Flask Newbs

Inspiration

Despite social media, students always complain about how they can't seem to meet new people in school. Especially with two or more years of online classes, a lot of us find it really hard to meet people in person again. Overall, we have felt more isolated and less socially healthy than before, leading to poor mental health. Traditional social media platforms are no help either. With likes, follows, etc., people often find social media as a massive drain on their mental health despite the "social" aspect of it. UniMeetups can help us mediate our social life as pandemic restrictions start loosening. And overall, provide a casual and genuine place to connect with others.

What it does

UniMeetups is a casual, social-lite platform that doesn't entail the same social pressures and anxiety as a normal social platform with likes or followers. Instead, it's all about building genuine connections between university students.

Users can create a profile, enter their social media, interests, and a short description about themselves. We use the Google-Places and Geocoder API to automatically show the user their closest schools which they can choose from. UniMeetups will then match them with other students who have similar interests at their school. Then they can request to meet up with them, which when accepted, will show the contact information, social media and networking sites that the user has provided. Users can also send email messages through the UniMeetups platform. If the user wants to socialize more publicly, there is a "Public Meetups" list that shows public meetups created by other users at their school. The user can join public meetups, or create their own public meetup.

How we built it

We built UniMeetups with python and flask for the server-side implementation. For the front end, we used bootstrap css. In order to host our project, we used replit which allowed us to efficiently collaborate and peer code from a distance.

Challenges we ran into

It was our first time utilizing flask for a web project, so the whole project was a learning project. We didn't realize how many issues we would have dealing with side effects and state changes. Our programming made our project hard to understand at times, especially since it was our first time utilizing flask. In the future, we will be more careful implementing functions with implicit side-effects and consider using a functional programming paradigm.

Dealing with the routing, and POST requests were particularly challenging for us, especially as we wanted to load our webpages dynamically based on the user, user's school, user's meetup requests, user's classmates, and the status of public meetups. In the end, Jinja and Flask proved to be more intuitive than we realized! After a lot of hair pulling.

Accomplishments that we're proud of

We're proud that we created a working web application with it's core functionality intact despite having its fair share of bugs. It's something that we feel can actually be useful despite only being created within 24 hours.

What we learned

We learned the basics of Flask, Python, Bootstrap CSS, and how to deal with state changes and side effects. These skills allowed us to create a dynamic web app that allows users a high level of interactivity with others. Apart from technical skills, we also learned how to work as a team, and how to effectively utilize peer programming. We have definitely become more confident in our skills as programmers and as professionals.

What's next for UniMeetups

Next, we would like to host UniMeetups on a cloud service such as AWS EC2. Replit was an amazing tool for us to prototype, and for testing. However, it lacks the scalability that a host such as AWS will provide. We would like to add "club" functionality which allows users to form clubs related to their interests, which can then host private events. Furthermore, we would like to add chatting features One area where UniMeetups is lacking, is the lack of visual elements such as a logo, or support for images on meetups events. We would like to expand in this area further.

Known Bugs

Met with "Internal Server Error" when first entering site. Clearing your cookies will fix this issue. Sometimes, database changes occur after page load which leads to unexpected states. Reloading the page after a few seconds will fix this issue. Depending on the routing of your internet service, the geolocation that we are provided may not be 100% accurate. Use the "closest schools" dropdown menu to select your school from the list of the closest. Unfinished sign up processes lead to unpredictable behaviour.

Share this project:

Updates