[{"data":1,"prerenderedAt":148},["ShallowReactive",2],{"portfolio-en-chicken-x-competition":3},{"id":4,"title":5,"body":6,"client":132,"date":133,"description":134,"extension":135,"featured":136,"meta":137,"navigation":136,"order":138,"path":139,"seo":140,"stem":141,"tags":142,"thumbnail":94,"__hash__":147},"portfolio_en\u002Fportfolio\u002Fen\u002Fchicken-x-competition.md","Chicken X and Friends — Trade-show competition platform",{"type":7,"value":8,"toc":123},"minimark",[9,14,18,22,69,73,84,88,95,101,105,111,117],[10,11,13],"h2",{"id":12},"overview","Overview",[15,16,17],"p",{},"For trade shows, Million Games wanted a competition station where visitors could play Chicken X and Friends for 15 minutes and chase the top of the leaderboard. We built the whole competition system — registration form, game-session handling, live leaderboard, and admin panel — capturing participant scores and contact details for prize draws and marketing follow-up.",[10,19,21],{"id":20},"what-the-system-does","What the system does",[23,24,25,33,39,45,51,57,63],"ul",{},[26,27,28,32],"li",{},[29,30,31],"strong",{},"Registration"," — Name, company, email with built-in validation and a GDPR marketing opt-in",[26,34,35,38],{},[29,36,37],{},"Game integration"," — Automatically creates game sessions via Million Games' launcher API",[26,40,41,44],{},[29,42,43],{},"Score tracking"," — Background polling fetches results directly from the game's API",[26,46,47,50],{},[29,48,49],{},"Live leaderboard"," — Real-time rankings with pagination and auto-refresh",[26,52,53,56],{},[29,54,55],{},"Duplicate prevention"," — The same email redirects to an active session instead of creating a new one",[26,58,59,62],{},[29,60,61],{},"Admin panel"," — Password-protected view to manage, sort, edit, and delete entries",[26,64,65,68],{},[29,66,67],{},"Self-contained build"," — A single .NET binary serves both the API and the frontend, trivial to deploy on a show-floor laptop",[10,70,72],{"id":71},"competition-rules","Competition rules",[23,74,75,78,81],{},[26,76,77],{},"15 minutes to compete",[26,79,80],{},"Last 10 rounds count toward your score",[26,82,83],{},"Highest score wins!",[10,85,87],{"id":86},"the-platform","The Platform",[15,89,90],{},[91,92],"img",{"alt":93,"src":94},"Registration page with the Million Games logo, the Chicken X and Friends title, and a form for name, company, email and a GDPR marketing opt-in — on a top-down in-game background","\u002Fimages\u002Fportfolio\u002Fchicken-x-competition-register.png",[15,96,97],{},[91,98],{"alt":99,"src":100},"Live leaderboard showing top-ranked players, companies and scores over the same in-game background as the registration page","\u002Fimages\u002Fportfolio\u002Fchicken-x-competition-leaderboard.png",[10,102,104],{"id":103},"tech-stack","Tech stack",[15,106,107,110],{},[29,108,109],{},"Frontend:"," Vue 3, TypeScript, Nuxt UI 4, Tailwind CSS 4, Vite, Valibot",[15,112,113,116],{},[29,114,115],{},"Backend:"," .NET 9, C#, Entity Framework Core, SQLite",[15,118,119,122],{},[29,120,121],{},"Deploy:"," Self-contained .NET binary — no external database or runtime required on the show-floor laptop",{"title":124,"searchDepth":125,"depth":125,"links":126},"",2,[127,128,129,130,131],{"id":12,"depth":125,"text":13},{"id":20,"depth":125,"text":21},{"id":71,"depth":125,"text":72},{"id":86,"depth":125,"text":87},{"id":103,"depth":125,"text":104},"Million Games AB","2025-11-01","Trade-show competition for the Million Games title Chicken X and Friends — registration, live leaderboard and admin panel in a single self-contained build.","md",true,{},5,"\u002Fportfolio\u002Fen\u002Fchicken-x-competition",{"title":5,"description":134},"portfolio\u002Fen\u002Fchicken-x-competition",[143,144,145,146],"vue","typescript",".net","igaming","7PS0mvP6M4dtjVS8a4Hb3yaOquTjnBqKI315iN0mtG0",1776248145112]