Skip to content

ZevaGuillo/ticketing_project_week0

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

234 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🎫 SpecKit Ticketing Platform

Architecture: Hexagonal Patterns: CQRS + Event--Driven .NET 9

Plataforma distribuida de venta de boletos para eventos diseñada bajo Arquitectura Hexagonal, CQRS y un enfoque Event-Driven. El sistema garantiza consistencia y alta disponibilidad mediante el uso de locks distribuidos y mensajería asíncrona.


🏛️ Arquitectura y Comunicación

El sistema se basa en microservicios independientes que se comunican de forma híbrida: REST para operaciones síncronas de lectura/acción inmediata y Kafka para la coreografía de procesos de larga duración (Pago, Reserva, Emisión).

graph TD
    subgraph "Frontend Layer"
        Next[Next.js App]
    end

    subgraph "Sincronous (HTTP/REST)"
        Next -->|Consultar Eventos| Catalog[Catalog Service]
        Next -->|Reservar Asiento| Inventory[Inventory Service]
        Next -->|Gestionar Carrito| Ordering[Ordering Service]
        Next -->|Autenticación| Identity[Identity Service]
    end

    subgraph "Storage & Consistency"
        Inventory <-->|Distributed Lock / TTL| Redis[(Redis)]
        Catalog & Inventory & Ordering & Payment & Identity & Fulfillment -->|Shared Instance / Separate Schemas| PG[(PostgreSQL)]
    end

    subgraph "Asincronous (Event-Driven / Kafka)"
        Inventory -->|reservation-created| Kafka{Kafka}
        Kafka -->|Consumir Reserva| Ordering
        Ordering -->|payment-requested| Payment[Payment Service]
        Payment -->|payment-succeeded/failed| Kafka
        Kafka -->|Emitir Ticket| Fulfillment[Fulfillment Service]
        Fulfillment -->|ticket-issued| Kafka
        Kafka -->|Notificar Cliente| Notification[Notification Service]
        Kafka -->|Confirmar Inventario| Inventory
    end

    style Kafka fill:#f9f,stroke:#333,stroke-width:2px
    style Redis fill:#f66,stroke:#333
    style PG fill:#33f,stroke:#fff,color:#fff
Loading

🛠️ Stack Tecnológico

Componente Tecnología
Backend .NET 9, MediatR, EF Core, Minimal APIs
Frontend Next.js 14 (App Router), TailwindCSS, Shadcn/UI
Mensajería Apache Kafka
Cache & Lock Redis
Base de Datos PostgreSQL (Schemas: bc_catalog, bc_inventory, etc.)
Observabilidad OpenTelemetry, Serilog

🚀 Inicio Rápido

1. Levantar Infraestructura (Backend)

Desde la raíz del repositorio, inicia los contenedores esenciales (Postgres, Redis, Kafka, Microservicios):

cd infra
docker compose up -d

Important

Configuración Simplificada (Contexto de Entrenamiento): Este proyecto NO utiliza archivos .env ni secretos externos. Todas las configuraciones necesarias están pre-cargadas en docker-compose.yml y appsettings.json para facilitar las revisiones de pares y permitir un levantamiento inmediato sin intercambio manual de archivos.

2. Levantar Frontend

En una nueva terminal, instala las dependencias e inicia el servidor de desarrollo:

cd frontend
npm install
npm run dev

El sistema estará disponible en http://localhost:3000.


📂 Documentación del Proyecto

Documento Descripción
AI Workflow Registro de prompts y flujo con IA.
Human Checks Registro de decisiones técnicas y correcciones a la IA.
Technical Debt Reporte de puntos de mejora y arquitectura.
TDD Report Seguimiento de pruebas bajo enfoque ATDD.
API Guide Guía de integración para el Frontend.

✅ Estados de Tarea y Progreso

El seguimiento detallado se encuentra en specs/001-ticketing-mvp/tasks.md. El equipo utiliza ATDD para las funcionalidades pendientes, asegurando que cada tarea cumpla con los criterios de aceptación antes de su integración.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • C# 52.5%
  • TypeScript 37.5%
  • Shell 7.3%
  • Gherkin 1.0%
  • Dockerfile 0.9%
  • CSS 0.8%