Inspiration
The conversation went like this:
"Who's up for badminton this Friday?" "Sorry, swamped with assignments." "Same, midterm season." "Maybe reading week?"
Reading week never comes.
The cohort system at Waterloo is genuinely special. You build real friendships fast with people who are going through the exact same thing as you. But it is also a bubble. Everyone you know is in your program, buried in the same problem sets, and by the time the semester settles down you have run out of ways to meet anyone new.
Plork started as a fix for that one badminton game that never happened, and grew into a platform for finding your people beyond your cohort, whatever that looks like for you.
What it does
Plork is a teammate-matching platform built specifically for UW engineering students. It has two modes: WORK mode lets you post side projects with specific role slots, and PLAY mode that lets you find partners for your side quest.
How we built it
Frontend: React with a custom design system built on IBM Plex Mono and Bebas Neue, with a parchment-toned color palette
Backend: Node.js + Express REST API with endpoints for users, posts, and applications
Database: MySQL with three core tables — users, posts, and applications — with JSON fields for skills, interests, and terms
Auth: bcrypt password hashing with email-based login
Deployment: Render (frontend static site + backend web service) with PlanetScale for the hosted MySQL database
Matchmaking: Compatibility is calculated using two algorithms working at different stages. Jaccard similarity compares a student's skills against a role's requirements to generate the match percentage shown during browsing. Once applications come in, Gale-Shapley stable matching ranks applicants for the founder, surfacing the most mutually compatible candidates rather than sorting by who applied first.
Challenges we ran into
This was our first time building a full-stack application from scratch. We had used React in small projects before but had never touched a backend, a database, or an API. Learning Express, MySQL, and how the two actually talk to each other was a steep curve. One of our biggest headaches was keeping the frontend and backend separate. Early on we accidentally mixed server-side code into the React app, which caused webpack to throw dozens of errors trying to bundle Node.js modules that have no business running in a browser. Untangling that cost us a few hours. We also ran into MySQL authentication issues locally that took longer than we would like to admit to debug, and figuring out environment variables, CORS, and how to connect a hosted database to a deployed backend was a crash course in all the stuff tutorials skip over.
Accomplishments that we're proud of
We're proud that Plork is actually full-stack and database-connected — not just a prototype with hardcoded data. Users can register, log in, post real projects, and submit real applications that persist in a database. The co-op overlap calendar visualization is something we think is genuinely novel for a UW tool. We're also proud of the design — it doesn't look like a hackathon project.
What we learned
A lot of this project was our first. Most of us never used a database before and are mainly frontend developers. As such, every bug that occurred was a learning experience. In particular, we hilariously found out that MySql backend was not compatible with Vercel, our hosting platform of choice.
What's next for Plork
The thing we are most excited to work on is the match algorithm. Right now the percentages are placeholders. What we want to build is something that actually understands compatibility — weighing skill overlap, schedule alignment, and commitment level, and getting smarter the more people use it. Getting that nuance right is a real problem and one we genuinely want to solve. We also want to implement authentication system so that you can only log in with a uwaterloo.ca email.
But the most important thing we want to do next is keep going.
Plork was built to solve the problem of good things not happening because the timing never lines up, because everyone is too busy, because next term never comes. It would feel wrong to let Plork become exactly that.
We are first years who built our first full-stack app in a weekend. Somewhere out there is a second year who needs a badminton partner, a bandmate, a teammate for their solar rover. That is reason enough to keep building.

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