RU My Valentine

A Rutgers-only matching platform using secure auth and compatibility scoring to connect students at scale.

Users 2,000+ Rutgers students
Search Performance < 400ms latency
Availability 99.9% uptime
Matching Model 70-dimensional embeddings

About the Project

Built with a team of five, RU My Valentine combines Rutgers-only identity verification with weighted compatibility scoring to create meaningful student matches.

Key Accomplishments

  • 💝 Implemented Google SSO with OAuth 2.0/OIDC for secure ScarletMail authentication
  • 🧮 Built weighted-vector compatibility algorithm serving 2,000+ Rutgers users
  • ⚡ Architected scalable matching platform with 70-dimensional embeddings achieving <400 ms search latency
  • 🎯 Achieved 99.9% uptime through robust containerized infrastructure

Technical Stack

Backend & Data Processing

  • Python (FastAPI)
  • Pydantic
  • WebSockets
  • pytest

Database & Persistence

  • PostgreSQL (via Neon serverless)
  • SQLAlchemy ORM
  • Redis for caching & sessions

Infrastructure

  • Docker & Docker Compose
  • GitHub Actions CI/CD automation
  • Render.com hosting
  • OAuth 2.0/OIDC authentication

Architecture & Key Features

🔐 Secure Google OAuth2 Authentication

OAuth 2.0/OIDC with PKCE, ID token verification, and Rutgers-domain checks restrict platform access to verified students.

🧮 Weighted-Vector Compatibility Algorithm

Questionnaire responses are encoded into 70-dimensional vectors and scored with weighted similarity to rank compatible matches.

⚡ High-Performance Search Infrastructure

Optimized embedding storage and Redis caching to keep matchmaking fast under load while sustaining sub-400ms query times.

🚀 Containerized Deployment with Docker & CI/CD

Services are containerized for parity and deployed with CI/CD automation that runs tests, builds images, and ships updates reliably.

💬 Real-Time WebSocket Communication

WebSocket support enables low-latency match notifications and live communication flows between users.

📊 Scalable Database Architecture with Neon

Neon PostgreSQL + SQLAlchemy provides scalable persistence while Redis offloads high-read paths to keep response times consistent.