Skip to content

LuisSotelo/stream-command-center

Repository files navigation

🎮 LuisHongo: Reverse Auction System

Deployed on Vercel Next.js Twitch

"Turning Gaming into a Gamified Marketplace."

Este proyecto es una plataforma full-stack diseñada para gestionar la dinámica de mi regreso a Twitch. Permite a mis moderadores y a la propia API de Twitch controlar el progreso de los juegos y ajustar dinámicamente el precio de venta de mis juegos físicos en tiempo real.

Es un sistema de subasta inversa en tiempo real diseñado para streams de alto impacto. Los espectadores controlan el precio final mediante interacciones directas en Twitch, sincronizando una publicación de Mercado Libre en el clímax del evento.

🚀 La Dinámica: "Subasta Inversa"

A diferencia de una subasta tradicional donde el precio sube, aquí la comunidad trabaja unida para bajarlo.

Reglas del Juego:

  1. Precio de Salida: La subasta inicia en un precio base (ej. $1,200 MXN).
  2. Mecánica de Descuento: Cada interacción en el chat de Twitch reduce el precio en tiempo real:
    • Suscripción Tier 1: Descuento máximo (impacto alto).
    • Suscripción Prime: Descuento justo (impacto medio).
    • Bits: Descuento proporcional a la cantidad (100, 500, 1000 bits).
  3. Fases de Escalamiento: El sistema detecta el precio y entra en diferentes niveles (Base, Nivel 1, 2, 3 y Modo Final). En cada nivel, los descuentos se vuelven más agresivos, premiando la constancia de la comunidad.
  4. El Clímax: Al finalizar, el bot libera automáticamente el link de Mercado Libre con el precio final alcanzado.

🛠️ Stack Tecnológico

  • Framework: Next.js 14+ (App Router)
  • Database & State: Upstash Redis (Persistencia de datos)
  • Real-time: Pusher (WebSockets para latencia cero entre el Admin y el OBS Overlay).
  • Auth: Auth.js (NextAuth) con el proveedor de Twitch y Role-Based Access Control (RBAC) mediante una White-list de IDs.
  • Animaciones: Framer Motion para una UI fluida y "vibe coder".
  • Deployment: Vercel (Edge Functions).

🛠️ Replicación de Base de Datos (Redis)

Si deseas desplegar tu propia instancia, asegúrate de inicializar las siguientes llaves en tu base de datos Redis:

Llave Tipo Descripción
auction_price String Precio actual (disminuye con interacciones).
auction_status String Estado del sistema (active, paused, finished).
game_progress String Porcentaje visual de la meta (0-100).
ml_access_token String Token temporal de Mercado Libre (Auto-managed).
ml_refresh_token String Llave maestra para renovación de acceso
final_price_achieved String Precio fijo guardado al finalizar la subasta

🏗️ Arquitectura del Sistema

graph TD
    subgraph Clients [Vistas de Usuario]
        A[Landing Page]
        B[OBS Overlay]
        C[Admin Dashboard]
    end

    subgraph RealTime [Sincronización]
        D((Pusher WebSockets))
    end

    subgraph Backend [Next.js API Routes]
        E[Price Engine]
        F[Auction Logic]
        G[Auth Middleware]
    end

    subgraph External [Integraciones Externas]
        H[Twitch Helix/TMI]
        I[Mercado Libre API]
    end

    subgraph Storage [Persistencia]
        J[(Upstash Redis)]
    end

    %% Flujos
    C -->|Acción: Descuento/Reset| E
    E -->|Actualiza Estado| J
    E -->|Dispara Evento| D
    D -->|Update Real-time| A
    D -->|Update Real-time| B
    H -->|Chat Events| C
    I <-->|Sync Price/Link| E
Loading

About

Full-stack dashboard for real-time Twitch stream management. Features a gamified reverse auction system powered by Next.js, Pusher, and Twitch EventSub.

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors