Viviane.
Voltar aos projetos
Concluído

Ticket Sales

API de venda de ingressos com reserva, compra em lote e controle de concorrência.

Screenshot do projeto Ticket Sales

Visão geral

Ticket Sales é um backend para eventos que gerencia o ciclo completo de ingressos: reserva temporária, compra de múltiplos tickets, cancelamento e histórico de status. O foco está em integridade transacional e controle de concorrência para evitar overselling.

  • Reserva de ingressos
  • Compra de múltiplos tickets
  • Cancelamento com histórico
  • Transações no banco de dados
  • Histórico de status

Problema resolvido

Venda de ingressos online exige garantir que o mesmo assento ou lote não seja vendido duas vezes, mesmo com múltiplas requisições simultâneas, além de rastrear cada mudança de status do pedido.

Regras de negócio

  • Reservas possuem tempo de expiração configurável.
  • Compra confirma apenas tickets disponíveis no momento da transação.
  • Cancelamentos atualizam estoque e registram histórico.
  • Cada mudança de status é persistida para auditoria.
  • Operações críticas executam dentro de transações no banco.

Arquitetura

API REST com controle transacional

Express organiza rotas por domínio (eventos, tickets, pedidos). MySQL garante ACID nas operações de reserva e compra, com testes Vitest cobrindo fluxos críticos.

  1. Cliente HTTP
  2. Express Routes
  3. Regras de negócio
  4. Transação MySQL
  5. Histórico de status
  6. Resposta + Swagger

Desafios técnicos

  • Concorrência
  • Integridade de dados
  • Regras de negócio
  • Confiabilidade

Decisões técnicas

Transações no MySQL

Garantem atomicidade na reserva e compra, evitando condições de corrida em cenários de alta concorrência.

Histórico de status

Permite rastrear o ciclo de vida de cada pedido e facilita suporte e debugging em produção.

Vitest para testes

Cobertura automatizada dos fluxos de reserva, compra e cancelamento reduz regressões em regras sensíveis.

Qualidade de Software

Ferramentas, testes automatizados, CI/CD e padrões de engenharia aplicados neste portfólio.

Ver Quality