Campus Event Matcher
A service that matches students to campus club events based on stated interests instead of a flat calendar feed.
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
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