🎅 Secret Santa Web Application

A festive web application for Secret Santa gift exchanges with encrypted assignment links. Note: the giver/receiver assignment and link generation is done separately; this val only reveals who the giver is matched with. See Technical Details for more.

Features

  • 🎄 Splashy Christmas-themed UI with falling snowflakes and festive animations
  • 🔐 Encrypted assignment links for secure Secret Santa assignments
  • 🎁 Interactive gift reveal - click the gift box to discover your assignment
  • 📱 Responsive design that works on all devices
  • ✨ Celebration effects when the assignment is revealed

How It Works

  1. Welcome Page (/) - Shows a festive landing page for users without a valid token
  2. Assignment Page (/{encrypted-token}) - Decrypts the token and shows:
    • A personalized greeting to the giver
    • An interactive gift box that reveals the receiver when clicked
    • Festive animations and celebration effects

Technical Details

The giver/receiver pairs and encrypted link can be generated via this code or the moral equivalent.

Expected Token Data Structure

The decrypted token should contain:

{ "giver": "John Doe", "receiver": "Jane Smith" }

Files

  • main.ts - Main HTTP handler with HTML page generation
  • utils.ts - Encryption/decryption utilities
  • favicon.svg - Gift box favicon for the site
  • README.md - This documentation

Environment Variables

  • ENCRYPTION_KEY - Hex-encoded encryption key for AES-GCM decryption