Overview
A web application for running and managing sweepstakes competitions, built with Nuxt 4, Supabase, and Stripe. Users can register accounts, submit entries, and view results. The system includes entry validation logic to prevent duplicate submissions, a randomized winner selection algorithm, and a full admin dashboard for managing active sweepstakes, reviewing entries, and publishing results.
Built to be extensible โ multiple sweepstakes can run simultaneously with independent entry pools. Supabase handles auth and the database with row-level security, Nuxt 4 powers the frontend and server routes, and Stripe manages any payment-related flows. The admin dashboard provides full control over competition state, with tools for filtering entries, monitoring participation, and announcing winners.
What I Learned
- Designed a multi-context data model in Supabase to support simultaneous independent sweepstakes with isolated entry pools
- Built a secure, reproducible randomized winner selection process with server-side Nuxt routes
- Created a feature-complete admin dashboard with filtering, pagination, and status management
- Used Supabase row-level security and auth to prevent duplicate submissions and protect entry data
- Learned to think from a product perspective, balancing UX for both participants and admins
Gallery

Entry form

Admin dashboard