[{"data":1,"prerenderedAt":467},["ShallowReactive",2],{"/projects/cool-cats-event":3},{"id":4,"title":5,"body":6,"description":433,"extension":455,"featured":456,"meta":457,"navigation":456,"path":458,"seo":459,"sortOrder":460,"stem":461,"tagline":462,"tags":463,"__hash__":466},"projects/projects/cool-cats-event.md","Cooltopia - Cool Cats NFT",{"type":7,"value":8,"toc":432},"minimark",[9,59,63,69,78,81,86,89,92,94,98,167,169,173,176,179,181,185,188,191,218,221,223,227,232,243,247,258,262,273,277,288,292,303,305,309,323,327,349,353,369,373,395,397,401,421,423,427,430],[10,11,26,27,26,36],"div",{"className":12},[13,14,15,16,17,18,19,20,21,22,23,24,25],"mb-8","flex","items-center","gap-4","rounded-xl","border","border-slate-200","bg-white/60","px-4","py-3","backdrop-blur","dark:border-slate-800","dark:bg-slate-950/50","\n  ",[28,29],"img",{"src":30,"alt":31,"className":32},"/images/logos/coolcats.png","Cool Cats",[33,34,35],"h-12","w-auto","object-contain",[10,37,41,42,41,51,26],{"className":38},[14,39,40],"flex-col","leading-tight","\n    ",[43,44,50],"span",{"className":45},[46,47,48,49],"text-xs","font-medium","text-slate-500","dark:text-slate-400","\n      Client\n    ",[43,52,58],{"className":53},[54,55,56,57],"text-sm","font-semibold","text-slate-900","dark:text-slate-100","\n      Cooltopia 2022 - New York, USA\n    ",[60,61],"stack-chips",{":items":62},"[\"Node.js\", \"NestJS\", \"MongoDB\", \"RabbitMQ\", \"MQTT\", \"SendGrid\", \"Vue.js\", \"Quasar Framework\", \"Electron\", \"Ionic Vue\", \"JavaScript/TypeScript\"]",[64,65],"screenshot",{"caption":66,"src":67,"type":68},"Application layer powering NFC check-ins, game participation, scoring, and reward redemption during the Cooltopia live event","/images/projects/cooltopia/overview.mp4","video",[70,71,74],"callout",{"title":72,"type":73},"Context","info",[75,76,77],"p",{},"Cooltopia was a large physical Cool Cats NFT event held in July 2022 at Center415 in New York City (30,000 sq ft venue). The event operated as an immersive mini amusement park where each attendee used an NFC-enabled bracelet to access activities, track points, and redeem rewards across the venue.",[79,80],"hr",{},[82,83,85],"h2",{"id":84},"overview","Overview",[75,87,88],{},"Cooltopia was a connected physical-to-digital event system where attendees used NFC bracelets to start games, track performance, accumulate points in real time, and redeem merchandise or food rewards. The platform acted as the operational application layer for participant identity, scoring, activity tracking, and reward redemption across multiple stations in the venue.",[75,90,91],{},"I built the full application layer of the system, including backend APIs, scoring logic, participant tracking, totem interfaces, a reward redemption app, and an event CMS. The result was a real-world event platform designed to support high traffic, distributed interactions, and real-time state consistency during live operations.",[79,93],{},[82,95,97],{"id":96},"my-role","My Role",[99,100,102],"contribution",{"role":101},"Full-Stack Engineer",[103,104,105,124,127,130,133,136,143,157,164],"ul",{},[106,107,108,109,113,114,113,117,120,121],"li",{},"Designed and implemented backend APIs using ",[110,111,112],"code",{},"Node.js",", ",[110,115,116],{},"NestJS",[110,118,119],{},"MongoDB",", and ",[110,122,123],{},"TypeScript",[106,125,126],{},"Built participant identity and activity tracking flows based on NFC bracelet scans",[106,128,129],{},"Implemented game scoring logic, including time-based scoring and accumulated points management",[106,131,132],{},"Ingested score data from multiple sources, including external digital game systems",[106,134,135],{},"Stored participant activity history and synchronized score/points updates across the event system",[106,137,138,139,142],{},"Integrated backend workflows with event devices and partner systems, including treasure chest integration via ",[110,140,141],{},"MQTT"," and API-based integrations for totems and other event flows",[106,144,145,146,149,150,149,153,156],{},"Built totem frontend applications (",[110,147,148],{},"Vue.js"," + ",[110,151,152],{},"Quasar",[110,154,155],{},"Electron",") for participant interactions",[106,158,159,160,163],{},"Built a separate reward redemption app (",[110,161,162],{},"Ionic Vue",") with real-time point deduction and backend sync",[106,165,166],{},"Built an event CMS for participant management, activity administration, email sending, and manual point adjustments",[79,168],{},[82,170,172],{"id":171},"problem","Problem",[75,174,175],{},"The event needed a reliable application system to coordinate participant activity across many physical stations in real time. Each attendee used a single NFC bracelet identity across games, scoring stations, and reward redemption, so the platform had to maintain consistent participant state while handling high event traffic and multiple score sources.",[75,177,178],{},"The engineering challenge was to connect physical interactions and digital systems into one operational workflow without delays, double counting, or point inconsistencies during a live event.",[79,180],{},[82,182,184],{"id":183},"solution","Solution",[75,186,187],{},"I built a full-stack event platform centered on NFC-based participant identity and real-time point tracking. The backend handled participant state, score ingestion, scoring rules, activity history, and redemption logic, while the frontend applications handled participant-facing totems, reward redemption interactions, and event operations through a CMS.",[75,189,190],{},"The system was designed to support live-event reliability by:",[103,192,193,196,199,202,205],{},[106,194,195],{},"Using a centralized participant record tied to NFC bracelet scans",[106,197,198],{},"Processing score updates from time-based activities and external digital games",[106,200,201],{},"Synchronizing points and redemption state across totems, reward devices, and admin tools",[106,203,204],{},"Separating operational interfaces by role (participant totems, redemption app, CMS)",[106,206,207,208,210,211,149,214,217],{},"Integrating treasure chest communication (",[110,209,141],{},") and participant email workflows (",[110,212,213],{},"RabbitMQ",[110,215,216],{},"SendGrid",") alongside API-based event integrations",[75,219,220],{},"This approach made the platform the operational brain of the event, connecting physical installations and digital experiences through a shared application layer.",[79,222],{},[82,224,226],{"id":225},"application-features","Application Features",[228,229,231],"h3",{"id":230},"nfc-bracelet-identity-participant-tracking","NFC Bracelet Identity & Participant Tracking",[103,233,234,237,240],{},[106,235,236],{},"NFC scan-based participant identification across games, activities, and reward redemption",[106,238,239],{},"Centralized participant profile and points tracking across the venue",[106,241,242],{},"Full activity history storage for auditing and operational support",[228,244,246],{"id":245},"totem-applications-vue-quasar-electron","Totem Applications (Vue + Quasar + Electron)",[103,248,249,252,255],{},[106,250,251],{},"Participant-facing totem interfaces to start and finish activities",[106,253,254],{},"Real-time display of results and accumulated points",[106,256,257],{},"Fast, simple interactions designed for high throughput during live event traffic",[228,259,261],{"id":260},"scoring-score-ingestion-system","Scoring & Score Ingestion System",[103,263,264,267,270],{},[106,265,266],{},"Time-based game scoring logic managed in the backend",[106,268,269],{},"Score ingestion from external digital games and integrated partner systems",[106,271,272],{},"Point accumulation updates synchronized to participant records and frontends",[228,274,276],{"id":275},"reward-redemption-app-ionic-vue","Reward Redemption App (Ionic Vue)",[103,278,279,282,285],{},[106,280,281],{},"Separate redemption application for merchandise and food selection",[106,283,284],{},"NFC scan to identify participant and fetch current points",[106,286,287],{},"Automatic point deduction and real-time backend synchronization during redemption",[228,289,291],{"id":290},"event-cms-operations","Event CMS & Operations",[103,293,294,297,300],{},[106,295,296],{},"CMS for participant management and activity administration",[106,298,299],{},"Email sending workflows for event operations and communication",[106,301,302],{},"Manual point adjustment tools for operational corrections when needed",[79,304],{},[82,306,308],{"id":307},"technical-highlights","Technical Highlights",[310,311,314],"decision",{"title":312,"tradeoff":313},"Using the right integration path for each event workflow","Multiple integration patterns → clearer responsibilities and more reliable operations",[75,315,316,317,319,320,322],{},"I used ",[110,318,141],{}," specifically for the treasure chest integration, while totems and other event interactions used normal API-based communication. ",[110,321,213],{}," was used for asynchronous participant email workflows. This separation matched the runtime needs of each integration and kept the system easier to reason about during live operations.",[228,324,326],{"id":325},"backend-application-layer-nestjs-mongodb","Backend Application Layer (NestJS + MongoDB)",[103,328,329,332,335,338],{},[106,330,331],{},"API design for participant tracking, activities, scoring, redemption, and CMS operations",[106,333,334],{},"Centralized participant state management tied to NFC bracelet identity",[106,336,337],{},"Storage of detailed activity history and accumulated points",[106,339,340,341,343,344,149,346,348],{},"Integration points for external digital game systems, API-based event clients (including totems), treasure chest communication (",[110,342,141],{},"), and email workflows (",[110,345,213],{},[110,347,216],{},")",[228,350,352],{"id":351},"real-time-event-integration-consistency","Real-Time Event Integration & Consistency",[103,354,355,358,363,366],{},[106,356,357],{},"Multi-source score ingestion (time-based games + external game APIs)",[106,359,360,362],{},[110,361,141],{}," integration for the treasure chest physical interaction workflow",[106,364,365],{},"Consistency of points and redemption state across distributed devices and apps",[106,367,368],{},"Cross-team integration with digital game systems, totem/client API flows, and physical installation workflows",[228,370,372],{"id":371},"frontend-applications-totems-redemption-app-cms","Frontend Applications (Totems, Redemption App, CMS)",[103,374,375,384,389,392],{},[106,376,377,149,379,149,381,383],{},[110,378,148],{},[110,380,152],{},[110,382,155],{}," totem interfaces optimized for event-floor usage",[106,385,386,388],{},[110,387,162],{}," redemption app for staff-operated reward and food redemption flows",[106,390,391],{},"Admin CMS interfaces supporting live event operations and exception handling",[106,393,394],{},"UI behavior designed for quick interactions, clear feedback, and continuous operation",[79,396],{},[82,398,400],{"id":399},"what-this-project-demonstrates","What This Project Demonstrates",[103,402,403,406,409,412,415,418],{},[106,404,405],{},"Full-stack ownership of a real-world event platform application layer",[106,407,408],{},"Real-time systems engineering for live operational environments",[106,410,411],{},"NFC-based identity management and physical-to-digital workflow integration",[106,413,414],{},"Backend architecture for distributed scoring, participant tracking, and redemption logic",[106,416,417],{},"Cross-team technical integration with digital game teams and physical installation teams",[106,419,420],{},"Event-scale reliability and state consistency across multiple apps and devices",[79,422],{},[82,424,426],{"id":425},"impact","Impact",[75,428,429],{},"Cooltopia demonstrates full-stack engineering ownership in a high-scale live event environment. The system successfully connected NFC identity, scoring, participant tracking, and reward redemption across physical stations and digital applications, enabling the event to operate as a unified gamified experience in real time.",[79,431],{},{"title":433,"searchDepth":434,"depth":434,"links":435},"",2,[436,437,438,439,440,448,453,454],{"id":84,"depth":434,"text":85},{"id":96,"depth":434,"text":97},{"id":171,"depth":434,"text":172},{"id":183,"depth":434,"text":184},{"id":225,"depth":434,"text":226,"children":441},[442,444,445,446,447],{"id":230,"depth":443,"text":231},3,{"id":245,"depth":443,"text":246},{"id":260,"depth":443,"text":261},{"id":275,"depth":443,"text":276},{"id":290,"depth":443,"text":291},{"id":307,"depth":434,"text":308,"children":449},[450,451,452],{"id":325,"depth":443,"text":326},{"id":351,"depth":443,"text":352},{"id":371,"depth":443,"text":372},{"id":399,"depth":434,"text":400},{"id":425,"depth":434,"text":426},"md",true,{},"/projects/cool-cats-event",{"title":5,"description":433},4,"projects/cool-cats-event","Full-stack NFC-powered event platform for a large-scale interactive live experience",[112,116,119,213,141,216,148,464,155,162,465],"Quasar Framework","JavaScript/TypeScript","CBFwZdCRo82J4LLR--likd4HNq8m47JjdfgTeCxDh3Q",1778044212349]