Virtual Wheel of Fortune Webpage

Job ID: 40153995

Budget: $30 – $250 USD

I need a straightforward web page that can run full-screen on a large TV during trade shows and let visitors spin a virtual “Wheel of Fortune” for a discount on our PrestaShop store. The look should be professional and minimalistic—clean lines, clear typography, no clutter.

Core flow
• Start screen: full-screen wheel and a prominent “Spin” button.
• Wheel animation: smooth spin, then stop on a segment that shows a discount percentage (e.g., “-20%”).
• Result screen: display the prize, then immediately show a short form with name, email, and an opt-in checkbox for GDPR consent.
• After submission: backend sends a plain-text email containing a one-time discount code that matches the prize.
• Auto-reset so the next visitor sees the initial “Spin” screen without manual refresh.

Technical expectations
• Wheel draw logic lives on the server so probabilities can’t be gamed.
• Limit one valid spin per email address.
• Assume the trade-show internet can be slow or flaky—cache assets locally and queue any failed requests for retry.
• Must run in any modern browser at Full HD and 4K.
• Stack is flexible (vanilla HTML/CSS/JS with a lightweight backend in Node.js, PHP, or Python is fine); simplicity and stability matter more than trendy frameworks.

Deliverables
1. Front-end files (HTML, CSS, JS) optimized for full-screen display.
2. Backend service with API endpoints for spin, form submission, and email dispatch (include simple probability table for each discount percentage).
3. Email template (plain text) and mailing script tied to PrestaShop coupon generation or an existing SMTP account.
4. Read-me with deployment and configuration steps.
5. Quick test plan so I can verify one-spin-per-email and offline resilience.

Deadline is one week, so please factor that into your approach. If you have previous examples of similar interactive kiosks or game mechanics, feel free to share them—otherwise a concise outline of your implementation plan will be perfect.