MCC Scheduler
A calendar aggregator for UO Multicultural Center student orgs — officers sync their Outlook calendars once, students browse every MCC event in one place and subscribe to personalized ICS feeds filtered by club or type. Deployed and in active use.

Overview
MCC Scheduler is a calendar aggregator for the University of Oregon Multicultural Center student organizations. Event data for the MCC's 30+ student orgs was fragmented across as many calendars; officers now sync their Outlook calendars once, and students browse all MCC events in a single place and subscribe to personalized ICS feeds filtered by club, event type, or any combination — so their own calendar app stays up to date automatically.
I led the 4-person team as the capstone for CS 422: Software Methodology (Winter 2026) — and I had an unusual vantage point on the problem: I've served as the MCC's External Lead since 2024, so the fragmentation this solves was my day job. It was built as a real deployment rather than a class exercise: custom domain and email, handed off to MCC staff, and in active use by a base of 500+ students and 30+ administrators with sub-200ms response times and a framework for ongoing performance monitoring.
Architecture
A TypeScript monorepo, deployed across two hosts:
frontend/— a Vite + React 18 + Tailwind SPA (Vercel), the browse-and-subscribe UI.server/— an Express REST API plus an ICS sync cron (Render):node-icalparses each club's Outlook feed into a normalized Postgres schema, andical-generatorexports the filtered subscription feeds students consume.- Supabase (PostgreSQL, 3NF) for storage; Resend for transactional email (account approval, password reset).
The repo also carries an Obsidian-style docs wiki (docs/) and operational runbooks
(plans/) for deployment and club-officer onboarding.
Roles
Club officers connect a calendar and manage their org; students discover events and build a personalized subscription; the feed stays live without any manual re-import.
In production
Live at uomcc.org — a spring-term month on the dashboard, every event synced straight from the orgs' own Outlook calendars.

