Skip to content
SUNSET// Sejong
Back to archive
Component U2Completed

Campus Event Matcher

A service that matches students to campus club events based on stated interests instead of a flat calendar feed.

SoftwareIntermediate2024

Implementation

Clubs post events through a simple form; students set a short list of interest tags once. The matcher ranks upcoming events per student using tag overlap plus a recency-weighted score, and sends a weekly digest email. It replaced a shared spreadsheet that three different clubs were independently maintaining and constantly out of sync with each other.

Architecture

Next.js App Router serves both the club-facing submission form and the student-facing digest preview. Postgres (hosted on Neon) stores events, tags, and subscriptions, accessed through Prisma. A weekly Vercel Cron job computes matches and triggers digest emails via Resend. There's no real-time notification path — everything is batched weekly by design, to avoid becoming another source of noise.

Technologies

Next.jsPostgreSQLPrismaTypeScriptVercel

Known limitations

  • Matching is pure tag-overlap scoring — no collaborative filtering, so cold-start users with few tags get generic results.
  • No mobile app; the web form is usable on mobile but not optimized for it.
  • Club organizers can't edit an event after publishing without emailing an admin — the edit flow was never built.

Members

  • Minji Lee
  • Ethan Yoon

Related projects