Inspiration

UW Link is a full-stack web application that provides a platform for Waterloo students to connect socially. Especially after the pandemic, when everything is finally reopening, we'd like to encourage students to go out and meet new or older people who share similar interests with them.

What it does

After creating an account with a valid username and email address, users will be able to browse all the events that other Waterloo students have posted. Events can include video game sessions, sports tournaments, study buddies, connecting people for side projects, etc. When a user finds an exciting event, they'll be able to join it. They can also host events and advertise them on the website. The app will also allow users to search for fascinating events and view others' profiles to see which events they'll participate in.

How we built it

The login and registration are built with HTML forms to input data, and it's connected to MongoDB for storage. The user authentication is made secure with werkzeug.security. Once users are logged in, they can browse, create, join, and leave events using our customed APIs. All the updates are sent to MongoDB. The backend features, such as searching for an event and user profile system, are made with Python, Flask, and WTForms. Most of the frontend is built using HTML, CSS, and Javascript.

Challenges we ran into

Our search and search results pages have different routes; therefore, we ran into difficulties passing the retrieved data from search to results. We also ran into some pagination problems since the built-in Flask pagination function could not be applied to the search results page. The events must be filtered and put into a list before paginating. As a result, we wrote the pagination algorithms ourselves to bypass this issue.

Accomplishments that we're proud of

  • Built our first web application that's connected to a MongoDB database
  • Completed modules of the project individually integrated each part together and polished it as a team
  • Responsive feed page
  • User profiles are generated dynamically
  • Customized the search function and the pagination feature
  • Deployed it ;)

What we learned

We learned a lot while building this project and everyone developed a profound experience of the software development life cycle. We gained experience using Flask to create a web application and connect it to a MongoDB database. We became more familiar with HTML/CSS and javascript since our frontend didn't use a template. Lastly, we learned about application development using Heroku.

What's next for UW-Link

After the project showcase, we plan to implement an email confirmation feature to validate that the students registered with their actual email. This way, we can send out event reminders to their emails when an event is happening. We are also looking into creating a friends feature, so the feed page can recommend to users the events that their friends have joined.

Share this project:

Updates